From: jfa Date: Fri, 7 Mar 2008 07:47:28 +0000 (+0000) Subject: Join modifications from BR_Dev_For_4_0 tag V4_1_1. X-Git-Tag: V4_1_2~1 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=4ec21d1f794d8527516bc2cefa5fe584282a0130;p=samples%2Fcalculator.git Join modifications from BR_Dev_For_4_0 tag V4_1_1. --- diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..e69de29 diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..b1e3f5a --- /dev/null +++ b/COPYING @@ -0,0 +1,504 @@ + 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! + + diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..d980388 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,44 @@ +# Copyright (C) 2005 CEA/DEN, EDF R&D, OPEN CASCADE, PRINCIPIA R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# 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 +# Modified by : Alexander BORODIN (OCN) - autotools usage +# $Header$ +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + + +SUBDIRS = idl adm_local resources src bin + +DIST_SUBDIRS = idl adm_local resources src bin + +DISTCLEANFILES = a.out aclocal.m4 configure + +salomeinclude_DATA=CALCULATOR_version.h + +EXTRA_DIST+= \ + build_configure \ + clean_configure \ + LICENCE + +dist-hook: + rm -rf `find $(distdir) -name CVS` diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index 7e38907..0000000 --- a/Makefile.in +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright (C) 2005 CEA/DEN, EDF R&D -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# 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 : C. Caremoli -# Date : 10/10/2003 -# $Header$ -# - -# source path -top_srcdir=@top_srcdir@ -top_builddir=. -srcdir=@srcdir@ -VPATH=.:@srcdir@:@top_srcdir@/bin:./bin/salome:./resources:@top_srcdir@/resources:./bin:@top_srcdir@/idl - - -@COMMENCE@ - -SUBDIRS = idl src adm_local - -RESOURCES_FILES = CALCULATORCatalog.xml CALCULATOR.png CALCULATOR_en.xml \ - ExecCALCULATOR.png config SalomeApp.xml - -BIN_SCRIPT= VERSION runAppli myrunSalome.py - -# copy header files in common directory - -include_list = include/salome/SALOMEconfig.h \ - include/salome/CALCULATOR_version.h - -ifneq ($(HAVE_SSTREAM),yes) - include_list += include/salome/sstream -endif - -inc: idl $(include_list) - -bin: bin/salome/VERSION - -bin/salome/VERSION : bin/VERSION - -$(RM) $@ - $(LN_S) ../../$< $@ - -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; \ - -include/salome/sstream: salome_adm/unix/sstream - -$(RM) $@ - $(LN_S) ../../$< $@ - -include/salome/CALCULATOR_version.h: CALCULATOR_version.h - -$(RM) $@ - $(LN_S) ../../$< $@ - -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' -#doc: -# (cd doc && $(MAKE) $@) || 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 \ - ($(INSTALL_DATA) $$f $(includedir)/. || exit 1); \ - fi; \ - done - -# install script in $(bindir) : -install-bin: $(BIN_SCRIPT) - $(INSTALL) -d $(bindir) - $(INSTALL_PROGRAM) $^ $(bindir) - -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@ - -install: install-bin install-include install-end - diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/adm_local/Makefile.am b/adm_local/Makefile.am new file mode 100644 index 0000000..7ae83a6 --- /dev/null +++ b/adm_local/Makefile.am @@ -0,0 +1,19 @@ +# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG +# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# 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 diff --git a/adm_local/Makefile.in b/adm_local/Makefile.in deleted file mode 100644 index cfbe6f4..0000000 --- a/adm_local/Makefile.in +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (C) 2005 CEA/DEN, EDF R&D -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# source path -top_srcdir=@top_srcdir@ -top_builddir=.. -srcdir=@srcdir@ -VPATH=.:$(srcdir)/adm_local - - -all: resources - -install: - cp -rf @top_srcdir@/adm_local @prefix@ - -bin: - -resources : - cp -rf @top_srcdir@/adm_local $(top_builddir) - -inc: - -lib: - -depend: - -depend_idl: - -install-end: - -install-include: - -install-bin: - -uninstall: - -uninstall-idl: - -distclean: - -clean: - -distclean-other: - diff --git a/adm_local/unix/Makefile.am b/adm_local/unix/Makefile.am new file mode 100644 index 0000000..facd4e6 --- /dev/null +++ b/adm_local/unix/Makefile.am @@ -0,0 +1,22 @@ +# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG +# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# 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)/adm_local/unix/make_common_starter.am + +SUBDIRS = config_files diff --git a/adm_local/unix/config_files/Makefile.am b/adm_local/unix/config_files/Makefile.am new file mode 100644 index 0000000..dc504e9 --- /dev/null +++ b/adm_local/unix/config_files/Makefile.am @@ -0,0 +1,23 @@ +# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG +# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# 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)/adm_local/unix/make_common_starter.am + +dist_admlocalm4_DATA=\ +check_CALCULATOR.m4\ +README diff --git a/adm_local/unix/make_commence.in b/adm_local/unix/make_commence.in deleted file mode 100644 index 9d9393a..0000000 --- a/adm_local/unix/make_commence.in +++ /dev/null @@ -1,278 +0,0 @@ -# common directories to put headerfiles -inc_builddir=$(top_builddir)/include/salome - -@SET_MAKE@ -SHELL=@SHELL@ - -# header missing - -HAVE_SSTREAM=@HAVE_SSTREAM@ - - -LIBS=@LIBS@ -LDFLAGS=@LDFLAGS@ -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome -# add libstdc++ to link c++ library with libtool ! -LDFLAGS+= @STDLIB@ - -LIBSFORBIN=@LIBS@ -LDFLAGSFORBIN=@LDFLAGS@ -L$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/salome -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@ - -# JAVA - -JAVA_INCLUDES = @JAVA_INCLUDES@ -JAVA_LIBS = @JAVA_LIBS@ -JAVA_LDPATH = @JAVA_LDPATH@ - -# PYTHON - -PYTHON = @PYTHON@ -PYTHONHOME = @PYTHONHOME@ -PYTHON_INCLUDES = @PYTHON_INCLUDES@ -PYTHON_LIBS = @PYTHON_LIBS@ -PYTHON_VERSION = @PYTHON_VERSION@ -PYTHON_SITE = @PYTHON_SITE@ -PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ - -# QT - -QT_ROOT = @QT_ROOT@ -QT_INCLUDES = @QT_INCLUDES@ -QT_MT_INCLUDES = @QT_INCLUDES@ -DQT_THREAD_SUPPORT -QT_LIBS = @QT_LIBS@ -QT_MT_LIBS = @QT_MT_LIBS@ - -MOC = @MOC@ -UIC = @UIC@ - - -#QWT - -QWT_INCLUDES=@QWT_INCLUDES@ -QWT_LIBS=@QWT_LIBS@ - -# SIP -SIP = @SIP@ -SIP_INCLUDES = @SIP_INCLUDES@ -SIP_LIBS = @SIP_LIBS@ - -# PYQT -PYQT_SIPS = @PYQT_SIPS@ -PYQT_LIBS = @PYQT_LIBS@ - -# openGL -OGL_INCLUDES=@OGL_INCLUDES@ -OGL_LIBS=@OGL_LIBS@ - -# VTK -VTK_INCLUDES=@VTK_INCLUDES@ -VTK_LIBS=@VTK_LIBS@ - -# HDF5 - -HDF5_INCLUDES=@HDF5_INCLUDES@ -HDF5_LIBS=@HDF5_LIBS@ -HDF5_MT_LIBS=@HDF5_MT_LIBS@ - -# MED2 - -MED2_INCLUDES=@MED2_INCLUDES@ -MED2_LIBS=@MED2_LIBS@ -MED2_MT_LIBS=@MED2_MT_LIBS@ - -# OpenCasCade - -OCC_INCLUDES=@CAS_CPPFLAGS@ -OCC_CXXFLAGS=@CAS_CXXFLAGS@ - -CAS_KERNEL=@CAS_KERNEL@ -CAS_OCAF=@CAS_OCAF@ -CAS_VIEWER=@CAS_VIEWER@ -CAS_MODELER=@CAS_MODELER@ -CAS_DATAEXCHANGE=@CAS_DATAEXCHANGE@ -CAS=@CAS_LDFLAGS@ - -# MPICH - -MPICH_INCLUDES=@MPICH_INCLUDES@ -MPICH_LIBS=@MPICH_LIBS@ - -# Swig C++ Python - -SWIG = @SWIG@ -SWIG_FLAGS = @SWIG_FLAGS@ -I$(inc_builddir) -I$(srcdir) -I. - -# OMNIORB - -OMNIORB_ROOT = @OMNIORB_ROOT@ -OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ -OMNIORB_LIBS = @OMNIORB_LIBS@ -OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ - -OMNIORB_IDL = @OMNIORB_IDL@ -OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ -OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ -I$(top_srcdir)/idl -I$(top_builddir)/idl -I$(KERNEL_ROOT_DIR)/idl/salome - -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_srcdir)/idl -I$(top_builddir)/idl -I$(KERNEL_ROOT_DIR)/idl/salome -IDLPYFLAGS = @IDLPYFLAGS@ - -IDL = @IDL@ - -IDL_CLN_H = @IDL_CLN_H@ -IDL_CLN_CXX = @IDL_CLN_CXX@ -IDL_CLN_OBJ = @IDL_CLN_OBJ@ - -IDL_SRV_H = @IDL_SRV_H@ -IDL_SRV_CXX = @IDL_SRV_CXX@ -IDL_SRV_OBJ = @IDL_SRV_OBJ@ - -CPPFLAGS+= $(CORBA_INCLUDES) -CXXFLAGS+= $(CORBA_CXXFLAGS) - -# add corba libs when link salome application ! -#LDFLAGS+= $(CORBA_LIBS) -LIBS+=$(CORBA_LIBS) - -## Shared libraries -LT_STATIC_EXEC=@LT_STATIC_EXEC@ -DYNAMIC_DIRS=@DYNAMIC_DIRS@ -LT_LIB=libtool -LT=$(top_builddir)/libtool -LT_COMPILE=$(LT) --mode=compile $(CC) -LT_LINK_LIB=$(LT_LIB) --mode=link $(CC) -rpath $(libdir) -LT_LINK_EXE=$(LT) --mode=link $(CC) $(LT_STATIC_EXEC) -dlopen self -rpath $(bindir) $(DYNAMIC_DIRS) -LT_RUN=$(LT) --mode=execute -LT_INSTALL_PROG=$(LT) --mode=install $(INSTALL_PROGRAM) -LT_INSTALL_LIB=$(LT) --mode=install $(INSTALL_DATA) -LT_UNINSTALL=$(LT) --mode=uninstall $(RM) - -INSTALL=@INSTALL@ -INSTALL_PROGRAM=@INSTALL_PROGRAM@ -INSTALL_DATA=@INSTALL_DATA@ - -# create a symbolic link (or a copie ?) -LN_S=@LN_S@ - -KERNEL_ROOT_DIR=@KERNEL_ROOT_DIR@ -KERNEL_SITE_DIR=@KERNEL_SITE_DIR@ - -KERNEL_LDFLAGS=@KERNEL_LDFLAGS@ -KERNEL_CXXFLAGS=@KERNEL_CXXFLAGS@ - -MED_ROOT_DIR=@MED_ROOT_DIR@ -MED_LDFLAGS=@MED_LDFLAGS@ -MED_CXXFLAGS=@MED_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 - -docdir=$(datadir)/doc - -# -# begin of package rules -# - -.PHONY: all lib bin inc resources tests install uninstall dep depend depend_idl cleandep mostlyclean clean distclean - -.SUFFIXES: .cxx .cc .c .f .o .lo .idl .py .i .ui .po .qm - -all: - $(MAKE) inc - $(MAKE) depend_idl - $(MAKE) depend - $(MAKE) lib - $(MAKE) bin - $(MAKE) resources - -# -# add target to build administrative files -# - -Makefile: $(top_builddir)/config.status $(srcdir)/Makefile.in - cd $(top_builddir) ; ./config.status - -LOCAL_MAKE = make_commence make_omniorb - -KERNEL_MAKE = make_module make_conclude depend SALOMEconfig.h F77config.h sstream envScript - -$(top_builddir)/config.status: $(top_srcdir)/configure \ - $(LOCAL_MAKE:%=$(top_srcdir)/adm_local/unix/%.in) \ - $(KERNEL_MAKE:%=$(KERNEL_ROOT_DIR)/salome_adm/unix/%.in) - cd $(top_builddir) ; ./config.status --recheck - -# VPATH contain $(srcdir), so make configure is good in top_srcdir and we must add target configure otherwise :-) -ifneq ($(top_srcdir),$(srcdir)) -configure: $(top_srcdir)/configure -endif - -$(top_srcdir)/configure: $(top_srcdir)/configure.in $(top_srcdir)/aclocal.m4 - cd $(top_srcdir) ; autoconf - -$(top_srcdir)/configure.in: $(top_srcdir)/configure.in.base - cd $(top_srcdir) && ./build_configure - - -ACLOCAL_KERNEL = \ -ac_cxx_bool.m4 check_corba.m4 \ -ac_cxx_depend_flag.m4 check_hdf5.m4 enable_pthreads.m4 \ -ac_cxx_mutable.m4 check_mico.m4 libtool.m4 \ -ac_cxx_namespaces.m4 check_omniorb.m4 pyembed.m4 \ -ac_cxx_partial_specialization.m4 python.m4 \ -ac_cxx_typename.m4 check_pthreads.m4 check_cas.m4 \ -ac_cc_warnings.m4 check_swig.m4 - -ACLOCAL_GUI = \ -check_vtk.m4 check_opengl.m4 check_qt.m4 \ -check_GUI.m4 check_corba_in_GUI.m4 - -ACLOCAL_MED = check_Med.m4 check_Med2.m4 - -$(top_srcdir)/aclocal.m4: $(ACLOCAL_KERNEL:%=@KERNEL_ROOT_DIR@/salome_adm/unix/config_files/%) \ - $(ACLOCAL_GUI:%=@GUI_ROOT_DIR@/adm_local/unix/config_files/%) \ - $(ACLOCAL_MED:%=@MED_ROOT_DIR@/adm_local/unix/config_files/%) - cd $(top_srcdir) ; aclocal -I adm_local/unix/config_files -I @KERNEL_ROOT_DIR@/salome_adm/unix/config_files \ - -I @GUI_ROOT_DIR@/adm_local/unix/config_files \ - -I @MED_ROOT_DIR@/adm_local/unix/config_files diff --git a/adm_local/unix/make_common_starter.am b/adm_local/unix/make_common_starter.am new file mode 100644 index 0000000..55217d4 --- /dev/null +++ b/adm_local/unix/make_common_starter.am @@ -0,0 +1,55 @@ +# +# ============================================================ +# 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)/@PACKAGE@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/@PACKAGE@ +bindir = $(prefix)/bin/@PACKAGE@ +purebindir = $(prefix)/bin +salomescriptdir = $(bindir) + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/@PACKAGE@ + +# Directory for installing resource files +salomeresdir = $(prefix)/share/@PACKAGE@/resources/@MODULE_NAME@ + +# Directories for installing admin files +admlocaldir = $(prefix)/adm_local +admlocalunixdir = $(admlocaldir)/unix +admlocalm4dir = $(admlocaldir)/unix/config_files + +# Shared modules installation directory +sharedpkgpythondir =$(pkgpythondir)/shared_modules + +# Documentation directory +docdir = $(datadir)/doc/@PACKAGE@ + +# common rules + +# moc-files generation +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# qm-files generation +%.qm: %.po + $(MSG2QM) $< $@ + +EXTRA_DIST=$(MOC_FILES:%_moc.cxx=%.h) $(nodist_salomeres_DATA:%.qm=%.po) + +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; diff --git a/adm_local/unix/make_omniorb.in b/adm_local/unix/make_omniorb.in deleted file mode 100644 index 8e82576..0000000 --- a/adm_local/unix/make_omniorb.in +++ /dev/null @@ -1,56 +0,0 @@ -#======================================================================= -# Begin specific part to omniorb -# (include from file adm/unix/make_omniorb generated by -# adm/unix/make_omniorb.in) -#======================================================================= -# -* Makefile *- -# -# Author : Patrick GOLDBRONN (CEA) -# Date : 29/06/2001 -# $Header$ -# - -# Client and server object are the same with omniorb -# There are one header file and one source file generate - -#IDLOBJ=$(IDLSRC:%.idl=%$(IDL_CLN_OBJ)) - -# dependancies between idl and it's generated files -%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${KERNEL_ROOT_DIR}/idl/salome/%.idl - $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $< - -%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${MED_ROOT_DIR}/idl/salome/%.idl - $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $< - -%$(OMNIORB_IDL_CLN_CXX) %$(OMNIORB_IDL_CLN_H): ${top_srcdir}/idl/%.idl - $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $< - -# dependncies between idl files -depend_idl: .depidl - -# we use cpp to generate dependencies between idl files. -# we change cpp output to keep only idl file and transform it to get a suitable rule -.depidl: $(IDL_FILES) - @touch $@ - @for dep in $? dummy; do \ - if [ $$dep != "dummy" ]; then \ - echo Building dependencies for $$dep; \ - basedep=`basename $$dep .idl`; \ - header="$$basedep"$(IDL_CLN_H); \ - sed '\%^'"$$header"':%,\%[^\\]$$%d' <$@ >$@- && mv $@- $@; \ - $(CPP) $(C_DEPEND_FLAG) -I$(srcdir) $$dep 2>/dev/null | \ - sed `echo "s%$$basedep\\.idl%$$header:%g"` | \ - sed 's% $(srcdir)/% %g' | \ - sed 's% $(top_srcdir)/% %g' | \ - sed 's% $(top_builddir)/% %g' | \ - sed 's%^.*:\.o: *%%' | sed 's%^ *\\ *%%'| sed 's%^ *\(.*\):%\1:%' | \ - sed 's/\.idl/$(IDL_CLN_H)/' >>$@; \ - echo '' >>$@; \ - fi; \ - done ; - --include .depidl - -#======================================================================= -# End specific part to omniorb -#======================================================================= diff --git a/bin/Makefile.am b/bin/Makefile.am new file mode 100644 index 0000000..9aa3859 --- /dev/null +++ b/bin/Makefile.am @@ -0,0 +1,40 @@ +# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG +# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# 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 : COMPONENT +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# +# =============================================================== +# Files to be installed +# =============================================================== +# + +# These files are data, module or lib files + +dist_salomescript_DATA= \ + myrunSalome.py +nodist_salomescript_DATA= \ + VERSION \ + runAppli + +EXTRA_DIST+= VERSION.in runAppli.in diff --git a/bin/runAppli.in b/bin/runAppli.in index 7e5385a..ba2ce21 100755 --- a/bin/runAppli.in +++ b/bin/runAppli.in @@ -1,7 +1,11 @@ #!/bin/sh +if [ -z "${KERNEL_ROOT_DIR}" ] ; then export KERNEL_ROOT_DIR=@KERNEL_ROOT_DIR@ +fi +if [ -z "${CALCULATOR_ROOT_DIR}" ] ; then export CALCULATOR_ROOT_DIR=@prefix@ +fi searchFreePort() { echo -n "Searching for a free port for naming service: " diff --git a/build_configure b/build_configure index ca1383f..62354f6 100755 --- a/build_configure +++ b/build_configure @@ -1,13 +1,13 @@ -#!/bin/sh +#!/bin/bash # -# Tool for updating list of .in file for the SALOME project +# Tool for updating list of .in file for the SALOME project # and regenerating configure script # -# Author : Marc Tajchman - CEA +# Author : +# Modified by : Alexander BORODIN (OCN) - autotools usage # Date : 10/10/2002 -# $Header $ -# + ORIG_DIR=`pwd` CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` @@ -20,12 +20,28 @@ if test ! -d "${KERNEL_ROOT_DIR}"; then exit fi +CALCULATOR_WITH_GUI="yes" + +for option +do + case $option in + -with-ihm | --with-ihm) + CALCULATOR_WITH_GUI="yes" + break;; + -without-ihm | --without-ihm | -with-ihm=no | --with-ihm=no) + CALCULATOR_WITH_GUI="no" + break;; + esac +done + ######################################################################## # Test if the GUI_ROOT_DIR is set correctly -if test ! -d "${GUI_ROOT_DIR}"; then - echo "failed : GUI_ROOT_DIR variable is not correct !" - exit +if test ${CALCULATOR_WITH_GUI} = yes; then + if test ! -d "${GUI_ROOT_DIR}"; then + echo "failed : GUI_ROOT_DIR variable is not correct !" + exit + fi fi ######################################################################## @@ -36,196 +52,84 @@ if test ! -d "${MED_ROOT_DIR}"; then exit fi -######################################################################## -# find_in - utility function -# -# usage : -# find_in directory filename -# -# Finds files following the *.in pattern, recursively in the -# directory (first argument). -# Results are appended into the file (second argument) -# -# Difference from the standard unix find is that files are tested -# before directories -# - -find_in() -{ - i=0 - f=$2 - -# if the first argument is not a directory, returns - - if [ ! -d "$1" ] ; then - return - fi - -# dont look in the CVS directories - - case $1 in - */CVS) return ;; - */adm_local/*) return ;; - *) ;; - esac - -# for each regular file contained in the directory -# test if it's a .in file - - for i in "$1"/* - do - if [ -f "$i" ] ; then - case $i in - *.in) echo $i" \\" >> $f;; - *) ;; - esac - fi - done - -# for each subdirectory of the first argument, proceeds recursively - - for i in "$1"/* - do - if [ -d "$i" ] ; then - find_in "$i" "$f" - fi - done -} - - -####################################################################### -# Generate list of .in files (Makefile.in, config.h.in, etc) -# appending it in file configure.in - cd ${CONF_DIR} ABS_CONF_DIR=`pwd` -# -# Common part of the configure.in file -# -chmod u+w configure.in.base -if \cp -f configure.in.base configure.in_tmp1 -then - echo - chmod u+w configure.in_tmp1 +mkdir -p salome_adm/unix/config_files +#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files/* salome_adm/unix/config_files +#cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/pythonbe.py salome_adm/unix + +cp -f ${KERNEL_ROOT_DIR}/salome_adm/unix/SALOMEconfig.h.in salome_adm/unix + +#if test ${CALCULATOR_WITH_GUI} = yes; then +# cp -f ${GUI_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files +#fi + +#cp -f ${MED_ROOT_DIR}/adm_local/unix/config_files/* salome_adm/unix/config_files + +# remove KERNEL deprecated configure files +#for deprecated in ac_cc_warnings.m4 ac_cxx_partial_specialization.m4 \ +# check_mico.m4 config.guess ltmain.sh ac_cxx_bool.m4 ltconfig ac_cxx_typename.m4 \ +# check_pthreads.m4 config.sub libtool.m4 ac_cxx_mutable.m4 missing +# do +# rm -f salome_adm/unix/config_files/${deprecated} +# done + + +# ____________________________________________________________________ +# aclocal creates the aclocal.m4 file from the standard macro and the +# custom macro embedded in the directory salome_adm/unix/config_files +# and KERNEL config_files directory. +# output: +# aclocal.m4 +# autom4te.cache (directory) +echo "====================================================== aclocal" +if test ${CALCULATOR_WITH_GUI} = yes; then + aclocal -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \ + -I ${GUI_ROOT_DIR}/adm_local/unix/config_files \ + -I ${MED_ROOT_DIR}/adm_local/unix/config_files || exit 1 else - echo - echo "error : can't create files in" ${CONF_DIR} - echo "aborting ..." - chmod u-w configure.in.base - exit + aclocal -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \ + -I ${MED_ROOT_DIR}/adm_local/unix/config_files || exit 1 fi -chmod u-w configure.in.base - -if [ -e "${CONF_DIR}/salome_adm" ] ; then - \rm -f ${CONF_DIR}/salome_adm -fi - -# make a link allowing AC_OUTPUT to find the salome_adm/.../*.in files -echo "" >> configure.in_tmp1 -echo 'ln -fs ${KERNEL_ROOT_DIR}/salome_adm ${ROOT_SRCDIR}' >> configure.in_tmp1 - -echo "" >> configure.in_tmp1 -echo "AC_OUTPUT([ \\" >> configure.in_tmp1 - -# -# List of .in files in the adm/unix directory -# These files MUST be on top of AC_OUTPUT list so we -# put them "manually" -# - -echo "./salome_adm/unix/SALOMEconfig.h \\" >> configure.in_tmp1 -echo "./salome_adm/unix/F77config.h \\" >> configure.in_tmp1 -echo "./salome_adm/unix/sstream \\" >> configure.in_tmp1 -echo "./salome_adm/unix/depend \\" >> configure.in_tmp1 -echo "./adm_local/unix/make_omniorb:${ABS_CONF_DIR}/adm_local/unix/make_omniorb.in \\" >> configure.in_tmp1 -echo "./salome_adm/unix/envScript \\" >> configure.in_tmp1 -echo "./adm_local/unix/make_commence:${ABS_CONF_DIR}/adm_local/unix/make_commence.in \\" >> configure.in_tmp1 -echo "./salome_adm/unix/make_conclude \\" >> configure.in_tmp1 -echo "./salome_adm/unix/make_module \\" >> configure.in_tmp1 - -\rm -f configure.in_tmp2 -touch configure.in_tmp2 -find_in . configure.in_tmp2 - -sed -e '/^...salome_adm/d' \ - -e '/configure.in/d' \ - -e '/^...adm_local/d' \ - -e 's/.in / /' \ - configure.in_tmp2 >> configure.in_tmp1 - -echo "])" >> configure.in_tmp1 - -# delete the link created for AC_OUTPUT -echo "" >> configure.in_tmp1 -\mv configure.in_tmp1 configure.in_new -\rm -f configure.in_tmp2 - - -######################################################################## -# Create new (or replace old) configure.in file -# Print a message if the file is write protected -# - -echo -if test ! -f configure.in -then - echo -n "Creating new file 'configure.in' ... " - if \mv configure.in_new configure.in >& /dev/null - then - echo "done" - else - echo "error, check your file permissions" - fi -else - echo -n "Updating 'configure.in' file ... " - if \cp configure.in configure.in_old >& /dev/null - then - echo - else - echo - echo - echo "Can't backup previous configure.in" - echo -n "Continue (you will not be able to revert) - (Y/N) ? " - read R - case "x$R" in - xn*) exit;; - xN*) exit;; - esac - echo - echo -n " " - fi - if \cp configure.in_new configure.in >& /dev/null - then - \rm -f configure.in_new - echo "done" - else - echo - echo "error, can't update previous configure.in" - fi -fi - -######################################################################## -# Use autoconf to rebuild the configure script -# - -if test -f configure -then - echo -n "Updating 'configure' script ... " -else - echo -n "Creating 'configure' script ... " -fi - -aclocal -I adm_local/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \ - -I ${GUI_ROOT_DIR}/adm_local/unix/config_files \ - -I ${MED_ROOT_DIR}/adm_local/unix/config_files -if autoconf -then - echo "done" -else - echo "failed (check file permissions and/or user quotas ...)" -fi - -cd ${ORIG_DIR} -echo +# ____________________________________________________________________ +# 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 + +# ____________________________________________________________________ +# 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 --copy --gnu --add-missing diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..7c0e093 --- /dev/null +++ b/configure.ac @@ -0,0 +1,340 @@ +# +# 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) +# + +AC_INIT([Salome2 Project CALCULATOR module], [4.1.1], [webmaster.salome@opencascade.com], [salome]) +AC_CONFIG_AUX_DIR(salome_adm/unix/config_files) +AC_CANONICAL_HOST +AC_CANONICAL_TARGET +AM_INIT_AUTOMAKE + +XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'` +AC_SUBST(XVERSION) + +# set up MODULE_NAME variable for dynamic construction of directories (resources, etc.) +MODULE_NAME=calculator +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) + +echo +echo Source root directory : $ROOT_SRCDIR +echo Build root directory : $ROOT_BUILDDIR +echo +echo + +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 + for shared libraries + +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_BUILDDIR}'/salome_adm/unix/config_files/install-sh + #;; + case $host_os in + osf*) + INSTALL="${AUX_CONFIG_DIR}/install-sh -c" + ;; + *) + INSTALL='\${AUX_CONFIG_DIR}'/install-sh + ;; + esac +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) + +dnl +dnl Check if we use std iostream by default or if we must add +dnl a compiler directive for that +dnl + +AC_CXX_USE_STD_IOSTREAM + +dnl +dnl Well we use sstream which is not in gcc pre-2.95.3 +dnl We must test if it exists. If not, add it in include ! +dnl + +AC_CXX_HAVE_SSTREAM +#AM_CONDITIONAL(MED_ENABLE_SSTREAM, [test "$HAVE_SSTREAM" = yes]) + +dnl +dnl --------------------------------------------- +dnl testing linker +dnl --------------------------------------------- +dnl + +AC_LINKER_OPTIONS + +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 + +AM_PATH_PYTHON(2.3) +CHECK_SWIG +#AM_CONDITIONAL(MED_SWIG_1_3_21, [test "$SWIG_VERSION" = 1.3.21]) + +echo +echo --------------------------------------------- +echo testing HDF5 +echo --------------------------------------------- +echo + +CHECK_HDF5 + +echo +echo --------------------------------------------- +echo BOOST Library +echo --------------------------------------------- +echo + +CHECK_BOOST + +echo +echo --------------------------------------------- +echo testing MED2 +echo --------------------------------------------- +echo + +CHECK_MED2 + +echo +echo --------------------------------------------- +echo testing omniORB +echo --------------------------------------------- +echo + +CHECK_OMNIORB + +echo +echo --------------------------------------------- +echo default ORB : omniORB +echo --------------------------------------------- +echo + +DEFAULT_ORB=omniORB +CHECK_CORBA + +AC_SUBST_FILE(CORBA) +corba=make_$ORB +CORBA=adm_local/unix/$corba + +echo +echo --------------------------------------------- +echo Testing OpenCascade +echo --------------------------------------------- +echo + +CHECK_CAS + +echo +echo --------------------------------------------- +echo testing MED +echo --------------------------------------------- +echo + +CHECK_MED + +dnl For the sake of $MACHINE needed for MED Wrapper +AC_DEPEND_FLAG + + +CALCULATOR_WITH_GUI=yes +qt_ok=no + +if test "${CALCULATOR_WITH_GUI}" = "yes"; then + echo + echo --------------------------------------------- + echo Testing GUI + echo --------------------------------------------- + echo + + CHECK_SALOME_GUI + + echo + echo --------------------------------------------- + echo Testing full GUI + echo --------------------------------------------- + echo + + CHECK_CORBA_IN_GUI + if test "x${CORBA_IN_GUI}" != "xyes"; then + echo "failed : For configure CALCULATOR module necessary full GUI !" + exit + fi + + echo + echo --------------------------------------------- + echo testing QT + echo --------------------------------------------- + echo + + CHECK_QT +fi + +echo +echo --------------------------------------------- +echo Testing Kernel +echo --------------------------------------------- +echo + +CHECK_KERNEL + +echo +echo --------------------------------------------- +echo Summary +echo --------------------------------------------- +echo + +echo Configure +variables="python_ok omniORB_ok Kernel_ok qt_ok" + +for var in $variables +do + printf " %10s : " `echo \$var | sed -e "s,_ok,,"` + eval echo \$$var +done + +echo +echo "Default ORB : $DEFAULT_ORB" +echo + +dnl 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_OUTPUT_COMMANDS([ \ + chmod +x ./bin/*; \ +]) + +# 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([ \ + ./salome_adm/unix/SALOMEconfig.h \ + ./adm_local/Makefile \ + ./adm_local/unix/Makefile \ + ./adm_local/unix/config_files/Makefile \ + ./bin/VERSION \ + ./bin/runAppli \ + ./bin/Makefile \ + ./CALCULATOR_version.h \ + ./src/Makefile \ + ./src/CALCULATOR/Makefile \ + ./resources/Makefile \ + ./resources/CALCULATORCatalog.xml \ + ./idl/Makefile \ + Makefile \ +]) + +dnl To avoid recompiling half of the sources because of SALOMEconfig.h recreating +touch -d 01Jan2007 ./salome_adm/unix/SALOMEconfig.h diff --git a/configure.in.base b/configure.in.base deleted file mode 100644 index 07c7126..0000000 --- a/configure.in.base +++ /dev/null @@ -1,291 +0,0 @@ -# -# PLEASE DO NOT MODIFY configure.in FILE -# -# ALL CHANGES WILL BE DISCARDED BY THE NEXT -# build_configure COMMAND -# -# CHANGES MUST BE MADE IN configure.in.base FILE -# -# -# Author : Marc Tajchman (CEA) -# Date : 28/06/2001 -# Modified by : Patrick GOLDBRONN (CEA) -# Modified by : Marc Tajchman (CEA) -# -# Created from configure.in.base -# - -AC_INIT(src) -AC_CONFIG_AUX_DIR(${KERNEL_ROOT_DIR}/salome_adm/unix/config_files) -AC_CANONICAL_HOST - -PACKAGE=salome -AC_SUBST(PACKAGE) - -VERSION=3.2.0 -XVERSION=0x030200 -AC_SUBST(VERSION) -AC_SUBST(XVERSION) - -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) - -echo -echo Source root directory : $ROOT_SRCDIR -echo Build root directory : $ROOT_BUILDDIR -echo -echo - -dnl Modification B. Secher portage sur osf CCRT -AC_CHECK_PROG(SHELL,sh,,) -AC_SUBST(SHELL) - -AUX_CONFIG_DIR=${KERNEL_ROOT_DIR}/salome_adm/unix/config_files - -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 + for shared libraries - -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*) - case $host_os in - osf*) - INSTALL="${AUX_CONFIG_DIR}/install-sh -c" - ;; - *) - INSTALL='\${AUX_CONFIG_DIR}'/install-sh - ;; - esac -esac - -AC_CXX_USE_STD_IOSTREAM - -dnl -dnl Well we use sstream which is not in gcc pre-2.95.3 -dnl We must test if it exists. If not, add it in include ! -dnl - -AC_CXX_HAVE_SSTREAM - - -echo -echo --------------------------------------------- -echo testing python -echo --------------------------------------------- -echo - -CHECK_PYTHON - -echo -echo --------------------------------------------- -echo testing QT -echo --------------------------------------------- -echo - -CHECK_QT - -echo -echo --------------------------------------------- -echo Testing OpenCascade -echo --------------------------------------------- -echo - -CHECK_CAS - -echo -echo --------------------------------------------- -echo testing omniORB -echo --------------------------------------------- -echo - -echo -echo --------------------------------------------- -echo testing HDF5 -echo --------------------------------------------- -echo - -CHECK_HDF5 - -echo -echo --------------------------------------------- -echo testing MED2 -echo --------------------------------------------- -echo - -CHECK_MED2 - - -echo -echo --------------------------------------------- -echo testing MED -echo --------------------------------------------- -echo - -CHECK_MED - -dnl For the sake of $MACHINE needed for MED Wrapper -AC_DEPEND_FLAG - -CHECK_OMNIORB - -echo -echo --------------------------------------------- -echo default ORB : omniORB -echo --------------------------------------------- -echo - -DEFAULT_ORB=omniORB -CHECK_CORBA - -AC_SUBST_FILE(CORBA) -corba=make_$ORB -CORBA=adm_local/unix/$corba - -echo -echo --------------------------------------------- -echo Testing GUI -echo --------------------------------------------- -echo - -CHECK_SALOME_GUI - -echo -echo --------------------------------------------- -echo Testing full GUI -echo --------------------------------------------- -echo - -CHECK_CORBA_IN_GUI -if test "x${CORBA_IN_GUI}" != "xyes"; then - echo "failed : For configure CALCULATOR module necessary full GUI !" - exit -fi - -echo -echo --------------------------------------------- -echo Testing Kernel -echo --------------------------------------------- -echo - -CHECK_KERNEL - -echo -echo --------------------------------------------- -echo Summary -echo --------------------------------------------- -echo - -echo Configure -variables="python_ok omniORB_ok Kernel_ok qt_ok" - -for var in $variables -do - printf " %10s : " `echo \$var | sed -e "s,_ok,,"` - eval echo \$$var -done - -echo -echo "Default ORB : $DEFAULT_ORB" -echo - -dnl generals files which could be included in every makefile - -AC_SUBST_FILE(COMMENCE) COMMENCE=adm_local/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 share/salome/doc idl -do - $INSTALL -d $rep -done - -echo -echo --------------------------------------------- -echo copying resource files, shell scripts, and -echo xml files -echo --------------------------------------------- -echo - -dnl copy shells and utilities contained in the bin directory -dnl excluding .in files (treated in AC-OUTPUT below) and CVS -dnl directory - -cd bin -for i in $ROOT_SRCDIR/bin/* -do - local_bin=`echo $i | sed -e "s,$ROOT_SRCDIR,.,"` - case "$local_bin" in - *.in | *~) ;; - ./bin/CVS) ;; - *) ln -fs $i; echo $local_bin ;; - esac -done -cd $ROOT_BUILDDIR - -AC_SUBST_FILE(ENVSCRIPT) ENVSCRIPT=salome_adm/unix/envScript - -echo -echo --------------------------------------------- -echo generating Makefiles and configure files -echo --------------------------------------------- -echo - -AC_OUTPUT_COMMANDS([ \ - chmod +x ./bin/* \ -]) - -## do not delete this line diff --git a/idl/Makefile.am b/idl/Makefile.am new file mode 100644 index 0000000..82fba44 --- /dev/null +++ b/idl/Makefile.am @@ -0,0 +1,117 @@ +# Copyright (C) 2005 OPEN CASCADE, CEA, EDF R&D, LEG +# PRINCIPIA R&D, EADS CCR, Lip6, BV, CEDRAT +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# 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)/adm_local/unix/make_common_starter.am + +BASEIDL_FILES = CALCULATOR_Gen.idl + +EXTRA_DIST+= $(BASEIDL_FILES) + +# This variable defines the files to be installed +salomeidl_DATA = $(BASEIDL_FILES) + +# GUI idl common library +lib_LTLIBRARIES = libSalomeIDLCALCULATOR.la + +# Sources built from idl files +nodist_libSalomeIDLCALCULATOR_la_SOURCES = \ + CALCULATOR_GenSK.cc \ + CALCULATOR_GenDynSK.cc +CALCULATOR_GenDynSK.cc: CALCULATOR_GenSK.cc + +# header files must be exported: other modules have to use this library +nodist_salomeinclude_HEADERS= $(BASEIDL_FILES:%.idl=%.hh) + +libSalomeIDLCALCULATOR_la_CPPFLAGS =\ + $(KERNEL_CXXFLAGS) \ + $(MED_CXXFLAGS) \ + -I$(top_builddir)/salome_adm/unix \ + -I$(top_builddir)/idl \ + @CORBA_CXXFLAGS@ \ + @CORBA_INCLUDES@ + +libSalomeIDLCALCULATOR_la_LDFLAGS = -no-undefined -version-info=0:0:0 +libSalomeIDLCALCULATOR_la_LIBADD = \ + $(KERNEL_LDFLAGS) -lSalomeIDLKernel \ + $(MED_LDFLAGS) -lSalomeIDLMED \ + @CORBA_LIBS@ + +# These variables defines the building process of CORBA files +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = \ + @OMNIORB_IDLPYFLAGS@ \ + -I$(top_builddir)/idl/salome \ + -I$(KERNEL_ROOT_DIR)/idl/salome \ + -I$(MED_ROOT_DIR)/idl/salome + +IDLCXXFLAGS = \ + -bcxx \ + @IDLCXXFLAGS@ \ + -I$(top_builddir)/idl/salome \ + -I$(KERNEL_ROOT_DIR)/idl/salome \ + -I$(MED_ROOT_DIR)/idl/salome \ + -I$(top_builddir)/salome_adm/unix +IDLPYFLAGS = \ + @IDLPYFLAGS@ \ + -I$(KERNEL_ROOT_DIR)/idl/salome \ + -I$(MED_ROOT_DIR)/idl/salome + +# potential problem on parallel make on the following - multiple outputs +SUFFIXES = .idl .hh SK.cc +.idlSK.cc: + $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $< +.idl.hh: + $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $< + +install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%) + $(INSTALL) -d $(pkgpythondir) + ls $^ | while read file; do \ + $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(pkgpythondir) $$file ; \ + done + +# uninstall-local removes too much, but it works in distcheck +uninstall-local: + rm -rf $(pkgpythondir)/* + +mostlyclean-local: + -rm -f *.hh *.cc .depidl + +# 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: $(BASEIDL_FILES) + @echo "" > $@ + @for dep in $^ dummy; do \ + if [ $$dep != "dummy" ]; then \ + echo Building dependencies for $$dep; \ + $(CPP) $(C_DEPEND_FLAG) -x c -I$(srcdir) -I$(KERNEL_ROOT_DIR)/idl/salome -I$(MED_ROOT_DIR)/idl/salome $$dep 2>/dev/null | \ + sed 's/\.o/\SK.cc/' >>$@; \ + fi; \ + done ; + +-include .depidl diff --git a/idl/Makefile.in b/idl/Makefile.in deleted file mode 100644 index 36bdce5..0000000 --- a/idl/Makefile.in +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright (C) 2005 CEA/DEN, EDF R&D -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# -# generate dependencies for idl file : -# - -# source path -top_srcdir=@top_srcdir@ -top_builddir=.. -srcdir=@srcdir@ -VPATH=.:$(srcdir):${KERNEL_ROOT_DIR}/idl/salome:${MED_ROOT_DIR}/idl/salome - -@COMMENCE@ - -IDL_FILES = CALCULATOR_Gen.idl - -PY_CLIENT_IDL = $(IDL_FILES) - -# we copy all idl file in $(top_builddir)/idl -inc: $(IDL_FILES:%=$(top_builddir)/idl/%) - -$(IDL_FILES:%=$(top_builddir)/idl/%):$(top_builddir)/idl/%:% - #$(CP) $< $@ - cp -f $< $@ - -lib: pyidl - -PYTHON_BUILD_SITE=$(top_builddir)/lib@LIB_LOCATION_SUFFIX@/python$(PYTHON_VERSION)/site-packages/@PACKAGE@ - -pyidl: $(PYTHON_BUILD_SITE) $(IDL_FILES:%.idl=$(PYTHON_BUILD_SITE)/%_idl.py) - -$(PYTHON_BUILD_SITE): - $(INSTALL) -d $@ - -$(PYTHON_BUILD_SITE)/%_idl.py: %.idl - $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(PYTHON_BUILD_SITE) $< - -# install python client (generated from idl file -install: install-pyidl install-idl - -# create directory $(idldir) and copy idl files into it -install-idl: $(IDL_FILES) - $(INSTALL) -d $(idldir) - cp -fp $^ $(idldir) - -OMNIORB_IDLCXXFLAGS+=-I${MED_ROOT_DIR}/idl/salome -OMNIORB_IDLPYFLAGS+=-I${MED_ROOT_DIR}/idl/salome - -install-pyidl: $(IDL_FILES) - $(INSTALL) -d $(PYTHON_SITE_INSTALL) - @for file in $^ dummy; do \ - if [ $$file != "dummy" ]; then \ - $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(PYTHON_SITE_INSTALL) $$file ; \ - fi ; \ - done ; - - -cleandep: - -$(RM) .dep* - -distclean: - -$(RM) *.py - -$(RM) $(IDL_FILES:%=$(top_builddir)/idl/%) - -$(RM) Makefile - diff --git a/resources/Makefile.am b/resources/Makefile.am new file mode 100644 index 0000000..9c86e44 --- /dev/null +++ b/resources/Makefile.am @@ -0,0 +1,37 @@ +# Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# 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 +# Modified by : Alexander BORODIN (OCN) - autotools usage + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +dist_salomeres_DATA = \ + CALCULATOR.png \ + CALCULATOR_en.ps \ + CALCULATOR_en.xml \ + CALCULATOR_fr.xml \ + ExecCALCULATOR.png \ + config \ + SalomeApp.xml + +nodist_salomeres_DATA = CALCULATORCatalog.xml diff --git a/resources/SalomeApp.xml b/resources/SalomeApp.xml index 98b146d..6f07559 100644 --- a/resources/SalomeApp.xml +++ b/resources/SalomeApp.xml @@ -6,6 +6,6 @@
- +
diff --git a/src/CALCULATOR/CALCULATOR.cxx b/src/CALCULATOR/CALCULATOR.cxx index e777196..98120d6 100644 --- a/src/CALCULATOR/CALCULATOR.cxx +++ b/src/CALCULATOR/CALCULATOR.cxx @@ -16,16 +16,23 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + #include "CALCULATOR.hxx" + #include "FIELDClient.hxx" #include "MESHClient.hxx" -#include -#include + #include "MEDMEM_Mesh_i.hxx" #include "MEDMEM_Support_i.hxx" #include "MEDMEM_FieldTemplate_i.hxx" + +#include +#include + #include #include +#include + using namespace std; using namespace MEDMEM; @@ -33,18 +40,17 @@ typedef FIELD TFieldDouble; typedef FIELDClient TFieldDouble_c; typedef FIELDTEMPLATE_I TFieldDouble_i; -CALCULATOR::CALCULATOR(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,true) +CALCULATOR::CALCULATOR (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, true), + _errorCode(CALCULATOR_ORB::NO_ERROR) { MESSAGE("activate object"); - _thisObj = this ; + _thisObj = this; _id = _poa->activate_object(_thisObj); - - _errorCode = CALCULATOR_ORB::NO_ERROR; } CALCULATOR::~CALCULATOR() @@ -347,11 +353,14 @@ void CALCULATOR::printField(SALOME_MED::FIELDDOUBLE_ptr field) int N=(i-1)*dim_space; cout << setw(width) << i << setw(width) << coord[N] << " " << setw(width) << coord[N+1]<< " " << setw(width) << coord[N+2] << " : " ; } - if(displayBary) - cout << setw(width) << i << setw(width) << barycenter->getValueIJ(i,1) << " " << setw(width) << barycenter->getValueIJ(i,2) - << " " << setw(width) << barycenter->getValueIJ(i,3) << " : " ; + if(displayBary) { + cout << setw(width) << i; + for (int j=1; j<=dim_space; j++ ) + cout<< setw(width) << barycenter->getValueIJ(i,j) << " " ; + cout<< " : " ; + } for (int j=0; j fold(0); - auto_ptr fnew (new TFieldDouble_c(field) ); + double criteria=1; + static auto_ptr fold(0); + auto_ptr fnew (new TFieldDouble_c(field) ); - try { - if (fold.get() == NULL) // if old field is not set, set it and return 1 - fold=fnew; - else - { - // if size of fields are not equal, return 1 - const int size=fold->getNumberOfValues()*fold->getNumberOfComponents(); - if ( size == fnew->getNumberOfValues()*fnew->getNumberOfComponents() ) - { - //MED_EN::medModeSwitch mode=fold->getInterlacingType(); // storage mode - const double* oldVal= fold->getValue(); // retrieve values - const double* newVal= fnew->getValue(); - criteria=0.0; - double ecart_rel=0.0; - for (unsigned i=0; i!=size; ++i) // compute criteria - { - if ( oldVal[i] != 0.0) - { - ecart_rel = std::abs( (oldVal[i]-newVal[i])/oldVal[i] ); - if ( ecart_rel>criteria ) - criteria=ecart_rel; - } - } - } - } - } - catch(...) { - _errorCode = CALCULATOR_ORB::EXCEPTION_RAISED; - } + try { + if (fold.get() == NULL) // if old field is not set, set it and return 1 + fold=fnew; + else + { + // if size of fields are not equal, return 1 + const int size=fold->getNumberOfValues()*fold->getNumberOfComponents(); + if ( size == fnew->getNumberOfValues()*fnew->getNumberOfComponents() ) + { + //MED_EN::medModeSwitch mode=fold->getInterlacingType(); // storage mode + const double* oldVal= fold->getValue(); // retrieve values + const double* newVal= fnew->getValue(); + criteria=0.0; + double ecart_rel=0.0; + for (unsigned i=0; i!=size; ++i) // compute criteria + { + //if ( oldVal[i] != 0.0) // PAL14028 + if ( std::abs( oldVal[i] ) > DBL_MIN ) + { + ecart_rel = std::abs( (oldVal[i]-newVal[i])/oldVal[i] ); + if ( ecart_rel>criteria ) + criteria=ecart_rel; + } + } + } + } + } + catch(...) { + _errorCode = CALCULATOR_ORB::EXCEPTION_RAISED; + } - endService( "CALCULATOR::convergenceCriteria"); - END_OF("CALCULATOR::convergenceCriteria(SALOME_MED::FIELDDOUBLE_ptr field1)"); - return criteria; + endService( "CALCULATOR::convergenceCriteria"); + END_OF("CALCULATOR::convergenceCriteria(SALOME_MED::FIELDDOUBLE_ptr field1)"); + return criteria; } CORBA::Boolean CALCULATOR::isDone() @@ -424,19 +434,26 @@ CALCULATOR_ORB::ErrorCode CALCULATOR::getErrorCode() } +//============================================================================= +/*! + * CALCULATOREngine_factory + * + * C factory, accessible with dlsym, after dlopen + */ +//============================================================================= + extern "C" { - PortableServer::ObjectId * CALCULATOREngine_factory( - CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa, - PortableServer::ObjectId * contId, - const char *instanceName, - const char *interfaceName) + PortableServer::ObjectId * CALCULATOREngine_factory (CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa, + PortableServer::ObjectId * contId, + const char *instanceName, + const char *interfaceName) { MESSAGE("PortableServer::ObjectId * CALCULATOREngine_factory()"); SCRUTE(interfaceName); - CALCULATOR * myCALCULATOR - = new CALCULATOR(orb, poa, contId, instanceName, interfaceName); - return myCALCULATOR->getId() ; + CALCULATOR * myCALCULATOR = + new CALCULATOR (orb, poa, contId, instanceName, interfaceName); + return myCALCULATOR->getId(); } } diff --git a/src/CALCULATOR/CALCULATOR.hxx b/src/CALCULATOR/CALCULATOR.hxx index b714af9..1cd8ff0 100644 --- a/src/CALCULATOR/CALCULATOR.hxx +++ b/src/CALCULATOR/CALCULATOR.hxx @@ -31,10 +31,10 @@ class CALCULATOR: public: CALCULATOR(CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa, - PortableServer::ObjectId * contId, - const char *instanceName, - const char *interfaceName); + PortableServer::POA_ptr poa, + PortableServer::ObjectId * contId, + const char *instanceName, + const char *interfaceName); virtual ~CALCULATOR(); CORBA::Double convergenceCriteria(SALOME_MED::FIELDDOUBLE_ptr field); @@ -45,23 +45,22 @@ public: SALOME_MED::FIELDDOUBLE_ptr applyLin(SALOME_MED::FIELDDOUBLE_ptr field1,CORBA::Double a,CORBA::Double b); SALOME_MED::FIELDDOUBLE_ptr add(SALOME_MED::FIELDDOUBLE_ptr field1, SALOME_MED::FIELDDOUBLE_ptr field2); void printField(SALOME_MED::FIELDDOUBLE_ptr field); - void cloneField(SALOME_MED::FIELDDOUBLE_ptr field, SALOME_MED::FIELDDOUBLE_out clone1, SALOME_MED::FIELDDOUBLE_out clone2, + void cloneField(SALOME_MED::FIELDDOUBLE_ptr field, + SALOME_MED::FIELDDOUBLE_out clone1, SALOME_MED::FIELDDOUBLE_out clone2, SALOME_MED::FIELDDOUBLE_out clone3, SALOME_MED::FIELDDOUBLE_out clone4); - CORBA::Boolean isDone(); - CALCULATOR_ORB::ErrorCode getErrorCode(); + CORBA::Boolean isDone(); + CALCULATOR_ORB::ErrorCode getErrorCode(); protected: - CALCULATOR_ORB::ErrorCode _errorCode; + CALCULATOR_ORB::ErrorCode _errorCode; }; - -extern "C" - PortableServer::ObjectId * CALCULATOREngine_factory( - CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa, - PortableServer::ObjectId * contId, - const char *instanceName, - const char *interfaceName); - +//extern "C" +// PortableServer::ObjectId * CALCULATOREngine_factory( +// CORBA::ORB_ptr orb, +// PortableServer::POA_ptr poa, +// PortableServer::ObjectId * contId, +// const char *instanceName, +// const char *interfaceName); #endif diff --git a/src/CALCULATOR/CALCULATOR_TEST.py b/src/CALCULATOR/CALCULATOR_TEST.py index bd7c164..44e38ec 100644 --- a/src/CALCULATOR/CALCULATOR_TEST.py +++ b/src/CALCULATOR/CALCULATOR_TEST.py @@ -16,43 +16,41 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # + +#CALCULATOR_TEST_WITHOUTIHM.py + from omniORB import CORBA import salome import SALOME import SALOME_MED +import SALOMEDS -#CCRT : import os -import Engines -import LifeCycleCORBA - host = os.getenv( 'HOST' ) - -orb = CORBA.ORB_init([''], CORBA.ORB_ID) - -lcc = LifeCycleCORBA.LifeCycleCORBA(orb) -#endCCRT +orb, lcc, naming_service, contmgr = salome.salome_kernel.salome_kernel_init() ################ GET A MED FIELD FROM FILE pointe.med ################### # # This test program is based on the field named fieldcelldoublevector in # med file $MED_ROOT_DIR/share/salome/resources/pointe.med -from os import environ -filePath=environ["MED_ROOT_DIR"] -filePath=filePath+"/share/salome/resources/" +filePath=os.environ["MED_ROOT_DIR"] +filePath=filePath+"/share/salome/resources/med/" medFile=filePath+"pointe.med" -fieldname = "fieldcelldoublescalar" +fieldname = "fieldcelldoublevector" # Launch the Med Component and use it to load into memory the test field print "Launch the Med Component: " -#CCRTmed_comp = salome.lcc.FindOrLoadComponent("FactoryServer", "MED") med_comp = lcc.FindOrLoadComponent("FactoryServer", "MED") # Get a Corba field proxy on the distant field (located in the med_comp server). try: - studyname = salome.myStudyName - studynameId = salome.myStudyId + obj = naming_service.Resolve('myStudyManager') + myStudyManager = obj._narrow(SALOMEDS.StudyManager) + print "studyManager found" + myStudy = myStudyManager.NewStudy('CALCULATOR_TEST') + studynameId = myStudy._get_StudyId() + studyname = myStudy._get_Name() print "We are working in the study ",studyname," with the ID ",studynameId print "Read field ",fieldname fieldcell = med_comp.readFieldInFile(medFile,studyname,fieldname,-1,-1) @@ -70,30 +68,42 @@ print fieldcelldouble print fieldcelldouble.getName() print fieldcelldouble.getDescription() print fieldcelldouble.getNumberOfComponents() + # # -############## Load Calculator Component and test it ################### -# +############## Load Calculator Component ################### +# Calculator Component must be in the Container of MED # print "Load Calculator Component " # we need to import CALCULATOR_ORB to get a typed object (to perform narrowing) import CALCULATOR_ORB -calculator = salome.lcc.FindOrLoadComponent("FactoryServer", "CALCULATOR") +calculator = lcc.FindOrLoadComponent("FactoryServer", "CALCULATOR") + +# # -print "Appel cloneField : fieldcelldouble -> f1,f2,f3,f4" +############## Test Calculator Component ################### +# +# +print "Appel cloneField : fieldcelldoublevector -> f1,f2,f3,f4" (f1,f2,f3,f4)=calculator.cloneField(fieldcelldouble) # fieldcelldouble is consumed # +f1.Register() calculator.printField(f1) print "Add fields f2+f3" f_add=calculator.add(f2, f3) -calculator.printField(f_add) +f_add.Register() +calculator.printField( f_add ) # f_add is consumed # print "Apply linear function" f_lin=calculator.applyLin(f4,2.0,1.0) +f_lin.Register() +calculator.printField( f_lin ) # f_lin is consumed # print "Appel Norme Max " -norme=calculator.normMax(f_lin) +f_lin.Register() +norme=calculator.normMax(f_lin) # f_lin is consumed print " -> norme = ",norme # + print "End of Calculator Test!" diff --git a/src/CALCULATOR/CALCULATOR_TEST_STUDY_WITHOUTIHM.py b/src/CALCULATOR/CALCULATOR_TEST_STUDY_WITHOUTIHM.py new file mode 100755 index 0000000..cc2dff7 --- /dev/null +++ b/src/CALCULATOR/CALCULATOR_TEST_STUDY_WITHOUTIHM.py @@ -0,0 +1,447 @@ +#################################################################################################### +# CALCULATOR_TEST_STUDY_WITHOUTIHM.py +# +# Test the calculator component: using Med Client classes with writing in a med file +# results from the calculator component +# +#################################################################################################### +from libMEDClient import * + +import string + +import salome + +import SALOME_MED + +#CCRTfrom libSALOME_Swig import * +#CCRTsg = SALOMEGUI_Swig() + +#CCRT : +import SALOMEDS + +import os +host = os.getenv( 'HOST' ) +orb, lcc, naming_service, contmgr = salome.salome_kernel.salome_kernel_init() +obj = naming_service.Resolve('myStudyManager') +myStudyManager = obj._narrow(SALOMEDS.StudyManager) +print "studyManager found" +myStudy = myStudyManager.NewStudy('medClient_withoutIHM_test') +studynameId = myStudy._get_StudyId() +studyname = myStudy._get_Name() +print "We are working in the study ",studyname," with the ID ",studynameId +#endCCRT + +def print_ord(i): + if i == 0: + return 'first' + elif i == 1: + return 'second' + elif i == 2: + return 'third' + else: + return `(i+1)`+'th' + +def changeBlankToUnderScore(stringWithBlank): + blank = ' ' + underscore = '_' + decompString = string.split(stringWithBlank,blank) + length = len(decompString) + stringWithUnderScore = decompString[0] + for i in range(1,length): + stringWithUnderScore += underscore + stringWithUnderScore += decompString[i] + return stringWithUnderScore + +def getMedObjectFromStudy(file): + objNameInStudy = "MED_OBJECT_FROM_FILE_"+file + compNameInStudy= "MED" + #CCRTlistOfSO = salome.myStudy.FindObjectByName(objNameInStudy,compNameInStudy) + listOfSO = myStudy.FindObjectByName(objNameInStudy,compNameInStudy) + listLength = len(listOfSO) + if (listLength == 0) : + print "getMedObjectFromStudy",objNameInStudy," cannot be found in the Study under the component ",compNameInStudy + return None + elif (listLength > 1) : + print "there are more than one instance of ",objNameInStudy," in the Study under the component ",compNameInStudy + return None + mySO = listOfSO[0] + if (mySO == None) : + print "getMedObjectFromStudy",objNameInStudy," cannot be found in the Study" + return mySO + else: + anAttr = mySO.FindAttribute("AttributeIOR")[1] + #CCRTobj = salome.orb.string_to_object(anAttr.Value()) + obj = orb.string_to_object(anAttr.Value()) + myObj = obj._narrow(SALOME_MED.MED) + if (myObj == None) : + print objNameInStudy," has been found in the Study but with the wrong type" + return myObj + +def getMeshObjectFromStudy(meshName): + objNameInStudy = "/Med/MEDMESH/"+meshName + #CCRTmySO = salome.myStudy.FindObjectByPath(objNameInStudy) + mySO = myStudy.FindObjectByPath(objNameInStudy) + if (mySO == None) : + print "getMeshObjectFromStudy",objNameInStudy," cannot be found in the Study" + return mySO + else: + anAttr = mySO.FindAttribute("AttributeIOR")[1] + #CCRTobj = salome.orb.string_to_object(anAttr.Value()) + obj = orb.string_to_object(anAttr.Value()) + myObj = obj._narrow(SALOME_MED.MESH) + if (myObj == None) : + print objNameInStudy," has been found in the Study but with the wrong type" + return myObj + +def getSupportObjectFromStudy(meshName,supportName): + meshNameStudy = changeBlankToUnderScore(meshName) + objNameInStudy = "/Med/MEDMESH/MEDSUPPORTS_OF_"+meshNameStudy+"/"+supportName + #CCRTmySO = salome.myStudy.FindObjectByPath(objNameInStudy) + mySO = myStudy.FindObjectByPath(objNameInStudy) + if (mySO == None) : + print "getSupportObjectFromStudy",objNameInStudy," cannot be found in the Study" + print "/Med/MEDMESH/MEDSUPPORTS_OF_"+meshNameStudy,":",myStudy.GetObjectNames("/Med/MEDMESH/MEDSUPPORTS_OF_"+meshNameStudy) + return mySO + else: + anAttr = mySO.FindAttribute("AttributeIOR")[1] + #CCRTobj = salome.orb.string_to_object(anAttr.Value()) + obj = orb.string_to_object(anAttr.Value()) + myObj = obj._narrow(SALOME_MED.SUPPORT) + if (myObj == None) : + print objNameInStudy," has been found in the Study but with the wrong type" + return myObj + +def getFieldObjectFromStudy(dt,it,fieldName,supportName,meshName): + type = -1 + meshNameStudy = changeBlankToUnderScore(meshName) + objNameInStudy = "/Med/MEDFIELD/"+fieldName+"/("+str(dt)+","+str(it)+")_ON_"+supportName+"_OF_"+meshNameStudy + #CCRTmySO = salome.myStudy.FindObjectByPath(objNameInStudy) + mySO = myStudy.FindObjectByPath(objNameInStudy) + if (mySO == None) : + print "getFieldObjectFromStudy",objNameInStudy," cannot be found in the Study" + print "/Med/MEDFIELD/"+fieldName,":",myStudy.GetObjectNames("/Med/MEDFIELD/"+fieldName) + return -1,-1 + else: + anAttr = mySO.FindAttribute("AttributeIOR")[1] + #CCRTobj = salome.orb.string_to_object(anAttr.Value()) + obj = orb.string_to_object(anAttr.Value()) + myObj = obj._narrow(SALOME_MED.FIELDINT) + type = 0 + if (myObj == None): + myObj = obj._narrow(SALOME_MED.FIELDDOUBLE) + type = 1 + if (myObj == None) : + print objNameInStudy," has been found in the Study but with the wrong type" + return myObj,type + + +fileName = "pointe.med" + +#CCRTmedComp=salome.lcc.FindOrLoadComponent("FactoryServer", "MED") +medComp=lcc.FindOrLoadComponent("FactoryServer", "MED") + +import os + +filePath=os.environ["MED_ROOT_DIR"] +filePath=filePath+"/share/salome/resources/med/" + +filePathName = filePath + fileName + +print "Reading the .med file ",filePathName," and pushing corba objects in the SALOME study" +#CCRTmedComp.readStructFileWithFieldType(filePathName,salome.myStudyName) +medComp.readStructFileWithFieldType(filePathName,studyname) +#CCRTsg.updateObjBrowser(1) + +print "getting the MED object from the study" +medObj = getMedObjectFromStudy(fileName) + +nbOfMeshes = medObj.getNumberOfMeshes() +meshNames = medObj.getMeshNames() + +print "in this med file there is(are) ",nbOfMeshes," mesh(es):" + +meshName = meshNames[0] + +meshObj = medObj.getMeshByName(meshName) + +fieldName = "fieldcelldoublevector" +dt = -1 +it = -1 +entitySupport = "MED_MAILLE" +supportName = "SupportOnAll_"+entitySupport + +fieldTypedObj,typeField = getFieldObjectFromStudy(dt,it,fieldName,supportName,meshName) + +if(typeField == 1): + fieldTypedLocalCopy = FIELDDOUBLEClient(fieldTypedObj) +elif (typeField == 0): + fieldTypedLocalCopy = FIELDINTClient(fieldTypedObj) +else: + print "Problem with the type of the field" + +############## Load Calculator Component ################### +# Calculator Component must be in the Container of MED +# +print "Load Calculator Component " +# we need to import CALCULATOR_ORB to get a typed object (to perform narrowing) +import CALCULATOR_ORB +#CCRTcalculator = salome.lcc.FindOrLoadComponent("FactoryServer", "CALCULATOR") +calculator = lcc.FindOrLoadComponent("FactoryServer", "CALCULATOR") +# + +#calculator.printField(fieldTypedObj) + +# +# +############## Test Calculator Component ################### +# +# +print "Appel cloneField : fieldTypedObj -> f1,f2,f3,f4" +fieldTypedObj.Register() +(f1,f2,f3,f4)=calculator.cloneField(fieldTypedObj) # fieldTypedObj is consumed +# +##f1.Register() +##calculator.printField(f1) +print "Add fields f2+f3" +f_add=calculator.add(f2, f3) +##f_add.Register() +##calculator.printField( f_add ) # f_add is consumed + +# +print "Apply linear function" +f_lin=calculator.applyLin(f4,2.0,1.0) +##f_lin.Register() +##calculator.printField( f_lin ) # f_lin is consumed +# +print "Appel Norme Max " +f_lin.Register() +norme=calculator.normMax(f_lin) # f_lin is consumed +print " -> norme = ",norme +# + +# +# +############ Creation of a MED file with fields created by Caculator ################# +# via Client classes +# + +meshDistant = f_add.getSupport().getMesh() + +meshLocalCopy = MESHClient(meshDistant) + + +print " getting information from the local copy of the distant mesh" +name = meshLocalCopy.getName() +spaceDimension = meshLocalCopy.getSpaceDimension() +meshDimension = meshLocalCopy.getMeshDimension() +numberOfNodes = meshLocalCopy.getNumberOfNodes() +print " Name = ", name, " space Dim = ", spaceDimension, " mesh Dim = ", meshDimension, " Nb of Nodes = ", numberOfNodes +coordSyst = meshLocalCopy.getCoordinatesSystem() +print " The coordinates system is",coordSyst +print " The Coordinates :" +coordNames = [] +coordUnits = [] +for isd in range(spaceDimension): + coordNames.append(meshLocalCopy.getCoordinateName(isd)) + coordUnits.append(meshLocalCopy.getCoordinateUnit(isd)) + +print " names:", coordNames +print " units", coordUnits +print " values:" +coordinates = meshLocalCopy.getCoordinates(MED_FULL_INTERLACE) +for k in range(numberOfNodes): + kp1 = k+1 + print " ---- ", coordinates[k*spaceDimension:(kp1*spaceDimension)] +print "" +print " The Cell Nodal Connectivity of the Cells:" +nbTypesCell = meshLocalCopy.getNumberOfTypes(MED_CELL) +print "" +if (nbTypesCell>0): + print " The Mesh has",nbTypesCell,"Type(s) of Cell" + types = meshLocalCopy.getTypes(MED_CELL) + for k in range(nbTypesCell): + type = types[k] + nbElemType = meshLocalCopy.getNumberOfElements(MED_CELL,type) + print " For the type:",type,"there is(are)",nbElemType,"elemnt(s)" + connectivity = meshLocalCopy.getConnectivity(MED_FULL_INTERLACE,MED_NODAL,MED_CELL,type) + nbNodesPerCell = type%100 + for j in range(nbElemType): + print " Element",(j+1)," ",connectivity[j*nbNodesPerCell:(j+1)*nbNodesPerCell] + pass + pass + pass + +## +## TEST METHODS ABOUT POLY ELEMENTS ## +## +nbTypesCellWithPoly = meshLocalCopy.getNumberOfTypesWithPoly(MED_CELL) +if (nbTypesCell == nbTypesCellWithPoly): + print "" + print " No Poly Cells in the mesh" + print "" + pass +else: + print "" + print " The Cell Nodal Connectivity of the Poly Cells:" + print "" + print " The Mesh has",nbTypesCellWithPoly-nbTypesCell,"Type(s) of Poly Cell" + types = meshLocalCopy.getTypesWithPoly(MED_CELL) + for k in range(nbTypesCellWithPoly): + type = types[k] + if type == MED_POLYGON: + nbElemType = meshLocalCopy.getNumberOfPolygons() + elif type == MED_POLYHEDRA: + nbElemType = meshLocalCopy.getNumberOfPolyhedron() + else: + continue + print "" + print " For the type:",type,"there is(are)",nbElemType,"elemnt(s)" + if type == MED_POLYGON: + connectivity = meshLocalCopy.getPolygonsConnectivity(MED_NODAL,MED_CELL) + index = meshLocalCopy.getPolygonsConnectivityIndex(MED_NODAL,MED_CELL) + for j in range(nbElemType): + print " Polygon",(j+1)," ",connectivity[ index[j]-1 : index[j+1]-1 ] + pass + pass + else: + connectivity = meshLocalCopy.getPolyhedronConnectivity(MED_NODAL) + fIndex = meshLocalCopy.getPolyhedronFacesIndex() + index = meshLocalCopy.getPolyhedronIndex(MED_NODAL) + for j in range(nbElemType): + print " Polyhedra",(j+1) + iF1, iF2 = index[ j ]-1, index[ j+1 ]-1 + for f in range( iF2 - iF1 ): + iN1, iN2 = fIndex[ iF1+f ]-1, fIndex[ iF1+f+1 ]-1 + print " Face",f+1," ",connectivity[ iN1 : iN2 ] + pass + pass + pass + pass + pass +pass + +f_addLocal = FIELDDOUBLEClient(f_add) + +f_addLocal.setName(f_addLocal.getName()+"add") + +f_linLocal = FIELDDOUBLEClient(f_lin) + +f_linLocal.setName(f_linLocal.getName()+"lin") + +#Warning : OutputMedFiles are removed here after ================================= +Outmed21File="OutCalculatorpointe21_V3.2.0b1.med" +os.system( 'rm -fr ' + Outmed21File ) +Outmed22File="OutCalculatorpointe22_V3.2.0b1.med" +os.system( 'rm -fr ' + Outmed22File ) + +# writting the mesh and the fields +medFileVersion = getMedFileVersionForWriting() + +if (medFileVersion == V22): + setMedFileVersionForWriting(V21) + +idMed = meshLocalCopy.addDriver(MED_DRIVER, Outmed21File, meshLocalCopy.getName(), MED_REMP) +meshLocalCopy.write(idMed) + +idMed = f_addLocal.addDriver(MED_DRIVER, Outmed21File, f_addLocal.getName()) +f_addLocal.write(idMed) + +idMed = f_linLocal.addDriver(MED_DRIVER, Outmed21File, f_linLocal.getName()) +f_linLocal.write(idMed) + +medFileVersion = getMedFileVersionForWriting() + +if (medFileVersion == V21): + setMedFileVersionForWriting(V22) + +idMed = meshLocalCopy.addDriver(MED_DRIVER, Outmed22File, meshLocalCopy.getName(), MED_REMP) +meshLocalCopy.write(idMed) + +idMed = f_addLocal.addDriver(MED_DRIVER, Outmed22File, f_addLocal.getName()) +f_addLocal.write(idMed) + +idMed = f_linLocal.addDriver(MED_DRIVER, Outmed22File, f_linLocal.getName()) +f_linLocal.write(idMed) + +myStudy.GetObjectNames('/Med') +myStudy.GetObjectNames('/Med/MED_OBJECT_FROM_FILE_pointe.med') +myStudy.GetObjectNames('/Med/MEDMESH') +myStudy.GetObjectNames('/Med/MEDMESH/maa1') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_ELEMENT_1') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_ELEMENT_2') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_ELEMENT_3') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe1') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_NOEUD_1') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_NOEUD_2') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_NOEUD_3') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_NOEUD_4') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe2') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe3') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe4') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe5') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/SupportOnAll_MED_MAILLE') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/SupportOnAll_MED_NOEUD') + +myStudy.GetObjectNames('/Med/MEDFIELD') +myStudy.GetObjectNames('/Med/MEDFIELD/fieldcelldoublevector') +#myStudy.GetObjectNames('/Med/MEDFIELD/fieldcelldoublevector/(-1,-1)_ON_SupportOnAll_MED_MAILLE_OF_maa1') +myStudy.GetObjectNames('/Med/MEDFIELD/fieldnodedouble') +#myStudy.GetObjectNames('/Med/MEDFIELD/fieldnodedouble/(-1,-1)_ON_SupportOnAll_MED_NOEUD_OF_maa1') +#myStudy.GetObjectNames('/Med/MEDFIELD/fieldnodedouble/1,-1)_ON_SupportOnAll_MED_NOEUD_OF_maa1') +#myStudy.GetObjectNames('/Med/MEDFIELD/fieldnodedouble/(2,-1)_ON_SupportOnAll_MED_NOEUD_OF_maa1') +myStudy.GetObjectNames('/Med/MEDFIELD/fieldnodeint') +#myStudy.GetObjectNames('/Med/MEDFIELD/fieldnodeint/(-1,-1)_ON_SupportOnAll_MED_NOEUD_OF_maa1') + +#myStudyManager.Close(myStudy) +#myStudy.Close() + +# +# +############ Output MED file with fields created by Caculator ################# +# via Client classes +# + +myStudy = myStudyManager.NewStudy('medClient_withoutIHM_add_lin') +studynameId = myStudy._get_StudyId() +studyname = myStudy._get_Name() +print "We are working in the study ",studyname," with the ID ",studynameId + +print "Reading the .med file ",Outmed21File," and pushing corba objects in the SALOME study" + +medComp.readStructFileWithFieldType(Outmed21File,studyname) + +Outf_add = medComp.readFieldInFile(Outmed21File,studyname,'fieldcelldoublevectoradd',-1,-1) +Outf_lin = medComp.readFieldInFile(Outmed21File,studyname,'fieldcelldoublevectorlin',-1,-1) + +myStudy.GetObjectNames('/Med') + +myStudy.GetObjectNames('/Med/MED_OBJECT_FROM_FILE_OutCalculatorpointe21_V3.2.0b1.med') + +myStudy.GetObjectNames('/Med/MEDMESH') +myStudy.GetObjectNames('/Med/MEDMESH/maa1') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_ELEMENT_1') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_ELEMENT_2') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/FAMILLE_ELEMENT_3') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe1') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe2') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe3') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe4') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/groupe5') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/SupportOnAll_MED_MAILLE') +myStudy.GetObjectNames('/Med/MEDMESH/MEDSUPPORTS_OF_maa1/SupportOnAll_MED_NOEUD') + +myStudy.GetObjectNames('/Med/MEDFIELD') +myStudy.GetObjectNames('/Med/MEDFIELD/fieldcelldoublevectoradd') +myStudy.GetObjectNames('/Med/MEDFIELD/fieldcelldoublevectoradd/(-1,-1)_ON_SupportOnAll_MED_MAILLE_OF_maa1') +myStudy.GetObjectNames('/Med/MEDFIELD/fieldcelldoublevectorlin') +myStudy.GetObjectNames('/Med/MEDFIELD/fieldcelldoublevectorlin/(-1,-1)_ON_SupportOnAll_MED_MAILLE_OF_maa1') + +#myStudyManager.Save(myStudy,1) +#myStudy.DumpStudy("/tmp","medClient_withoutIHM_add_lin",1) + +myStudyManager.SaveAs(studyname+'.hdf',myStudy,0) + +print "" +print "END of the Pyhton script ..... Ctrl D to exit" diff --git a/src/CALCULATOR/CALCULATOR_TEST_WITHOUTIHM.py b/src/CALCULATOR/CALCULATOR_TEST_WITHOUTIHM.py new file mode 100755 index 0000000..c788361 --- /dev/null +++ b/src/CALCULATOR/CALCULATOR_TEST_WITHOUTIHM.py @@ -0,0 +1,156 @@ + +#CALCULATOR_TEST_WITHOUTIHM.py + +from omniORB import CORBA + +import salome +import SALOME +import SALOME_MED +import SALOMEDS + +import os +host = os.getenv( 'HOST' ) +orb, lcc, naming_service, contmgr = salome.salome_kernel.salome_kernel_init() + +################ GET A MED FIELD FROM FILE pointe.med ################### +# +# This test program is based on the field named fieldcelldoublevector in +# med file $MED_ROOT_DIR/share/salome/resources/med/pointe.med +filePath=os.environ["MED_ROOT_DIR"] +filePath=filePath+"/share/salome/resources/med/" +medFile=filePath+"pointe.med" +fieldname = "fieldcelldoublevector" + +# Launch the Med Component and use it to load into memory the test field +print "Launch the Med Component: " +med_comp = lcc.FindOrLoadComponent("FactoryServer", "MED") + +# Get a Corba field proxy on the distant field (located in the med_comp server). +try: + obj = naming_service.Resolve('myStudyManager') + myStudyManager = obj._narrow(SALOMEDS.StudyManager) + print "studyManager found" + myStudy = myStudyManager.NewStudy('CALCULATOR_TEST_WITHOUTIHM') + studynameId = myStudy._get_StudyId() + studyname = myStudy._get_Name() + print "We are working in the study ",studyname," with the ID ",studynameId + print "Read field ",fieldname + fieldcell = med_comp.readFieldInFile(medFile,studyname,fieldname,-1,-1) + fieldcelldouble = fieldcell._narrow(SALOME_MED.FIELDDOUBLE) +except SALOME.SALOME_Exception, ex: + print ex.details + print ex.details.type + print ex.details.text + print ex.details.sourceFile + print ex.details.lineNumber + raise + +print "Description of Field : " +print fieldcelldouble +print fieldcelldouble.getName() +print fieldcelldouble.getDescription() +print fieldcelldouble.getNumberOfComponents() + +# +# +############## Load Calculator Component ################### +# Calculator Component must be in the Container of MED +# +print "Load Calculator Component " +# we need to import CALCULATOR_ORB to get a typed object (to perform narrowing) +import CALCULATOR_ORB +calculator = lcc.FindOrLoadComponent("FactoryServer", "CALCULATOR") + +# +# +############## Test Calculator Component ################### +# +# +print "Appel cloneField : fieldcelldoublevector -> f1,f2,f3,f4" +(f1,f2,f3,f4)=calculator.cloneField(fieldcelldouble) # fieldcelldouble is consumed +# +##f1.Register() +##calculator.printField(f1) +print "Add fields f2+f3" +f_add=calculator.add(f2, f3) +##f_add.Register() +##calculator.printField( f_add ) # f_add is consumed + +# +print "Apply linear function" +f_lin=calculator.applyLin(f4,2.0,1.0) +##f_lin.Register() +##calculator.printField( f_lin ) # f_lin is consumed +# +print "Appel Norme Max " +f_lin.Register() +norme=calculator.normMax(f_lin) # f_lin is consumed +print " -> norme = ",norme +# + +# +# +############ Creation of a MED file with fields created by Caculator ################# +# via Client classes +# +from libMEDClient import * + +meshDistant = f_add.getSupport().getMesh() + +meshLocal = MESHClient(meshDistant) + +f_addLocal = FIELDDOUBLEClient(f_add) + +f_addLocal.setName(f_addLocal.getName()+"add") + +f_linLocal = FIELDDOUBLEClient(f_lin) + +f_linLocal.setName(f_linLocal.getName()+"lin") + +# med file with 2.1 format +OutmedFile21="Calculatorpointe_V21.med" +os.system( 'rm -fr ' + OutmedFile21 ) + +medFileVersion = getMedFileVersionForWriting() +if (medFileVersion == V22): + print "setMedFileVersionForWriting(V21)" + setMedFileVersionForWriting(V21) + +# writting the mesh +print "meshLocal.write :" +idMed = meshLocal.addDriver(MED_DRIVER, OutmedFile21, meshLocal.getName(), MED_REMP) +meshLocal.write(idMed) + +# writting the 2 fields +print "f_addLocal.write :" +idMed = f_addLocal.addDriver(MED_DRIVER, OutmedFile21, f_addLocal.getName()) +f_addLocal.write(idMed) + +print "f_linLocal.write :" +idMed = f_linLocal.addDriver(MED_DRIVER, OutmedFile21, f_linLocal.getName()) +f_linLocal.write(idMed) + +# med file with 2.2 format +OutmedFile22="Calculatorpointe_V22.med" +os.system( 'rm -fr ' + OutmedFile22 ) + +medFileVersion = getMedFileVersionForWriting() +if (medFileVersion == V21): + print "setMedFileVersionForWriting(V22)" + setMedFileVersionForWriting(V22) + +# writting the mesh +print "meshLocal.write :" +idMed = meshLocal.addDriver(MED_DRIVER, OutmedFile22, meshLocal.getName(), MED_REMP) +meshLocal.write(idMed) + +# writting the 2 fields +print "f_addLocal.write :" +idMed = f_addLocal.addDriver(MED_DRIVER, OutmedFile22, f_addLocal.getName()) +f_addLocal.write(idMed) + +print "f_linLocal.write :" +idMed = f_linLocal.addDriver(MED_DRIVER, OutmedFile22, f_linLocal.getName()) +f_linLocal.write(idMed) + +print "End of Calculator Test!" diff --git a/src/CALCULATOR/Makefile.am b/src/CALCULATOR/Makefile.am new file mode 100755 index 0000000..609ec97 --- /dev/null +++ b/src/CALCULATOR/Makefile.am @@ -0,0 +1,66 @@ +# SuperVisionTest AddComponent : example of component that adds two numbers +# +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, 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.in +# Author : , CEA +# Modified by : Alexander BORODIN (OCN) - autotools usage + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# header files +salomeinclude_HEADERS = CALCULATOR.hxx + +# Libraries targets +lib_LTLIBRARIES = libCALCULATOREngine.la +dist_libCALCULATOREngine_la_SOURCES = \ + CALCULATOR.cxx + +libCALCULATOREngine_la_CPPFLAGS = \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(MED2_INCLUDES) \ + $(HDF5_INCLUDES) \ + $(KERNEL_CXXFLAGS) \ + $(MED_CXXFLAGS) \ + -I$(top_builddir)/idl \ + -I$(top_builddir)/salome_adm/unix + +libCALCULATOREngine_la_LDFLAGS = \ + $(CORBA_LIBS) \ + $(CAS_OCAF) \ + $(HDF5_LIBS) \ + $(KERNEL_LDFLAGS) \ + -lSalomeContainer \ + -lOpUtil \ + -lSalomeIDLKernel \ + $(MED_LDFLAGS) \ + -lSalomeIDLMED \ + -lMEDClientcmodule \ + $(top_builddir)/idl/libSalomeIDLCALCULATOR.la + +# Scripts to be installed +dist_salomescript_DATA = \ + CALCULATOR_TEST.py \ + CALCULATOR_TEST_STUDY_WITHOUTIHM.py \ + CALCULATOR_TEST_WITHOUTIHM.py diff --git a/src/CALCULATOR/Makefile.in b/src/CALCULATOR/Makefile.in deleted file mode 100644 index 39cada3..0000000 --- a/src/CALCULATOR/Makefile.in +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright (C) 2005 CEA/DEN, EDF R&D -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# -# source path -top_srcdir=@top_srcdir@ -top_builddir=../.. -srcdir=@srcdir@ -VPATH=.:@srcdir@:@top_srcdir@/idl:${MED_ROOT_DIR}/idl/salome - -@COMMENCE@ - -# Libraries targets - -LIB = libCALCULATOREngine.la -LIB_SRC = CALCULATOR.cxx -LIB_SERVER_IDL = CALCULATOR_Gen.idl -LIB_CLIENT_IDL = SALOME_Component.idl SALOME_Comm.idl SALOME_Exception.idl SALOMEDS.idl Logger.idl MED.idl SALOMEDS_Attributes.idl SALOME_GenericObj.idl - - -EXPORT_PYSCRIPTS = CALCULATOR_TEST.py - -OMNIORB_IDLCXXFLAGS+=-I${MED_ROOT_DIR}/idl/salome - -# additionnal information to compil and link file - -CPPFLAGS += $(KERNEL_CXXFLAGS) $(MED_CXXFLAGS) $(MED2_INCLUDES) $(HDF5_INCLUDES) - -LDFLAGS+= $(KERNEL_LDFLAGS) -lSalomeContainer -lOpUtil $(MED2_LIBS) $(HDF5_LIBS) $(MED_LDFLAGS) -lMEDClientcmodule - -MED.hh MEDSK.cc: MED.idl - omniidl -bcxx -Wbtp -I$(top_builddir)/idl -I${KERNEL_ROOT_DIR}/idl/salome $^ - - - -# Executables targets - -@CONCLUDE@ - diff --git a/src/CALCULATOR/graphe1.py b/src/CALCULATOR/graphe1.py index 37659be..f5bbf09 100644 --- a/src/CALCULATOR/graphe1.py +++ b/src/CALCULATOR/graphe1.py @@ -76,7 +76,7 @@ def DefaNewDataFlow() : Pyinit_parameter.append( ' print "init_parameter : myStudyName = ", StudyName ' ) Pyinit_parameter.append( ' from os import environ ' ) Pyinit_parameter.append( ' filePath=environ["MED_ROOT_DIR"] ' ) - Pyinit_parameter.append( ' filePath=filePath+"/share/salome/resources/" ' ) + Pyinit_parameter.append( ' filePath=filePath+"/share/salome/resources/med/" ' ) Pyinit_parameter.append( ' fromMedFile=filePath+"pointe.med" ' ) Pyinit_parameter.append( ' print "init_parameter : fromMedFile = ", fromMedFile ' ) Pyinit_parameter.append( ' fromfieldname="fieldcelldouble" ' ) diff --git a/src/CALCULATOR/graphe1.xml b/src/CALCULATOR/graphe1.xml index 2be4802..a6d081a 100644 --- a/src/CALCULATOR/graphe1.xml +++ b/src/CALCULATOR/graphe1.xml @@ -98,7 +98,7 @@ - + diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100755 index 0000000..5420c1a --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,32 @@ +# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, 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.in +# Author : Patrick GOLDBRONN (CEA) +# Modified by : Alexander BORODIN (OCN) - autotools usage +# Module : SuperVisionTest +# $Header: + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = CALCULATOR + +DIST_SUBDIRS = CALCULATOR diff --git a/src/Makefile.in b/src/Makefile.in deleted file mode 100644 index 2e99821..0000000 --- a/src/Makefile.in +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright (C) 2005 CEA/DEN, EDF R&D -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, 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.in -# Created : ven déc 7 13:32:20 CET 2001 -# Author : Paul RASCLE, EDF -# Project : SALOME -# Copyright : EDF 2001 -# $Header$ -#============================================================================== - -# source path -top_srcdir=@top_srcdir@ -top_builddir=.. -srcdir=@srcdir@ -VPATH=.:@srcdir@ - -@COMMENCE@ - -SUBDIRS = CALCULATOR - -@MODULE@