From 82899d9600b0e569e7001eedc192bd0e74b2253e Mon Sep 17 00:00:00 2001 From: Serge Rehbinder Date: Thu, 15 Sep 2016 16:31:26 +0200 Subject: [PATCH] add the template command --- commands/generate.py | 5 +- commands/template.py | 538 + data/templates/Application/README | 3 + data/templates/Application/config/README | 3 + data/templates/Application/config/compile.py | 36 + .../splash_generator/README_create_splash.txt | 3 + .../splash_generator/Salome6_splash_fond.png | Bin 0 -> 500690 bytes .../config/splash_generator/splash.py | 90 + .../config/splash_generator/splash2.py | 170 + .../config/splash_generator/xirod.ttf | Bin 0 -> 63000 bytes .../config/template_product.pyconf | 102 + data/templates/Application/doc/README | 1 + .../Application/documentation/README | 1 + data/templates/Application/patches/README | 3 + .../Application/resources/LightApp_images.ts | 23 + .../Application/resources/LightApp_msg_en.ts | 35 + .../Application/resources/LightApp_msg_fr.ts | 35 + data/templates/Application/resources/README | 1 + .../templates/Application/resources/about.png | Bin 0 -> 9593 bytes .../Application/resources/about_icon.png | Bin 0 -> 982 bytes .../Application/resources/appicon.png | Bin 0 -> 718 bytes .../Application/resources/applogo.png | Bin 0 -> 3458 bytes .../Application/resources/splash.png | Bin 0 -> 6260 bytes data/templates/Application/src/README | 1 + data/templates/Application/template.info | 100 + data/templates/Application/tests/README | 4 + data/templates/CppComponent/AUTHORS | 0 data/templates/CppComponent/COPYING | 504 + .../CppComponent/CPPCMP_version.h.in | 38 + data/templates/CppComponent/ChangeLog | 0 data/templates/CppComponent/INSTALL | 1 + data/templates/CppComponent/Makefile.am | 58 + data/templates/CppComponent/NEWS | 0 data/templates/CppComponent/README | 0 .../CppComponent/adm_local/Makefile.am | 22 + .../CppComponent/adm_local/unix/Makefile.am | 22 + .../adm_local/unix/config_files/Makefile.am | 23 + .../unix/config_files/check_CPPCMP.m4 | 75 + .../adm_local/unix/config_files/check_GUI.m4 | 106 + .../adm_local/unix/make_common_starter.am | 94 + data/templates/CppComponent/bin/Makefile.am | 33 + data/templates/CppComponent/bin/VERSION.in | 3 + .../templates/CppComponent/bin/myrunSalome.py | 54 + data/templates/CppComponent/bin/runAppli.in | 65 + data/templates/CppComponent/bin/test_hello.py | 61 + data/templates/CppComponent/build_configure | 110 + data/templates/CppComponent/clean_configure | 28 + data/templates/CppComponent/configure.ac | 348 + data/templates/CppComponent/doc/Makefile.am | 54 + data/templates/CppComponent/doc/doxyfile.in | 81 + .../CppComponent/doc/images/head.png | Bin 0 -> 78545 bytes data/templates/CppComponent/doc/index.doc | 1065 + .../CppComponent/doc/static/doxygen.css | 836 + .../CppComponent/doc/static/footer.html | 12 + .../CppComponent/doc/static/header.html.in | 20 + .../templates/CppComponent/idl/CPPCMP_Gen.idl | 89 + data/templates/CppComponent/idl/Makefile.am | 114 + .../CppComponent/resources/CPPCMP.png | Bin 0 -> 1452 bytes .../resources/CPPCMPCatalog.xml.in | 112 + .../CppComponent/resources/Makefile.am | 30 + .../CppComponent/resources/SalomeApp.xml.in | 40 + .../CppComponent/resources/goodbye.png | Bin 0 -> 2244 bytes .../CppComponent/resources/handshake.png | Bin 0 -> 2257 bytes .../CppComponent/resources/testme.png | Bin 0 -> 2191 bytes .../CppComponent/src/CPPCMP/CPPCMP.cxx | 297 + .../CppComponent/src/CPPCMP/CPPCMP.hxx | 57 + .../CppComponent/src/CPPCMP/Makefile.am | 47 + .../CppComponent/src/CPPCMPGUI/CPPCMPGUI.cxx | 920 + .../CppComponent/src/CPPCMPGUI/CPPCMPGUI.h | 103 + .../src/CPPCMPGUI/CPPCMP_icons.ts | 23 + .../src/CPPCMPGUI/CPPCMP_msg_en.ts | 115 + .../src/CPPCMPGUI/CPPCMP_msg_fr.ts | 115 + .../CppComponent/src/CPPCMPGUI/Makefile.am | 67 + data/templates/CppComponent/src/Makefile.am | 30 + data/templates/CppComponent/template.info | 65 + data/templates/CppSalome6/AUTHORS | 1 + data/templates/CppSalome6/ChangeLog | 0 data/templates/CppSalome6/Makefile.am | 5 + data/templates/CppSalome6/NEWS | 0 data/templates/CppSalome6/README | 16 + .../CppSalome6/adm/unix/config_files/EMPTY | 1 + .../CppSalome6/adm/unix/make_begin.am | 0 .../CppSalome6/adm/unix/make_check.am | 15 + .../templates/CppSalome6/adm/unix/make_end.am | 23 + data/templates/CppSalome6/archive | 34 + data/templates/CppSalome6/build_configure | 50 + data/templates/CppSalome6/configure.in.base | 23 + .../CppSalome6/resources/Cpp_Template_.png | Bin 0 -> 1452 bytes data/templates/CppSalome6/rfind | 46 + data/templates/CppSalome6/root_clean | 32 + .../Cpp_Template__CXX/Cpp_Template_.cxx | 19 + .../Cpp_Template__CXX/Cpp_Template_.hxx | 20 + .../Cpp_Template__CXX/Makefile.am | 32 + .../Cpp_Template_/Cpp_Template__CXX/main.cxx | 12 + .../Cpp_Template__SWIG/Cpp_Template_.i | 42 + .../Cpp_Template__SWIG/Makefile.am | 32 + .../Cpp_Template__TEST/Cpp_Template__test.py | 16 + .../Cpp_Template__TEST/Makefile.am | 7 + .../CppSalome6/src/Cpp_Template_/Makefile.am | 3 + data/templates/CppSalome6/src/Makefile.am | 2 + data/templates/CppSalome6/template.info | 64 + data/templates/CppSalome7/AUTHORS | 1 + data/templates/CppSalome7/ChangeLog | 0 data/templates/CppSalome7/Makefile.am | 5 + data/templates/CppSalome7/NEWS | 0 data/templates/CppSalome7/README | 16 + .../CppSalome7/adm/unix/config_files/EMPTY | 1 + .../CppSalome7/adm/unix/make_begin.am | 0 .../CppSalome7/adm/unix/make_check.am | 15 + .../templates/CppSalome7/adm/unix/make_end.am | 23 + data/templates/CppSalome7/archive | 34 + data/templates/CppSalome7/build_configure | 50 + data/templates/CppSalome7/configure.in.base | 23 + .../CppSalome7/resources/Cpp_Template_.png | Bin 0 -> 1452 bytes data/templates/CppSalome7/rfind | 46 + data/templates/CppSalome7/root_clean | 32 + .../Cpp_Template__CXX/Cpp_Template_.cxx | 19 + .../Cpp_Template__CXX/Cpp_Template_.hxx | 21 + .../Cpp_Template__CXX/Makefile.am | 32 + .../Cpp_Template_/Cpp_Template__CXX/main.cxx | 14 + .../Cpp_Template__SWIG/Cpp_Template_.i | 32 + .../Cpp_Template__SWIG/Makefile.am | 32 + .../Cpp_Template__TEST/Cpp_Template__test.py | 16 + .../Cpp_Template__TEST/Makefile.am | 7 + .../CppSalome7/src/Cpp_Template_/Makefile.am | 3 + data/templates/CppSalome7/src/Makefile.am | 2 + data/templates/CppSalome7/template.info | 64 + data/templates/Cpp_Template/AUTHORS | 1 + data/templates/Cpp_Template/ChangeLog | 0 data/templates/Cpp_Template/Makefile.am | 5 + data/templates/Cpp_Template/NEWS | 0 data/templates/Cpp_Template/README | 16 + .../Cpp_Template/adm/unix/config_files/EMPTY | 1 + .../Cpp_Template/adm/unix/make_begin.am | 0 .../Cpp_Template/adm/unix/make_check.am | 15 + .../Cpp_Template/adm/unix/make_end.am | 23 + data/templates/Cpp_Template/archive | 34 + data/templates/Cpp_Template/build_configure | 50 + data/templates/Cpp_Template/configure.in.base | 23 + .../Cpp_Template/resources/Cpp_Template_.png | Bin 0 -> 1452 bytes data/templates/Cpp_Template/rfind | 46 + data/templates/Cpp_Template/root_clean | 32 + .../Cpp_Template__CXX/Cpp_Template_.cxx | 19 + .../Cpp_Template__CXX/Cpp_Template_.hxx | 21 + .../Cpp_Template__CXX/Makefile.am | 32 + .../Cpp_Template_/Cpp_Template__CXX/main.cxx | 14 + .../Cpp_Template__SWIG/Cpp_Template_.i | 32 + .../Cpp_Template__SWIG/Makefile.am | 32 + .../Cpp_Template__TEST/Cpp_Template__test.py | 16 + .../Cpp_Template__TEST/Makefile.am | 7 + .../src/Cpp_Template_/Makefile.am | 3 + data/templates/Cpp_Template/src/Makefile.am | 2 + data/templates/Cpp_Template/template.info | 74 + data/templates/Cpp_Template_med2/AUTHORS | 1 + data/templates/Cpp_Template_med2/ChangeLog | 0 data/templates/Cpp_Template_med2/Makefile.am | 5 + data/templates/Cpp_Template_med2/NEWS | 0 data/templates/Cpp_Template_med2/README | 16 + .../Cpp_Template_med2/adm/unix/make_begin.am | 0 .../Cpp_Template_med2/adm/unix/make_check.am | 15 + .../Cpp_Template_med2/adm/unix/make_end.am | 23 + data/templates/Cpp_Template_med2/archive | 34 + .../Cpp_Template_med2/build_configure | 50 + .../Cpp_Template_med2/configure.in.base | 23 + .../resources/Cpp_Template_.png | Bin 0 -> 1452 bytes data/templates/Cpp_Template_med2/rfind | 46 + data/templates/Cpp_Template_med2/root_clean | 32 + .../Cpp_Template__CXX/Cpp_Template_.cxx | 19 + .../Cpp_Template__CXX/Cpp_Template_.hxx | 20 + .../Cpp_Template__CXX/Makefile.am | 32 + .../Cpp_Template_/Cpp_Template__CXX/main.cxx | 12 + .../Cpp_Template__SWIG/Cpp_Template_.i | 42 + .../Cpp_Template__SWIG/Makefile.am | 32 + .../Cpp_Template__TEST/Cpp_Template__test.py | 16 + .../Cpp_Template__TEST/Makefile.am | 7 + .../src/Cpp_Template_/Makefile.am | 3 + .../Cpp_Template_med2/src/Makefile.am | 2 + .../templates/Cpp_Template_med2/template.info | 74 + data/templates/Cpp_Template_stda/AUTHORS | 1 + data/templates/Cpp_Template_stda/ChangeLog | 0 data/templates/Cpp_Template_stda/Makefile.am | 5 + data/templates/Cpp_Template_stda/NEWS | 0 data/templates/Cpp_Template_stda/README | 15 + .../adm/unix/config_files/ac_cxx_option.m4 | 45 + .../unix/config_files/ac_linker_options.m4 | 56 + .../adm/unix/config_files/check_swig.m4 | 75 + .../adm/unix/config_files/production.m4 | 105 + .../adm/unix/config_files/python.m4 | 184 + .../Cpp_Template_stda/adm/unix/make_begin.am | 0 .../Cpp_Template_stda/adm/unix/make_check.am | 15 + .../Cpp_Template_stda/adm/unix/make_end.am | 23 + data/templates/Cpp_Template_stda/archive | 34 + .../Cpp_Template_stda/build_configure | 38 + .../Cpp_Template_stda/configure.in.base | 21 + .../resources/Cpp_Template_.png | Bin 0 -> 1452 bytes data/templates/Cpp_Template_stda/rfind | 46 + data/templates/Cpp_Template_stda/root_clean | 32 + .../Cpp_Template__CXX/Cpp_Template_.cxx | 15 + .../Cpp_Template__CXX/Cpp_Template_.hxx | 14 + .../Cpp_Template__CXX/Makefile.am | 32 + .../Cpp_Template_/Cpp_Template__CXX/main.cxx | 9 + .../Cpp_Template__SWIG/Cpp_Template_.i | 35 + .../Cpp_Template__SWIG/Makefile.am | 32 + .../Cpp_Template__TEST/Cpp_Template__test.py | 16 + .../Cpp_Template__TEST/Makefile.am | 7 + .../src/Cpp_Template_/Makefile.am | 3 + .../Cpp_Template_stda/src/Makefile.am | 2 + .../templates/Cpp_Template_stda/template.info | 63 + data/templates/PythonComponent/AUTHORS | 1 + data/templates/PythonComponent/COPYING | 504 + data/templates/PythonComponent/ChangeLog | 1 + data/templates/PythonComponent/INSTALL | 1 + data/templates/PythonComponent/Makefile.am | 51 + data/templates/PythonComponent/Makefile.in | 852 + data/templates/PythonComponent/NEWS | 1 + data/templates/PythonComponent/README | 12 + data/templates/PythonComponent/aclocal.m4 | 9668 ++++++ .../PythonComponent/adm_local/Makefile.am | 22 + .../PythonComponent/adm_local/Makefile.in | 695 + .../adm_local/unix/Makefile.am | 22 + .../adm_local/unix/Makefile.in | 695 + .../adm_local/unix/config_files/Makefile.am | 23 + .../adm_local/unix/config_files/Makefile.in | 572 + .../unix/config_files/check_PYCMP.m4 | 75 + .../adm_local/unix/config_files/config.guess | 1471 + .../adm_local/unix/config_files/config.sub | 1602 + .../adm_local/unix/config_files/install-sh | 507 + .../adm_local/unix/config_files/ltmain.sh | 6933 ++++ .../adm_local/unix/config_files/missing | 367 + .../adm_local/unix/make_common_starter.am | 94 + .../templates/PythonComponent/bin/Makefile.am | 33 + .../templates/PythonComponent/bin/Makefile.in | 637 + data/templates/PythonComponent/bin/VERSION.in | 1 + .../PythonComponent/bin/myrunSalome.py | 54 + .../templates/PythonComponent/bin/runAppli.in | 67 + data/templates/PythonComponent/build_cmake | 27 + .../templates/PythonComponent/build_cmake.bat | 20 + .../templates/PythonComponent/build_configure | 105 + .../templates/PythonComponent/clean_configure | 33 + data/templates/PythonComponent/configure | 27211 ++++++++++++++++ data/templates/PythonComponent/configure.ac | 256 + .../templates/PythonComponent/doc/Makefile.am | 54 + .../templates/PythonComponent/doc/Makefile.in | 601 + .../templates/PythonComponent/doc/doxyfile.in | 81 + .../PythonComponent/doc/images/head.png | Bin 0 -> 78545 bytes data/templates/PythonComponent/doc/index.doc | 666 + .../PythonComponent/doc/static/doxygen.css | 830 + .../PythonComponent/doc/static/footer.html | 12 + .../PythonComponent/doc/static/header.html.in | 22 + .../templates/PythonComponent/idl/Makefile.am | 63 + .../templates/PythonComponent/idl/Makefile.in | 608 + .../PythonComponent/idl/PYCMP_Gen.idl | 48 + .../PythonComponent/resources/ExecCircle.png | Bin 0 -> 163 bytes .../PythonComponent/resources/ExecDelAll.png | Bin 0 -> 183 bytes .../PythonComponent/resources/ExecPYCMP.png | Bin 0 -> 831 bytes .../resources/ExecPolyline.png | Bin 0 -> 419 bytes .../PythonComponent/resources/Makefile.am | 39 + .../PythonComponent/resources/Makefile.in | 613 + .../PythonComponent/resources/PYCMP.png | Bin 0 -> 1612 bytes .../resources/PYCMPCatalog.xml.in | 49 + .../PythonComponent/resources/PYCMP_small.png | Bin 0 -> 933 bytes .../PythonComponent/resources/SalomeApp.xml | 40 + .../PythonComponent/resources/handshake.png | Bin 0 -> 1835 bytes .../PythonComponent/resources/stop.png | Bin 0 -> 1816 bytes .../src/Controller/Controller.py | 104 + .../src/Controller/Makefile.am | 30 + .../src/Dialog/CreateCircleDialog.py | 71 + .../src/Dialog/CreatePolylineDialog.py | 59 + .../PythonComponent/src/Dialog/Dialog.py | 105 + .../PythonComponent/src/Dialog/DialogEdit.py | 93 + .../src/Dialog/EditCenterDialog.py | 64 + .../src/Dialog/EditPointDialog.py | 67 + .../src/Dialog/EditRadiusDialog.py | 43 + .../PythonComponent/src/Dialog/Makefile.am | 37 + .../src/Dialog/RenameDialog.py | 39 + .../templates/PythonComponent/src/Makefile.am | 27 + .../templates/PythonComponent/src/Makefile.in | 700 + .../PythonComponent/src/Model/Circle.py | 59 + .../PythonComponent/src/Model/Makefile.am | 32 + .../PythonComponent/src/Model/Model.py | 34 + .../PythonComponent/src/Model/Polyline.py | 55 + .../PythonComponent/src/PYCMP/Makefile.am | 30 + .../PythonComponent/src/PYCMP/Makefile.in | 576 + .../PythonComponent/src/PYCMP/PYCMP.py | 101 + .../PythonComponent/src/PYCMP/PYCMP_utils.py | 197 + .../PythonComponent/src/PYCMPGUI/Makefile.am | 37 + .../PythonComponent/src/PYCMPGUI/Makefile.in | 612 + .../src/PYCMPGUI/PYCMPDesktop.py | 102 + .../PythonComponent/src/PYCMPGUI/PYCMPGUI.py | 257 + .../src/PYCMPGUI/PYCMP_icons.ts | 37 + .../src/PYCMPGUI/PYCMP_msg_en.ts | 11 + .../src/PYCMPGUI/PYCMP_msg_fr.ts | 11 + .../PythonComponent/src/Tools/Desktop.py | 124 + .../PythonComponent/src/Tools/Makefile.am | 30 + .../src/Tools/StandalonePYCMPGUI.py | 18 + .../src/View/CircleGraphicsScene.py | 31 + .../src/View/CircleTreeWidgetItem.py | 28 + .../src/View/GraphicsRectItem.py | 16 + .../PythonComponent/src/View/GraphicsScene.py | 68 + .../PythonComponent/src/View/GraphicsView.py | 98 + .../PythonComponent/src/View/Makefile.am | 41 + .../PythonComponent/src/View/Menu.py | 16 + .../src/View/PolyGraphicsScene.py | 40 + .../src/View/PolyTreeWidgetItem.py | 28 + .../PythonComponent/src/View/TreeWidget.py | 108 + .../src/View/TreeWidgetItem.py | 56 + .../PythonComponent/src/View/View.py | 33 + data/templates/PythonComponent/template.info | 62 + src/product.py | 14 + 309 files changed, 70737 insertions(+), 2 deletions(-) create mode 100644 commands/template.py create mode 100755 data/templates/Application/README create mode 100755 data/templates/Application/config/README create mode 100755 data/templates/Application/config/compile.py create mode 100644 data/templates/Application/config/splash_generator/README_create_splash.txt create mode 100755 data/templates/Application/config/splash_generator/Salome6_splash_fond.png create mode 100755 data/templates/Application/config/splash_generator/splash.py create mode 100755 data/templates/Application/config/splash_generator/splash2.py create mode 100755 data/templates/Application/config/splash_generator/xirod.ttf create mode 100755 data/templates/Application/config/template_product.pyconf create mode 100755 data/templates/Application/doc/README create mode 100755 data/templates/Application/documentation/README create mode 100755 data/templates/Application/patches/README create mode 100755 data/templates/Application/resources/LightApp_images.ts create mode 100755 data/templates/Application/resources/LightApp_msg_en.ts create mode 100755 data/templates/Application/resources/LightApp_msg_fr.ts create mode 100755 data/templates/Application/resources/README create mode 100755 data/templates/Application/resources/about.png create mode 100755 data/templates/Application/resources/about_icon.png create mode 100755 data/templates/Application/resources/appicon.png create mode 100755 data/templates/Application/resources/applogo.png create mode 100755 data/templates/Application/resources/splash.png create mode 100755 data/templates/Application/src/README create mode 100644 data/templates/Application/template.info create mode 100755 data/templates/Application/tests/README create mode 100755 data/templates/CppComponent/AUTHORS create mode 100755 data/templates/CppComponent/COPYING create mode 100755 data/templates/CppComponent/CPPCMP_version.h.in create mode 100755 data/templates/CppComponent/ChangeLog create mode 100755 data/templates/CppComponent/INSTALL create mode 100755 data/templates/CppComponent/Makefile.am create mode 100755 data/templates/CppComponent/NEWS create mode 100755 data/templates/CppComponent/README create mode 100755 data/templates/CppComponent/adm_local/Makefile.am create mode 100755 data/templates/CppComponent/adm_local/unix/Makefile.am create mode 100755 data/templates/CppComponent/adm_local/unix/config_files/Makefile.am create mode 100755 data/templates/CppComponent/adm_local/unix/config_files/check_CPPCMP.m4 create mode 100755 data/templates/CppComponent/adm_local/unix/config_files/check_GUI.m4 create mode 100755 data/templates/CppComponent/adm_local/unix/make_common_starter.am create mode 100755 data/templates/CppComponent/bin/Makefile.am create mode 100755 data/templates/CppComponent/bin/VERSION.in create mode 100755 data/templates/CppComponent/bin/myrunSalome.py create mode 100755 data/templates/CppComponent/bin/runAppli.in create mode 100755 data/templates/CppComponent/bin/test_hello.py create mode 100755 data/templates/CppComponent/build_configure create mode 100755 data/templates/CppComponent/clean_configure create mode 100755 data/templates/CppComponent/configure.ac create mode 100755 data/templates/CppComponent/doc/Makefile.am create mode 100755 data/templates/CppComponent/doc/doxyfile.in create mode 100755 data/templates/CppComponent/doc/images/head.png create mode 100755 data/templates/CppComponent/doc/index.doc create mode 100755 data/templates/CppComponent/doc/static/doxygen.css create mode 100755 data/templates/CppComponent/doc/static/footer.html create mode 100755 data/templates/CppComponent/doc/static/header.html.in create mode 100755 data/templates/CppComponent/idl/CPPCMP_Gen.idl create mode 100755 data/templates/CppComponent/idl/Makefile.am create mode 100755 data/templates/CppComponent/resources/CPPCMP.png create mode 100755 data/templates/CppComponent/resources/CPPCMPCatalog.xml.in create mode 100755 data/templates/CppComponent/resources/Makefile.am create mode 100755 data/templates/CppComponent/resources/SalomeApp.xml.in create mode 100755 data/templates/CppComponent/resources/goodbye.png create mode 100755 data/templates/CppComponent/resources/handshake.png create mode 100755 data/templates/CppComponent/resources/testme.png create mode 100755 data/templates/CppComponent/src/CPPCMP/CPPCMP.cxx create mode 100755 data/templates/CppComponent/src/CPPCMP/CPPCMP.hxx create mode 100755 data/templates/CppComponent/src/CPPCMP/Makefile.am create mode 100755 data/templates/CppComponent/src/CPPCMPGUI/CPPCMPGUI.cxx create mode 100755 data/templates/CppComponent/src/CPPCMPGUI/CPPCMPGUI.h create mode 100755 data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_icons.ts create mode 100755 data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_msg_en.ts create mode 100755 data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_msg_fr.ts create mode 100755 data/templates/CppComponent/src/CPPCMPGUI/Makefile.am create mode 100755 data/templates/CppComponent/src/Makefile.am create mode 100644 data/templates/CppComponent/template.info create mode 100644 data/templates/CppSalome6/AUTHORS create mode 100644 data/templates/CppSalome6/ChangeLog create mode 100644 data/templates/CppSalome6/Makefile.am create mode 100644 data/templates/CppSalome6/NEWS create mode 100644 data/templates/CppSalome6/README create mode 100644 data/templates/CppSalome6/adm/unix/config_files/EMPTY create mode 100644 data/templates/CppSalome6/adm/unix/make_begin.am create mode 100644 data/templates/CppSalome6/adm/unix/make_check.am create mode 100644 data/templates/CppSalome6/adm/unix/make_end.am create mode 100755 data/templates/CppSalome6/archive create mode 100755 data/templates/CppSalome6/build_configure create mode 100644 data/templates/CppSalome6/configure.in.base create mode 100644 data/templates/CppSalome6/resources/Cpp_Template_.png create mode 100755 data/templates/CppSalome6/rfind create mode 100755 data/templates/CppSalome6/root_clean create mode 100644 data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx create mode 100644 data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx create mode 100644 data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am create mode 100644 data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/main.cxx create mode 100644 data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i create mode 100644 data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am create mode 100644 data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py create mode 100644 data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am create mode 100644 data/templates/CppSalome6/src/Cpp_Template_/Makefile.am create mode 100644 data/templates/CppSalome6/src/Makefile.am create mode 100644 data/templates/CppSalome6/template.info create mode 100644 data/templates/CppSalome7/AUTHORS create mode 100644 data/templates/CppSalome7/ChangeLog create mode 100644 data/templates/CppSalome7/Makefile.am create mode 100644 data/templates/CppSalome7/NEWS create mode 100644 data/templates/CppSalome7/README create mode 100644 data/templates/CppSalome7/adm/unix/config_files/EMPTY create mode 100644 data/templates/CppSalome7/adm/unix/make_begin.am create mode 100644 data/templates/CppSalome7/adm/unix/make_check.am create mode 100644 data/templates/CppSalome7/adm/unix/make_end.am create mode 100755 data/templates/CppSalome7/archive create mode 100755 data/templates/CppSalome7/build_configure create mode 100644 data/templates/CppSalome7/configure.in.base create mode 100644 data/templates/CppSalome7/resources/Cpp_Template_.png create mode 100755 data/templates/CppSalome7/rfind create mode 100755 data/templates/CppSalome7/root_clean create mode 100644 data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx create mode 100644 data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx create mode 100644 data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am create mode 100644 data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/main.cxx create mode 100644 data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i create mode 100644 data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am create mode 100644 data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py create mode 100644 data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am create mode 100644 data/templates/CppSalome7/src/Cpp_Template_/Makefile.am create mode 100644 data/templates/CppSalome7/src/Makefile.am create mode 100644 data/templates/CppSalome7/template.info create mode 100644 data/templates/Cpp_Template/AUTHORS create mode 100644 data/templates/Cpp_Template/ChangeLog create mode 100644 data/templates/Cpp_Template/Makefile.am create mode 100644 data/templates/Cpp_Template/NEWS create mode 100644 data/templates/Cpp_Template/README create mode 100644 data/templates/Cpp_Template/adm/unix/config_files/EMPTY create mode 100644 data/templates/Cpp_Template/adm/unix/make_begin.am create mode 100644 data/templates/Cpp_Template/adm/unix/make_check.am create mode 100644 data/templates/Cpp_Template/adm/unix/make_end.am create mode 100755 data/templates/Cpp_Template/archive create mode 100755 data/templates/Cpp_Template/build_configure create mode 100644 data/templates/Cpp_Template/configure.in.base create mode 100644 data/templates/Cpp_Template/resources/Cpp_Template_.png create mode 100755 data/templates/Cpp_Template/rfind create mode 100755 data/templates/Cpp_Template/root_clean create mode 100644 data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx create mode 100644 data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx create mode 100644 data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am create mode 100644 data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/main.cxx create mode 100644 data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i create mode 100644 data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am create mode 100644 data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py create mode 100644 data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am create mode 100644 data/templates/Cpp_Template/src/Cpp_Template_/Makefile.am create mode 100644 data/templates/Cpp_Template/src/Makefile.am create mode 100644 data/templates/Cpp_Template/template.info create mode 100755 data/templates/Cpp_Template_med2/AUTHORS create mode 100755 data/templates/Cpp_Template_med2/ChangeLog create mode 100755 data/templates/Cpp_Template_med2/Makefile.am create mode 100755 data/templates/Cpp_Template_med2/NEWS create mode 100755 data/templates/Cpp_Template_med2/README create mode 100755 data/templates/Cpp_Template_med2/adm/unix/make_begin.am create mode 100755 data/templates/Cpp_Template_med2/adm/unix/make_check.am create mode 100755 data/templates/Cpp_Template_med2/adm/unix/make_end.am create mode 100755 data/templates/Cpp_Template_med2/archive create mode 100755 data/templates/Cpp_Template_med2/build_configure create mode 100755 data/templates/Cpp_Template_med2/configure.in.base create mode 100755 data/templates/Cpp_Template_med2/resources/Cpp_Template_.png create mode 100755 data/templates/Cpp_Template_med2/rfind create mode 100755 data/templates/Cpp_Template_med2/root_clean create mode 100755 data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx create mode 100755 data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx create mode 100755 data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am create mode 100755 data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/main.cxx create mode 100755 data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i create mode 100755 data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am create mode 100755 data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py create mode 100755 data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am create mode 100755 data/templates/Cpp_Template_med2/src/Cpp_Template_/Makefile.am create mode 100755 data/templates/Cpp_Template_med2/src/Makefile.am create mode 100644 data/templates/Cpp_Template_med2/template.info create mode 100755 data/templates/Cpp_Template_stda/AUTHORS create mode 100755 data/templates/Cpp_Template_stda/ChangeLog create mode 100755 data/templates/Cpp_Template_stda/Makefile.am create mode 100755 data/templates/Cpp_Template_stda/NEWS create mode 100755 data/templates/Cpp_Template_stda/README create mode 100755 data/templates/Cpp_Template_stda/adm/unix/config_files/ac_cxx_option.m4 create mode 100755 data/templates/Cpp_Template_stda/adm/unix/config_files/ac_linker_options.m4 create mode 100755 data/templates/Cpp_Template_stda/adm/unix/config_files/check_swig.m4 create mode 100755 data/templates/Cpp_Template_stda/adm/unix/config_files/production.m4 create mode 100755 data/templates/Cpp_Template_stda/adm/unix/config_files/python.m4 create mode 100755 data/templates/Cpp_Template_stda/adm/unix/make_begin.am create mode 100755 data/templates/Cpp_Template_stda/adm/unix/make_check.am create mode 100755 data/templates/Cpp_Template_stda/adm/unix/make_end.am create mode 100755 data/templates/Cpp_Template_stda/archive create mode 100755 data/templates/Cpp_Template_stda/build_configure create mode 100755 data/templates/Cpp_Template_stda/configure.in.base create mode 100755 data/templates/Cpp_Template_stda/resources/Cpp_Template_.png create mode 100755 data/templates/Cpp_Template_stda/rfind create mode 100755 data/templates/Cpp_Template_stda/root_clean create mode 100755 data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx create mode 100755 data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx create mode 100755 data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am create mode 100755 data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/main.cxx create mode 100755 data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i create mode 100755 data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am create mode 100755 data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py create mode 100755 data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am create mode 100755 data/templates/Cpp_Template_stda/src/Cpp_Template_/Makefile.am create mode 100755 data/templates/Cpp_Template_stda/src/Makefile.am create mode 100644 data/templates/Cpp_Template_stda/template.info create mode 100755 data/templates/PythonComponent/AUTHORS create mode 100755 data/templates/PythonComponent/COPYING create mode 100755 data/templates/PythonComponent/ChangeLog create mode 100755 data/templates/PythonComponent/INSTALL create mode 100755 data/templates/PythonComponent/Makefile.am create mode 100755 data/templates/PythonComponent/Makefile.in create mode 100755 data/templates/PythonComponent/NEWS create mode 100755 data/templates/PythonComponent/README create mode 100644 data/templates/PythonComponent/aclocal.m4 create mode 100755 data/templates/PythonComponent/adm_local/Makefile.am create mode 100755 data/templates/PythonComponent/adm_local/Makefile.in create mode 100755 data/templates/PythonComponent/adm_local/unix/Makefile.am create mode 100755 data/templates/PythonComponent/adm_local/unix/Makefile.in create mode 100755 data/templates/PythonComponent/adm_local/unix/config_files/Makefile.am create mode 100755 data/templates/PythonComponent/adm_local/unix/config_files/Makefile.in create mode 100755 data/templates/PythonComponent/adm_local/unix/config_files/check_PYCMP.m4 create mode 100755 data/templates/PythonComponent/adm_local/unix/config_files/config.guess create mode 100755 data/templates/PythonComponent/adm_local/unix/config_files/config.sub create mode 100755 data/templates/PythonComponent/adm_local/unix/config_files/install-sh create mode 100644 data/templates/PythonComponent/adm_local/unix/config_files/ltmain.sh create mode 100755 data/templates/PythonComponent/adm_local/unix/config_files/missing create mode 100755 data/templates/PythonComponent/adm_local/unix/make_common_starter.am create mode 100755 data/templates/PythonComponent/bin/Makefile.am create mode 100755 data/templates/PythonComponent/bin/Makefile.in create mode 100755 data/templates/PythonComponent/bin/VERSION.in create mode 100755 data/templates/PythonComponent/bin/myrunSalome.py create mode 100755 data/templates/PythonComponent/bin/runAppli.in create mode 100755 data/templates/PythonComponent/build_cmake create mode 100644 data/templates/PythonComponent/build_cmake.bat create mode 100755 data/templates/PythonComponent/build_configure create mode 100755 data/templates/PythonComponent/clean_configure create mode 100755 data/templates/PythonComponent/configure create mode 100755 data/templates/PythonComponent/configure.ac create mode 100755 data/templates/PythonComponent/doc/Makefile.am create mode 100755 data/templates/PythonComponent/doc/Makefile.in create mode 100755 data/templates/PythonComponent/doc/doxyfile.in create mode 100755 data/templates/PythonComponent/doc/images/head.png create mode 100755 data/templates/PythonComponent/doc/index.doc create mode 100755 data/templates/PythonComponent/doc/static/doxygen.css create mode 100755 data/templates/PythonComponent/doc/static/footer.html create mode 100755 data/templates/PythonComponent/doc/static/header.html.in create mode 100755 data/templates/PythonComponent/idl/Makefile.am create mode 100755 data/templates/PythonComponent/idl/Makefile.in create mode 100755 data/templates/PythonComponent/idl/PYCMP_Gen.idl create mode 100755 data/templates/PythonComponent/resources/ExecCircle.png create mode 100755 data/templates/PythonComponent/resources/ExecDelAll.png create mode 100755 data/templates/PythonComponent/resources/ExecPYCMP.png create mode 100755 data/templates/PythonComponent/resources/ExecPolyline.png create mode 100755 data/templates/PythonComponent/resources/Makefile.am create mode 100755 data/templates/PythonComponent/resources/Makefile.in create mode 100755 data/templates/PythonComponent/resources/PYCMP.png create mode 100755 data/templates/PythonComponent/resources/PYCMPCatalog.xml.in create mode 100755 data/templates/PythonComponent/resources/PYCMP_small.png create mode 100755 data/templates/PythonComponent/resources/SalomeApp.xml create mode 100755 data/templates/PythonComponent/resources/handshake.png create mode 100755 data/templates/PythonComponent/resources/stop.png create mode 100755 data/templates/PythonComponent/src/Controller/Controller.py create mode 100755 data/templates/PythonComponent/src/Controller/Makefile.am create mode 100755 data/templates/PythonComponent/src/Dialog/CreateCircleDialog.py create mode 100755 data/templates/PythonComponent/src/Dialog/CreatePolylineDialog.py create mode 100755 data/templates/PythonComponent/src/Dialog/Dialog.py create mode 100755 data/templates/PythonComponent/src/Dialog/DialogEdit.py create mode 100755 data/templates/PythonComponent/src/Dialog/EditCenterDialog.py create mode 100755 data/templates/PythonComponent/src/Dialog/EditPointDialog.py create mode 100755 data/templates/PythonComponent/src/Dialog/EditRadiusDialog.py create mode 100755 data/templates/PythonComponent/src/Dialog/Makefile.am create mode 100755 data/templates/PythonComponent/src/Dialog/RenameDialog.py create mode 100755 data/templates/PythonComponent/src/Makefile.am create mode 100755 data/templates/PythonComponent/src/Makefile.in create mode 100755 data/templates/PythonComponent/src/Model/Circle.py create mode 100755 data/templates/PythonComponent/src/Model/Makefile.am create mode 100755 data/templates/PythonComponent/src/Model/Model.py create mode 100755 data/templates/PythonComponent/src/Model/Polyline.py create mode 100755 data/templates/PythonComponent/src/PYCMP/Makefile.am create mode 100755 data/templates/PythonComponent/src/PYCMP/Makefile.in create mode 100755 data/templates/PythonComponent/src/PYCMP/PYCMP.py create mode 100755 data/templates/PythonComponent/src/PYCMP/PYCMP_utils.py create mode 100755 data/templates/PythonComponent/src/PYCMPGUI/Makefile.am create mode 100755 data/templates/PythonComponent/src/PYCMPGUI/Makefile.in create mode 100755 data/templates/PythonComponent/src/PYCMPGUI/PYCMPDesktop.py create mode 100755 data/templates/PythonComponent/src/PYCMPGUI/PYCMPGUI.py create mode 100755 data/templates/PythonComponent/src/PYCMPGUI/PYCMP_icons.ts create mode 100755 data/templates/PythonComponent/src/PYCMPGUI/PYCMP_msg_en.ts create mode 100755 data/templates/PythonComponent/src/PYCMPGUI/PYCMP_msg_fr.ts create mode 100755 data/templates/PythonComponent/src/Tools/Desktop.py create mode 100755 data/templates/PythonComponent/src/Tools/Makefile.am create mode 100755 data/templates/PythonComponent/src/Tools/StandalonePYCMPGUI.py create mode 100755 data/templates/PythonComponent/src/View/CircleGraphicsScene.py create mode 100755 data/templates/PythonComponent/src/View/CircleTreeWidgetItem.py create mode 100755 data/templates/PythonComponent/src/View/GraphicsRectItem.py create mode 100755 data/templates/PythonComponent/src/View/GraphicsScene.py create mode 100755 data/templates/PythonComponent/src/View/GraphicsView.py create mode 100755 data/templates/PythonComponent/src/View/Makefile.am create mode 100755 data/templates/PythonComponent/src/View/Menu.py create mode 100755 data/templates/PythonComponent/src/View/PolyGraphicsScene.py create mode 100755 data/templates/PythonComponent/src/View/PolyTreeWidgetItem.py create mode 100755 data/templates/PythonComponent/src/View/TreeWidget.py create mode 100755 data/templates/PythonComponent/src/View/TreeWidgetItem.py create mode 100755 data/templates/PythonComponent/src/View/View.py create mode 100644 data/templates/PythonComponent/template.info diff --git a/commands/generate.py b/commands/generate.py index 1793410..6e162d2 100644 --- a/commands/generate.py +++ b/commands/generate.py @@ -169,10 +169,11 @@ def generate_component(config, compo, product_info, context, header, logger): # copy specified logo in generated component install directory # rem : logo is not copied in source dir because this would require # to modify the generated makefile - if "logo" in product_info: + logo_path = src.product.product_has_logo(product_info) + if logo_path: destlogo = os.path.join(pp.install_dir, "share", "salome", "resources", compo.lower(), compo + ".png") - src.Path(product_info.logo).copyfile(destlogo) + src.Path(logo_path).copyfile(destlogo) return result diff --git a/commands/template.py b/commands/template.py new file mode 100644 index 0000000..c7cfb32 --- /dev/null +++ b/commands/template.py @@ -0,0 +1,538 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- +# Copyright (C) 2010-2013 CEA/DEN +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import os +import string +import shutil +import subprocess +import fnmatch +import re + +import src + +# Compatibility python 2/3 for input function +# input stays input for python 3 and input = raw_input for python 2 +try: + input = raw_input +except NameError: + pass + +parser = src.options.Options() +parser.add_option('n', 'name', 'string', 'name', + _("""REQUIRED the name of the module to create. +\tThe name must be a single word in upper case with only alphanumeric characters. +\tWhen generating a c++ component the module's """ +"""name must be suffixed with 'CPP'.""")) +parser.add_option('t', 'template', 'string', 'template', + _('REQUIRED the template to use.')) +parser.add_option('', 'target', 'string', 'target', + _('REQUIRED where to create the module.')) +parser.add_option('', 'param', 'string', 'param', + _('''dictionary to generate the configuration for salomeTools. +\tFormat is: --param param1=value1,param2=value2... without spaces +\tNote that when using this option you must supply all the ''' +'''values otherwise an error will be raised.''')) +parser.add_option('', 'info', 'boolean', 'info', + _('Get information on the template.'), False) + +class TParam: + def __init__(self, param_def, compo_name, dico=None): + self.default = "" + self.prompt = "" + self.check_method = None + + if isinstance(param_def, str): + self.name = param_def + elif isinstance(param_def, tuple): + self.name = param_def[0] + if len(param_def) > 1: + if dico is not None: self.default = param_def[1] % dico + else: self.default = param_def[1] + if len(param_def) > 2: self.prompt = param_def[2] + if len(param_def) > 3: self.check_method = param_def[3] + else: + raise src.SatException(_("ERROR in template parameter definition")) + + self.raw_prompt = self.prompt + if len(self.prompt) == 0: + self.prompt = _("value for '%s'") % self.name + self.prompt += "? " + if len(self.default) > 0: + self.prompt += "[%s] " % self.default + + def check_value(self, val): + if self.check_method is None: + return len(val) > 0 + return len(val) > 0 and self.check_method(val) + +def get_dico_param(dico, key, default): + if dico.has_key(key): + return dico[key] + return default + +class TemplateSettings: + def __init__(self, compo_name, settings_file, target): + self.compo_name = compo_name + self.dico = None + self.target = target + + # read the settings + gdic, ldic = {}, {} + execfile(settings_file, gdic, ldic) + + # check required parameters in template.info + missing = [] + for pp in ["file_subst", "parameters"]: + if not ldic.has_key(pp): missing.append("'%s'" % pp) + if len(missing) > 0: + raise src.SatException(_( + "Bad format in settings file! %s not defined.") % ", ".join( + missing)) + + self.file_subst = ldic["file_subst"] + self.parameters = ldic['parameters'] + self.info = get_dico_param(ldic, "info", "").strip() + self.pyconf = get_dico_param(ldic, "pyconf", "") + self.post_command = get_dico_param(ldic, "post_command", "") + + # get the delimiter for the template + self.delimiter_char = get_dico_param(ldic, "delimiter", ":sat:") + + # get the ignore filter + self.ignore_filters = map(lambda l: l.strip(), + ldic["ignore_filters"].split(',')) + + def has_pyconf(self): + return len(self.pyconf) > 0 + + def get_pyconf_parameters(self): + if len(self.pyconf) == 0: + return [] + return re.findall("%\((?P\S[^\)]*)", self.pyconf) + + ## + # Check if the file needs to be parsed. + def check_file_for_substitution(self, file_): + for filter_ in self.ignore_filters: + if fnmatch.fnmatchcase(file_, filter_): + return False + return True + + def check_user_values(self, values): + if values is None: + return + + # create a list of all parameters (pyconf + list)) + pnames = self.get_pyconf_parameters() + for p in self.parameters: + tp = TParam(p, self.compo_name) + pnames.append(tp.name) + + # reduce the list + pnames = list(set(pnames)) # remove duplicates + + known_values = ["name", "Name", "NAME", "target", self.file_subst] + known_values.extend(values.keys()) + missing = [] + for p in pnames: + if p not in known_values: + missing.append(p) + + if len(missing) > 0: + raise src.SatException(_( + "Missing parameters: %s") % ", ".join(missing)) + + def get_parameters(self, conf_values=None): + if self.dico is not None: + return self.dico + + self.check_user_values(conf_values) + + # create dictionary with default values + dico = {} + dico["name"] = self.compo_name.lower() + dico["Name"] = self.compo_name.capitalize() + dico["NAME"] = self.compo_name + dico["target"] = self.target + dico[self.file_subst] = self.compo_name + # add user values if any + if conf_values is not None: + for p in conf_values.keys(): + dico[p] = conf_values[p] + + # ask user for values + for p in self.parameters: + tp = TParam(p, self.compo_name, dico) + if dico.has_key(tp.name): + continue + + val = "" + while not tp.check_value(val): + val = raw_input(tp.prompt) + if len(val) == 0 and len(tp.default) > 0: + val = tp.default + dico[tp.name] = val + + # ask for missing value for pyconf + pyconfparam = self.get_pyconf_parameters() + for p in filter(lambda l: not dico.has_key(l), pyconfparam): + rep = "" + while len(rep) == 0: + rep = raw_input("%s? " % p) + dico[p] = rep + + self.dico = dico + return self.dico + +def search_template(config, template): + # search template + template_src_dir = "" + if os.path.isabs(template): + if os.path.exists(template): + template_src_dir = template + else: + # look in template directory + for td in [os.path.join(config.VARS.datadir, "templates")]: + zz = os.path.join(td, template) + if os.path.exists(zz): + template_src_dir = zz + break + + if len(template_src_dir) == 0: + raise src.SatException(_("Template not found: %s") % template) + + return template_src_dir +## +# Prepares a module from a template. +def prepare_from_template(config, + name, + template, + target_dir, + conf_values, + logger): + template_src_dir = search_template(config, template) + res = 0 + + # copy the template + if os.path.isfile(template_src_dir): + logger.write(" " + _( + "Extract template %s\n") % src.printcolors.printcInfo( + template), 4) + src.system.archive_extract(template_src_dir, target_dir) + else: + logger.write(" " + _( + "Copy template %s\n") % src.printcolors.printcInfo( + template), 4) + shutil.copytree(template_src_dir, target_dir) + logger.write("\n", 5) + + compo_name = name + if name.endswith("CPP"): + compo_name = name[:-3] + + # read settings + settings_file = os.path.join(target_dir, "template.info") + if not os.path.exists(settings_file): + raise src.SatException(_("Settings file not found")) + tsettings = TemplateSettings(compo_name, settings_file, target_dir) + + # first rename the files + logger.write(" " + src.printcolors.printcLabel(_("Rename files\n")), 4) + for root, dirs, files in os.walk(target_dir): + for fic in files: + ff = fic.replace(tsettings.file_subst, compo_name) + if ff != fic: + if os.path.exists(os.path.join(root, ff)): + raise src.SatException(_( + "Destination file already exists: %s") % os.path.join( + root, ff)) + logger.write(" %s -> %s\n" % (fic, ff), 5) + os.rename(os.path.join(root, fic), os.path.join(root, ff)) + + # rename the directories + logger.write("\n", 5) + logger.write(" " + src.printcolors.printcLabel(_("Rename directories\n")), + 4) + for root, dirs, files in os.walk(target_dir, topdown=False): + for rep in dirs: + dd = rep.replace(tsettings.file_subst, compo_name) + if dd != rep: + if os.path.exists(os.path.join(root, dd)): + raise src.SatException(_( + "Destination directory " + "already exists: %s") % os.path.join(root, dd)) + logger.write(" %s -> %s\n" % (rep, dd), 5) + os.rename(os.path.join(root, rep), os.path.join(root, dd)) + + # ask for missing parameters + logger.write("\n", 5) + logger.write(" " + src.printcolors.printcLabel( + _("Make substitution in files\n")), 4) + logger.write(" " + _("Delimiter =") + " %s\n" % tsettings.delimiter_char, + 5) + logger.write(" " + _("Ignore Filters =") + " %s\n" % ', '.join( + tsettings.ignore_filters), 5) + dico = tsettings.get_parameters(conf_values) + logger.write("\n", 3) + + # override standard string.Template class to use the desire delimiter + class CompoTemplate(string.Template): + delimiter = tsettings.delimiter_char + + # do substitution + logger.write("\n", 5, True) + pathlen = len(target_dir) + 1 + for root, dirs, files in os.walk(target_dir): + for fic in files: + fpath = os.path.join(root, fic) + if not tsettings.check_file_for_substitution(fpath[pathlen:]): + logger.write(" - %s\n" % fpath[pathlen:], 5) + continue + # read the file + m = file(fpath, 'r').read() + # make the substitution + template = CompoTemplate(m) + d = template.safe_substitute(dico) + # overwrite the file with substituted content + changed = " " + if d != m: + changed = "*" + file(fpath, 'w').write(d) + logger.write(" %s %s\n" % (changed, fpath[pathlen:]), 5) + + if not tsettings.has_pyconf: + logger.write(src.printcolors.printcWarning(_( + "Definition for sat not found in settings file.")) + "\n", 2) + else: + definition = tsettings.pyconf % dico + pyconf_file = os.path.join(target_dir, name + '.pyconf') + f = open(pyconf_file, 'w') + f.write(definition) + f.close + logger.write(_( + "Create configuration file: ") + src.printcolors.printcInfo( + pyconf_file) + "\n", 2) + + if len(tsettings.post_command) > 0: + cmd = tsettings.post_command % dico + logger.write("\n", 5, True) + logger.write(_( + "Run post command: ") + src.printcolors.printcInfo(cmd) + "\n", 3) + + p = subprocess.Popen(cmd, shell=True, cwd=target_dir) + p.wait() + res = p.returncode + + return res + +def get_template_info(config, template_name, logger): + sources = search_template(config, template_name) + src.printcolors.print_value(logger, _("Template"), sources) + + # read settings + tmpdir = os.path.join(config.VARS.tmp_root, "tmp_template") + settings_file = os.path.join(tmpdir, "template.info") + if os.path.exists(tmpdir): + shutil.rmtree(tmpdir) + if os.path.isdir(sources): + shutil.copytree(sources, tmpdir) + else: + src.system.archive_extract(sources, tmpdir) + settings_file = os.path.join(tmpdir, "template.info") + + if not os.path.exists(settings_file): + raise src.SatException(_("Settings file not found")) + tsettings = TemplateSettings("NAME", settings_file, "target") + + logger.write("\n", 3) + if len(tsettings.info) == 0: + logger.write(src.printcolors.printcWarning(_( + "No information for this template.")), 3) + else: + logger.write(tsettings.info, 3) + + logger.write("\n", 3) + logger.write("= Configuration", 3) + src.printcolors.print_value(logger, + "file substitution key", + tsettings.file_subst) + src.printcolors.print_value(logger, + "subsitution key", + tsettings.delimiter_char) + if len(tsettings.ignore_filters) > 0: + src.printcolors.print_value(logger, + "Ignore Filter", + ', '.join(tsettings.ignore_filters)) + + logger.write("\n", 3) + logger.write("= Parameters", 3) + pnames = [] + for pp in tsettings.parameters: + tt = TParam(pp, "NAME") + pnames.append(tt.name) + src.printcolors.print_value(logger, "Name", tt.name) + src.printcolors.print_value(logger, "Prompt", tt.raw_prompt) + src.printcolors.print_value(logger, "Default value", tt.default) + logger.write("\n", 3) + + retcode = 0 + logger.write("= Verification\n", 3) + if tsettings.file_subst not in pnames: + logger.write( + "file substitution key not defined as a " + "parameter: %s" % tsettings.file_subst, 3) + retcode = 1 + + reexp = tsettings.delimiter_char.replace("$", "\$") + "{(?P\S[^}]*)" + pathlen = len(tmpdir) + 1 + for root, __, files in os.walk(tmpdir): + for fic in files: + fpath = os.path.join(root, fic) + if not tsettings.check_file_for_substitution(fpath[pathlen:]): + continue + # read the file + m = file(fpath, 'r').read() + zz = re.findall(reexp, m) + zz = list(set(zz)) # reduce + zz = filter(lambda l: l not in pnames, zz) + if len(zz) > 0: + logger.write("Missing definition in %s: %s" % ( + src.printcolors.printcLabel( + fpath[pathlen:]), ", ".join(zz)), 3) + retcode = 1 + + if retcode == 0: + logger.write(src.printcolors.printc("OK"), 3) + else: + logger.write(src.printcolors.printc("KO"), 3) + + logger.write("\n", 3) + + # clean up tmp file + shutil.rmtree(tmpdir) + + return retcode + +## +# Describes the command +def description(): + return _("""The template command creates the sources for a SALOME """ + """module from a template.""") + +def run(args, runner, logger): + '''method that is called when salomeTools is called with template parameter. + ''' + (options, args) = parser.parse_args(args) + + if options.template is None: + msg = _("Error: the --%s argument is required\n") % "template" + logger.write(src.printcolors.printcError(msg), 1) + logger.write("\n", 1) + return 1 + + if options.target is None and options.info is None: + msg = _("Error: the --%s argument is required\n") % "target" + logger.write(src.printcolors.printcError(msg), 1) + logger.write("\n", 1) + return 1 + + if "APPLICATION" in runner.cfg: + msg = _("Error: this command does not use a product.") + logger.write(src.printcolors.printcError(msg), 1) + logger.write("\n", 1) + return 1 + + if options.info: + return get_template_info(runner.cfg, options.template, logger) + + if options.name is None: + msg = _("Error: the --%s argument is required\n") % "name" + logger.write(src.printcolors.printcError(msg), 1) + logger.write("\n", 1) + return 1 + + if not options.name.replace('_', '').isalnum(): + msg = _("Error: component name must contains only alphanumeric " + "characters and no spaces\n") + logger.write(src.printcolors.printcError(msg), 1) + logger.write("\n", 1) + return 1 + + # Ask user confirmation if a module of the same name already exists + if options.name in runner.cfg.PRODUCTS and not runner.options.batch: + logger.write(src.printcolors.printcWarning( + _("A module named '%s' already exists." % options.name)), 1) + logger.write("\n", 1) + rep = input(_("Are you sure you want to continue? [Yes/No] ")) + if rep.upper() != _("YES"): + return 1 + + if options.target is None: + msg = _("Error: the --%s argument is required\n") % "target" + logger.write(src.printcolors.printcError(msg), 1) + logger.write("\n", 1) + return 1 + + target_dir = os.path.join(options.target, options.name) + if os.path.exists(target_dir): + msg = _("Error: the target already exists: %s") % target_dir + logger.write(src.printcolors.printcError(msg), 1) + logger.write("\n", 1) + return 1 + + if options.template == "Application": + if "_APPLI" not in options.name and not runner.options.batch: + msg = _("An Application module named '..._APPLI' " + "is usually recommended.") + logger.write(src.printcolors.printcWarning(msg), 1) + logger.write("\n", 1) + rep = input(_("Are you sure you want to continue? [Yes/No] ")) + if rep.upper() != _("YES"): + return 1 + + logger.write(_('Create sources from template\n'), 1) + src.printcolors.print_value(logger, 'destination', target_dir, 2) + src.printcolors.print_value(logger, 'name', options.name, 2) + src.printcolors.print_value(logger, 'template', options.template, 2) + logger.write("\n", 3, False) + + conf_values = None + if options.param is not None: + conf_values = {} + for elt in options.param.split(","): + param_def = elt.strip().split('=') + if len(param_def) != 2: + msg = _("Error: bad parameter definition") + logger.write(src.printcolors.printcError(msg), 1) + logger.write("\n", 1) + return 1 + conf_values[param_def[0].strip()] = param_def[1].strip() + + retcode = prepare_from_template(runner.cfg, options.name, options.template, + target_dir, conf_values, logger) + + if retcode == 0: + logger.write(_( + "The sources were created in %s") % src.printcolors.printcInfo( + target_dir), 3) + logger.write(src.printcolors.printcWarning(_("\nDo not forget to put " + "them in your version control system.")), 3) + + logger.write("\n", 3) + + return retcode diff --git a/data/templates/Application/README b/data/templates/Application/README new file mode 100755 index 0000000..aae54cf --- /dev/null +++ b/data/templates/Application/README @@ -0,0 +1,3 @@ +This template can be used to create an application based on SALOME. + +See how to use it in the documentation of salomeTools. diff --git a/data/templates/Application/config/README b/data/templates/Application/config/README new file mode 100755 index 0000000..8316c9f --- /dev/null +++ b/data/templates/Application/config/README @@ -0,0 +1,3 @@ +This directory contains configuration scripts for the application. +These scripts can be used by salomeTools to compile or set the environment for modules or prerequisites. +See the documentation of salomeTools for more information. diff --git a/data/templates/Application/config/compile.py b/data/templates/Application/config/compile.py new file mode 100755 index 0000000..245df7b --- /dev/null +++ b/data/templates/Application/config/compile.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# This script is used to build the application module. +# First, it copies the content of the sources directory to the install directory. +# Then it runs 'lrelease' to build the resources. + +import subprocess + +import src + +def compil(config, builder, logger): + builder.prepare() + if not builder.source_dir.smartcopy(builder.install_dir): + raise src.SatException(_("Error when copying %s sources to install dir") % builder.product_info.name) + + # test lrelease #.pyconf needs in ..._APPLI pre_depend : ['qt'] + command = "which lrelease" + res = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,env=builder.build_environ.environ.environ).communicate() + if res[1] != "": #an error occured + logger.write("ERROR: %s" % res[1]) + builder.log(res[1]+"\n") + return 1 + + # run lrelease + command = "lrelease *.ts" + res = subprocess.call(command, + shell=True, + cwd=str(builder.install_dir + "resources"), + env=builder.build_environ.environ.environ, + stdout=logger.logTxtFile, + stderr=subprocess.STDOUT) + if res != 0: + res = 1 + + return res diff --git a/data/templates/Application/config/splash_generator/README_create_splash.txt b/data/templates/Application/config/splash_generator/README_create_splash.txt new file mode 100644 index 0000000..253ddf1 --- /dev/null +++ b/data/templates/Application/config/splash_generator/README_create_splash.txt @@ -0,0 +1,3 @@ +#try standalone linux +#another text or color +./splash2.py "." "My application" "v0.0.1" "Powered by SALOME" diff --git a/data/templates/Application/config/splash_generator/Salome6_splash_fond.png b/data/templates/Application/config/splash_generator/Salome6_splash_fond.png new file mode 100755 index 0000000000000000000000000000000000000000..66627c859296bafc064c4921b6ca44e91cb2c53e GIT binary patch literal 500690 zcmV)NK)1h%P)M00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*h- z3mPBWj8xPB03ZNKL_t(|+C;iZ&#qaTUbS}j^l$&Qr;YAJRFhfdvJprim@o$+c?@`H zkSzWHB7YXY0qiPQxm=NvnGtdNuYcR8-7SMt62m>ZweLN-_F9+tzyIMsr62EanM}z% zE?AhFd=p9C!29<*ma{~*IOEty`r*LR7M%YVD^ja@_v;;_J5iJkSIZ@b(~(ZXm8lrV z5mAq%uHk7MDdveZ|K=rSEIA%pw%rjIp(&RnJ5erSRcqe< z$#Hi$@bzD=*-+B%PK0HKO$9o(R8vkD1|GWu&&xStY3QEEhO*gm!7%QMQ_aMq7Z zx#y!FsQH%7qUZNN|A~54@#^Ipo_>DIbiXHi_L5L1mR?cV1MjV6@>je#vz**O-YG;~ za~J~0<7dtaNm^V{peVAA+xuGx7rcIcK~K-8KmCGOtXQr$6er7*|HOH9&bC*y{>Um{ zBK?T39qvgoohH^V1n32$RWxJZcK^h%N}PF3l`ZjkpgUUBq9?Zvey_2`h@m7?BS{_@ zV@669(MA+G+2Vk;igXz9ae-OG*+TRApwOpN@F<;JkxVO0ONGt_S zT{G?{?C}n>+OT+ejovx>wkL?dDN7XNi1G<@^@_Rj>^{BY<88}}7vFR7UBlaV@9~F@ zwOlZj4XjU`O@icCyzgMLJ6_BJV$z&+fvGx7U9pJ;?{-@b?TO!>y(E+?K0SU$$BxxH zV`R?mG@^I#^38}06LeZJ!U<9puUv{Z{F&o?>s*%|wXPu$<{ zF!G#>*Md6b>_b6pEgwGqp7X0qe)HlxetP#K`vA{3-;&}dPJ2f=yQY&n{L_h|T(YhW z?+y<{UGT&6*9iH@-~ESos3*;L|IODFi;Q3X_E);wBhP+#Lw!Ey{m=iI$GaPrmtXV4 zt3TtH_y3unf4Sp_H*c7qC!TJ%h(ls^zQ8Rm8T$vSVb37WIiDA_qGNh{$CwLZvtk}g zWCow7djyhi)dfOn_V$rGXL*$=n%N5;>x{*?W86RRe(MP`a;?|YHMm^h;*4nb#Qr1E zED^;S&(G$xyU+ab=g(ZM&v^C2H{9;;h>u4u7aO+1b7&`Y8d#TecHM~UEEm@=*u1Ri z?w9!J;WaH|!3d=Yyd&PcXMIsqoWJJ7=MVIcTi$&0S1jtBx5u}z70g!+Q;cMB zWYUqMJ!5Ph5iU`Ng0Rd9(?sJ0W0W8xNQd$T=!7s45k1jrf-;n9B$~cf(*l}_r*;z@E<)|UhdP^)cjn8myz$U?BKF24|aX7Fna*`}Lq=|*8NvT7+ zioyh3OdJEuYDHx=Hh4NI(YYtr0>%ty10stwnZyQ9=rne%D3eEyo+u1)-cUtPzxAZd zA}d8T!qFr$B1RSXlZQ$o0ckC^C{URtP7!%jj7FlRMM?>PMB{Qn*0y*ra8*uWa%?-H zl0z4ofM!$^Ax7j@GcP5_O(K2jDN_x(;}k}UtUy%-af-ORfnYpwWhi|{7X#6alsaI& zM4JLJ!jM@?o1^oIX#|_+$$1Ybn*2vI`_o@5)m?kS|f#gQmANrJE%F9Nmn^b(TQOf z8}YgZb;NndyuwL|EG1L0h*2UGcrDQ$jDuD~hCpEvnWncr$yI0~x`D9|a`@j3$7$HAppRmf>z|M?R=iTdmBSSroq&94k5^40ejRQC;kzkSC%OT0R} zU{n)*yJb->(Nb^a=D=~bi+87gJW zgGCmGNsM3&g&gsAgB(gS@qjNQ(KX~klcd6#mSGAMWaP7e4w6GsWTHmd8d>fUi;v9p z8eN^UySM1RN6dR-%-LMeaYxJX*L&*unl#&B!xK$9avU;TbIxU{(ZwUXL!h2rkZlz7 zCyLzCxe}>8#atpE9E6g^n+taBBlo|2RmaC!ALhkZ{lk(o#g z`z_imG5Lbsc8^+&T&-pl%_aI|*tr`f*->~)GOy80#AwM2i`_P8X;^GJx+jIzFsl=0 zUf_lXdp9x^1LbDPXe-qIp0PCKGl{+*I827c^JgeIaC-NiV!7nv*#$miJbr$n8&Aw< zb1t5rlb)XV@cx$K@{-Hzm$bKcbcYkwWsRsUehaE7Y33!5kMBr>gRm>-EWz;kL>zeW}8Sk)ZB$7RvZ}jJCY2nHw|a?l6}{5Jbb3{1@`=kYP6*8#8VtW zm#ixTvw^;c@t{~O3f8k7`;U&XykaqrJpFRZHVRgYGjf}8EVfub;-|oi^EI<|!{Kz# zhno>0a$dgN;ABfTc&ee~PupKu&z|v@tLOaq_@0|#&u^~Q_%P?=r$^3STjr|^PH#Qi z;}&faD9d{J70;I?A3pv)4|j%dpZ!2ImVf{5_iTyE(x z#Y1;sI2!)uhYfAm^Z9L$FtE8=(u$1JyE|sf46d$dhDYxAN1|5Ls})6MNZK=O6Q|JypdXK%z1UE!Uvk{;iG!oQ&gsXN+x?!)`I75qPS80I zpLPiEaFt{}Ur@`$UGEr1%RCo2E9jl%yjqaz$ndnqA3a6UkS(E4Pl(P?&*rRS!#?xa za3b@X#whIQ3Dz?PK~?6g=4WhAksx=Jp{0)+X$+++~bFd^4Xdy%kW*t z-Q9^Y%Q=6&3bgfz}l=)R|4Pm#ONrJqHj+OSx&LMV$I0dZaMZ5U7u5=Kp3`oQ4zBxxwfRiBfA1q z^tf3=Ow*#gR%IqOP$05v>c#LU5WoM9MH)(M_7{loRJIxz2D=A*@2Ggj9*p zO^{Wj6c8q20ihGb4BH1%vZP?pLL);Y5iq^L&ugq1kljS)6l2r~6+nY71AUZ;R*J~xcxmQ0t3EJODL7DdQ%T$;#|W}Xs5iu7r~%Ni3b zqZ}dR6jtKY2;Sq8M$1Sh!6`@<@Dj8IG%k%~(twr7C=htGa_qgK3^__}ImrfT6=j?_ z%85qiC=-~xAUY4ZLrR6{GFlVSc_2F^ycS6FWoAjjDS^h~V<3bKoq1dWDKcUo$!dwU z2`MBR#}E`sDRh!V89@pFv;;K?h>@TK$-}54!YT6161=BR1x1}>rj8IZdfx4@W1@-yqdAl71=xhBcI>yh?(K)>#ty%`1z0TDHkPwdH#$8k$-%D zL%9{KzFyKsO?|NFdCvAQ;o8VzHqrYGpK?q(aaIOmJLl)A=R7aC6p5QLv6xFPztY_Q zI`DYs(6f?NmB_Qm(B~9&hal(uhdqny3tnt8P9L{C7LLW`CFMBb(}7?M+9=4gzk?EG zq0dp7qES886||isuM>fhbZpt2t%-7jx;@gWMBijoU1T#$OxpvGTCm9HWWFTkPYltK z>;;=yj^Ys+6>6TdpAzA=Xa1sM^I}Oi6xdS$@yPw&a?#W*%MDr$3_f9Xq*OT~i`Wnt zIzzRV5G`#q7+oMwo<2G1=Nq(Z8FwANSW?vvG47be98!U!C!-^JNnT$v-;_LTpSZt2 zuwKkqo;OTSN4nNguPd7B8SONX+a8s9To~Y(v!2ZmCgX5=qzr=A&)CHsU%xyjOt5?W zOyf0+mv8WTAl~gbT7@hk{XS9ETi$He+_g2gZp(T;P>Ty5rxA4+SuG2slH8pFYI~qq z2vVN&^huCo$u|yBG<5A6?L6M^7@89cwWMUmw!Pv0*C+DDhVNgzB;+j*zjoaHGSVyy zp1)|YJYk25sT16N{+X-Iw|x8UEBxQ{v!{h*WWQdCB(vBR8LJdG+--eE;na{PCAh zbe}%))pxI$ozEHCJGw*9Jlinj8crvSw1m2#Nfnb1SWc);pf1iZVnLlUZrv??KXIO& zvur$1L(BbeAfC$aKl((T#2tFhub)$&UvYc$k@0jS zZq{6DO5;Fyv{7(=ciGOGwapp-*W5Zy@h z8NSgNVNtEX>4d5ZkP~hn@I^$HB}JMTqlZx7q#$De(cn!_Y8@37eU=Cz(s+rF2hask zSPHL*Wx@}VH1()L0SQ7zk{;hXa*>ls2t&=e{|&|xv8n4@B#k|RzTIvFriq|gPUmQ=oHbP5_sF3?OK?IdG9 z63ddQFHvqHNsv0B6r{-$WPz8OOhoLLD`AFzCR#y~q@)5IIY9-YpNOf3vc*xb=mLGw z64L@B0%PnbWkDtbtyg4yP81nlJMb0}3v>Y?LOhJv28w7%F_BEfS%EYt&o8#30x-7DPpZAa~@N|qz%zp z%9!De!${~ygNcDO7s%-g*_$MY>PrqHNnErj?~!@U$V53Ql%5!sCXEo4{6fz{KPw|Lgzxcm61N{oN&XZuse+e#X^_v*&-t+*n}fn(>BsR?Aff>crinz8?t#uH?Huzmg-U= zg5`-EoKOJL=^UtvyoZ1Q$3y4penPdA7k$ z54b~*zE}~5NE&j^%P+yn>1V7~Imth9_p7C>8}!AJ*xj&938`zw7*VqU#vSFU=K8lU zd2mM#zkkd1xuJRS9mAj*PxmBeSs0DY6Ly*t`YmJfeEs?r%WB54+jIM;4;emaI-({APiidOm+{QFf%97i3b9 zykaN?LMFu1p4djpZ(d;v$A@3;DT82kF+*2|bU4uN@0ez5o zml#}+JvwHM#LQ}x%Q=mAoQ8n9Sn)hAIl4OzZh(Htx>T6i#Qv$HrDRsk5mU?UsVCD7 zFV+Q}AL-f-I|>S0lC5)&pDnld_cSjGo^95IX(0BBzKisyBNx}N__nI}<&QscYbXBd zxBmj)Id<>gvi#}{Unts-7L{^Fabh;ptXD5lLUZ@|_dHICAJ%_Ov4s2XpMVu_UcEr~ znxFptd!8O{x%jJZXzB)iW3lC&m_-&z5(~#4jsuyW@$!5_<283TdqU%=zq!Qhdrlu7 z@avMr;+&L5LP#v6CX7A#qNG_axSK|t9jQ};E;l6iiGxcNR*^Rw%sSCNJiyJCv+usA zJg<3rcSN`on`eP?obk);5ou0bK7WamhW&m|?mRXM7Bk7JDB116aim!lM3ES_drCJ$ zzdA?hf&SK#r3|^$?AtBc2I|X-v+@Pgam%Nl|3JB#bMfjc>~6p| zPLksCj6wvChaG8>RO>4+J^B>zULxj!LboKBw|q1y2jN5wufvI_!*cWiTOb7N)F>lmgk7%kXB%uz?cM!F~by!6hI40 zn@U8XsIA94ORpkjnxPxT=(mW;;6#R!kwPeXt&O5hsN%GYBJ-k026~4DBK0phoc71Vx72 z1|}k5k&#UiO~QvrQV~BW@>wDqVI*RUi1(42k|e13^f#Ac#ufkf?kjxr7xFDLrXW z$Wo!@iC!)!yM(QJWXwPs5F>TS*ozUVN@PfcA|gUhrW8sSoJNbuBAHR>s2Nqj`v5|d z#ey-j2rJ1#z~&Mu1*L}p5E^1ikY!&8Q4sj3$aBvSJtle-267Oif;gdMB=AK6BLzYv z%+PaaDq_^EWzRGzY!o0pel%2>$Im0uO5_Pf1+kKdQBaHm??Kc75d;bMMUQGpRFOCe zl9ot4qNe~^4#B~ou<^?=j){~?L@|-t0-+ozfeetu7m}s^&Ab{Ok=u%b=L7TCg?I|S0z}<{`81h)hx>;=6=u7 zjvQwjLd>`niXq;y4;ia;!P#Pg7d!g?fj-q_i*x$zkva*M->lKoz<6}D0fyL7=7!6Q z3vyZU`Lw5W5u+qJ888jeI=priI#G;@ip1nS$p?z(HH~pRz3mxo;{0mEJcqkZVbq37 zADP+#oit{Bj==J?Z3!;nh34w2L`(zs+dD-4jO*2$hpwZDj(HVnPXnW`*;F+;mvqA| zgO$wW8NP6g?Ve`6Ankijy=C*_4YMZj{@veUry19m-_rUPVQ*;ig2*#=!wKW>xHy}0 z>~ow=!e;aW^ny!+I`x7+Z=eN9zQ3LlA=L^q$}X7t3p2yj=0& z;Vtif`oLej`E$&L;N2fTk?k~_=X2t^q3^a7Dk0}f{O-V*21F@|+la0knu}-TO#J%p zPxz#Hwmhd%jR_^8r)G*B=Vc^sYP?9q(;n?- z%wJy99`1R%d*J$P&bKeV-9R)2vGTG_ZYl!?IaYU(fLYPInzzej!n_reO4v_OxS; zLS27F5q6B-L=XcaWEf>=a>>55Bo`2!K*kAOC_>Q?OTo;IjBUr{E9Mt-roKb<6NPc; ze9b5;O`xdPWHHjpEov&M8qKL6N!B9EIhFPxES(eR z1V#yDnP~f(j3d%{yl9A(qi{K=Bq^l?=a9zH8%a!tVhqfLAf$wtC9JQ}(xIZImm29T zMi$5>(aA(UB~mXamJ%CEga=hRq%{N?5z3K|8CFYNRFs1!DA2kg%M>Z=37tik8RHa) zIwLDIR(fP>A=8MW!pnhdkPJegv?kM!xX8bM3f5SJzmDHg_59Tzz&8|OGfGN$x*w4E=sa|VC)n|MY2rbqQ;H^EdvNpQ4(ZC z3PV&LZw1kRv1c}d2ok9!rJfj)AO!*5exW`h$B{rPTpY=yMj!~lQA6PrZVXJzoYDr8 zgCrW1?6JxstR^K(oRyeSFt!e_C1oWsSSBLQ2g=ewk_^dUri4_EK}X~$i4t-Za5f{x zK$MZpCW7&3oioLNbWrLEn{voTL{v!oCCKFxu%Q08|Lgz!omooW|J{3@tmDnMFF9*6 z{`8N3Ae4dMzIj8JB5yxEg7Yjc8l0LKPbc!_HHCtByrZAjoT8x`;e0c3^02)huqC{C zyR@HR4*d(O%sHPKvSmek+_OJDP+hE86qopR&++8wlf=2ttk2KUe!+kI_#Y69IsfY0 z-*D5O`1B9&sK04wo}Y2}c}t-a!Dxnd%i{bQv)PjO?|)?P4*d4TUlX&)+lSv%5;&W^ zVx2Yobo(Rkc3b}C-@M^+-Ei~MJ+Ak}vlSJdQ+Go#UxV48+MZbJ~vW|Z1 z5vIn;p6L`RRYSH)v^S5~kWrr%1m_98p{a5zSuzznw&O(Va&m2;JQ7G$az-<&@DuF% zJ?Z@o^RF8&FMr_X$?|l3;%a?`92|eze&T#q^89Sg5Fe8IElXSh?OkB*1&M3ofve8t6i&e%=d-)zZJL7mM=MIvuXT(HD$WC|WJ zn^7yp%1C-Sa@S2Xb;W#nMhGXK-rb>;CV&1FO)=0v_H;I|%mdlgGjNLj^CN!fna!4{ z<&r9sgu@9xSgah8^_*Ii6go0ROW#cts|K44;@Dw*&tmxuvGg47c9^jstuwp~)Kh^~ zEq*spmJL}W>5c*&jtCmG$uXJd)C~lc(-Z}z>#A{+^JK{*C&i&MR9Zl5P;%m=6lQ{ygSHjK37Z6@NET{x6o+!4=`2!J#8M!fz%&UP zAwN#|c|jHv(Px;_GPIE*NVvB?o>#P1xzWavCYOONkzqI7umMNld^5pqE}YEX``1Qi6?q;bKKOF@v5 zFa|`X&_N@7U@8Kh4Aljq4rrtBE}_fFU?s(=rx%)9mc$saazLlVs14FZj8jA_iFrqm zIkI+C$An7)9W6Fj%w&TPEr-c7GYzJI!H-N+K~aDS3YB_BBElxh(sJ+>hY&Gg#3h50 zBT5y>F(<`Y*c^nZs z(g}r%8F@K!h)_C(GC6%5$qh&=@yRnffm5DLDKhmX_&NtB27)$B0^}6Pm0&2qcuA=h zy>e(9NJbMvK*$d7a!l07EC=bCMoVEbybwf@{<+_!5q?A&iOv#PkR&{97|;|LC$Nm9 zIzxDk@E#Eh(#)YI4WlOnMJOc!2iAZ9V_+;2=_J4C*V2Q}F+vff!rFk$G)5`<$)nNe zEMg~#2$oPNbo|n5ODYkh#CwJMpZ?c>`#ahLSrtk1=bRobZTp$c`kJqvZ8&xC>+K!Y zd?!>Fv6_p+Ns5(-fVLy0kDVV=1X(l)vkGu~BwKTjGmP~t&DsHsrcR)g_LSaeG4gf#vxIv?Pru{OAcWN1Bp6k2rfr zP#fkK6{+uWrw5Xmp^W^Z;zVF{fzJoa>T=DMcigmF0iT$Wp&R&oOPcOCz zle3gdNS<8?yk4Ah+`TPL6VSgtGL(k??q0UPV_kq+~W?FJ+APbs0&e&~_oZ`fKQKL<{7{K-QQ#LoNwNIj|v^b zUB@6Q%BJS|dg3m^)1Bk2$XH#@*+t9o!;bTEMx1Tf?_1V+M9n3;cL&TO<8r;kPL45J zqDtgC5x0@kFfuz^(9Ew$s^#h37Ht*t!ea9osxoA5AX>p*<&5?bJqj*gJ|nLyK0N$N zbCApy3pzYccTdd91z&ylTkPUGQYLbazK`skz*ok*b{CeT$NUY+dl_ zV^8Lfl$(;}#dBg3j88j4-$8)vEN8Y@(f5}2##1Z|Md7eW#?DbVC^sAOTyQ!ZaMIIM zYl^ZaOpaqXAuCChH%KcPi7-uAmBR$HDrX!=oOdkN3&tae!#zd_7H7|C)yQ<;Qpy^4 zAqd+6V`tcTM>ZL}P=q{@nH+5s+rd#cP^&X~u_yGFTnciTGZL75j>smmpwK#F5*jxI z8tK5)Bmq)dVo126B9G~d;iv>vjL_#WcMufFh+P?)Hb>`A45Fftfhq<%ZE#CP`Dls3 zl8PLY<@7P3+ap<#;qwOJJG?GYQ%;Z(qdkL9NCeec#$-ogpD1NXD-${hbZs#G0XGE7 zX2B!^);VfZF!~mua&n>YI?#`aMr3&55DB!DI3fx|hQ}KVQIJc42o~=Qo{SJZA{vAS z**gLwC_{(}BO^u&#?g{+m_p$Jl>#a{4l+`j66q6u7;svV<%ZrVvS=xVrBzVH46hAB z43JtyN@JkY^FAGrWULScEV{ zEY=B3F!%z51rI2F{@Cl&-l{Cq&_H(=U5zV=0VOeEf*2ve2r*%Vlrvrt%%A|ND4W%lS(WDAyyo0< z&OT@R$A(*$!LE)s5K@Ffv9$ib-)DjFxFnGV)Sz)@1P3-c4rNL3f`yKVV2L)7q9)-n zK@khc-jj1AWQ*w~Rt&U85d)M5h=pR*5}gNP3rPudqhS=Jp=HbhnuHz=A$B-lQ&@-5 zl6I6xmnbYa?U1b^6(CeVQ8SP+!lSZ7V(`Hs5@Zd=CqmMAmC!a*bcU7@Ohk?)A`M89 zQ2+d2|5ra9gy*yGf6lVV{PI^{&~D);pFg80R(yB&3bhMNpVjO}fl-PhGiQ)JN)Ko! zcsm;EdgNtoVT5-{(PhmC#|5?zybB{nOXig!U^r|&dOAae5!ZU`S)?gS{Mv9htf`(Y zY2t$Y!zDok%A+GlBdG;Zc~qa+X36xlVJba$S0xW!&(d1tX-8ti?6zh!6E;O=CJk~N z7>5qKDydPV&XS|X`GMXJoYj!R5qEpRuze{Z?S2 zraCFfZlr&+#Xi44$bxrQ2THf*{GvqU$i8jx2AbqqYPfC(#uPXj1u-u;{j@=`=jMIK zX2_&s&&AOUD^AHf55iG221QSMh!}m$(Qzik$jxO!Yr**o$zdmvqvGkA=44v&_jhY< zF7Nq|K00FZ{qM1Tcf+fzx2#k~#e#M?=fz^lnvwUH52(;nPiLH*ERj>s``^AHwk1aw zPY|MDKioYwbh07z6|>16nJacO6WTS4VS%=aq3p?{MHZT|4M>|gJ6UiadUop$(t+UN z!%x4*Jd}L#?U%T=6^>pOhcV&pMr z)ttM7=Wck-lj)S{{0X~+xA-wo_Gk@>Td#mO<_(Btk7wAtf}122}R z_^{yq>-U8Eo=-k`3O5se{oR*Ti@@pmXE^WKezAku4rLRQ@tn!Yg4^vC*AKT`oPCek z$%1dc{UusTp1*uaYD<3c>RUF$dw%l6A9K8z@ZC3;1Yr7n3L|8nnh7D+}!Z>=s0>YM}?HA@pH@)&lf-c85bW-`1k(hzhrZL$1lG5f~KyRs+w9Pq$$|Tk?}B4FK4V)4Q}1z(=GRF z$0Rq*&L=dp73;%}e0_(ABg5>7qMC4AEa(pJxVzpkoy=ICo)8Wj4#Nh+ip5chQI5?+ zhY*gYX|QF3ivs6%2p0(iCbEQijYx?q^laQ7DQl+FC8LmdcZ=vO#n}uj3^(m#t5YT#p)`^%C z)+cl!P{|=h#m*~~>?!5IZVc3Viqhalz&jL~P=RoUOvD+79yB%wf(;;R>X?YBW7J@Z zDY74lIgl$0y&%g>NSTD9Nf3>ua{`?**^lH=QB5L4nNbHzv@L>?Oh$Q03@uqnj5MT> zkXqqf{}|L(0u88W$g-#32++l2K}vRXgCSOeDvp$W#;JlNz?g_2vx|v1NRmlpBZv;n z5E1H;op7bW1dVX*W2P;Qgeqb>O^Aw7LV?0ck5>-wE!tVqti=aO9xIAG;!QyoBPkga z2B8OJ0_QcR%!nbP^1zr1vW0T+$V%e9MMj09rB@C`fiQ*~6FCQDs;Et-8x&DFjL?KA zNE%GY#GD@USfW4`jzK0=Ctw1`DVz_)tSIV4h>=lBN(H5mc&}(GzU#yG6y0a{dHe8^mTq6dt==F!YJo9w_G)yB`@;q|zm+>(~_wPA3EG z2M&6mP>OjhNP6VpEh!6Zr6`mqc*htEz+g3~LbEoRv~KY#v7A(-!II>L5IjPkGFjG4 z!kVyc>7_-fhEY50Au@@cn@Ui5!P&yFj(0q~-*I;GLz=SX)y-QbMa9$k$M{0BUEk2& zzC|@lj-I`wKkRt_aLJE8ykIgtv_B%v}h~#GLtLt6y~p8jhbVQE5#$bm;n+RQA||qbf_Rozo8Q*^dMB`G;7UxNEOS zQ^S0^By9$g?lH{_6%^}jOE7S3XZW}S-?KRVA@^<1Ve=cBaz<4?$CQTd@S1zK=cqhI z=Q%p<=!-z;YlJ*dEj3y~yUz@V#7s_6N0I0{c*wXY2op%7VLq+Vbl=#FaQxzgut^L%hc*e@)U>h0?mc$WQB`x2x3p#?-F2i?VON&2NchmP8wx6wsV5~a zX=3}HWS~BJO6?`rcN}h#Qkj~x-I9c$ ze6gS%67Bkus#sCZ3l9Ar9SuoF#zRCXsAq;YMrfgnagxkN>Su!*2N)d*5Sr%M)xz%W&hyZVEtZv%qN?9?I(&F+1qW?&;r zEF)%8lU+tG46er%8t)}mWrP5$PNm8F!K z;2{fxSB{iQlt>^QejCu0#RWwwGEydJGub9=CGj2j-XU^E778IHDjCMmG3FjAr<6|N ziUF$(Lcr)GgK`u?Af0C~47t!~87Y#WizDTzaiu~`1bHivG7&08mj`4IIcv}vSrkZ@ zkSK<*pP^N3MxS7$dyH;L~@d-1V$T1KcJl@&Jw~43JD&;BQOE#zx`kSx1Ux`=F7kT z3aOTS{=F5`Lh$o9Yc|&{FBTK}Mw9lAWm=;2h>mNT>4ews4D0m3XD_EL9~!>wH>_jN z_lp{8EU&VGrN&!;1-V=IO7toSdI>dNIMZp2OuU_EvLTeuSM4?A-xEAd8yN z9dmp-P!%YxDh_T1sZoY^qJInSNF;@NV_ z$^0qbzVF!Hf6J^~vV3|JK^WTVDP48&<1| zlOIg*cQxbM^FDsdNp;N2;+%hY{T7km@qG1!PM?!phZ{ERbIa-JOBNH&>-)EGbI0k~ zCoGRo`1$JUvqeK;CFufeddbL4S(?2@8P<@Z?E4lSB6qqlKLk=anmA=#My+Z8cuBq{ejop9m7@P z>C=MdlQSM}1<5;1dSJh8nV+6-caqXh z$&JGe3N>V$%G9Dj7MV6~kYmL{Yjy-s8f`1&FrZRotQ9Jk2-OpNhhjoSLDr5gNt9Jo z!9VU!RTa_i8KQy0P`N}j1))}yL&umk&hj{#IrNyKrcouyJ+LkmGR&xJ&mlWh54AQp z)e~gJL~8chQ-z3$f!icdS+blI_-aXam&nBdr!& zQ3;DLDkei_pLeJraKh8538K-&?g8&LURnwxDLoJsNr0V=C=c5QDch|L&)^H*15%ddNmWa8}E zQ$!jVlOyVptJj`tI^pSR&izAA8}12MjxLr=l4a=b=_-j!4Nb@_7m}1tczu0^$XkB& zgAW*F&2PW{2Jd^Ge(*8M8+P|!Q7<%1UJ%t zEPR5tXC>=V;SMcz znMp!1)eX~y=RRaABZ>D1q$&CMlM@b|;PU#KoC4L^OS*@ExmmM3DcBd8@u5XX$B#c< zK@GqBazk@8<jEa0lI*G(SO@3ctIdStz1>#0t}) zXE~RYq2b%xx7aE(El#N$jjGmMzpJPw36VByBX>biOUit9VUt64=~Jy6(X7WCj!PBLrFC ziTrIJo;A-~;cIr7l`jo!+^fzmIInp#|*m*^`8MwQBgY$Eqe)Jit9yq+&5aK;& zPZkV)LFcy2O-0o_MVZWRzk1K@Zp|P4`#(ZX3}5|bhfJR0#e{0}*zgN^OS^%xsyM!Q z!eO_@^aoBZ&iVDPzF~c{=MVnV-$OaUZ~po{i{lB$MCk@&4{D&Cxl{Y{L4@ zmgSQ|i1Px$=#kNEQHE!)EtKl?)91`WzK)+W7?ZL{^I}qTVDR;BmT>O@w>df zyXDXR@4w*b(+_z5;YYOlE%&dsY;DKI`6&xqux=xw-Xrz_Ck@gjrmA9oGRL`r+u?zQ zXb4U~rKy_yqogHz>Fj-ESM#asWZ*dk@=O2*5mfY{r$}+YdX<$;F z5{pE5*pdfO$0eyY=ywn3szlT^`{40DF|T3Rl#m0>%H!OW5PGtKG75Ap$gOAXMwF?E zwxBW^IYxXsKv7XtHDj;Ien%=4I!CmK__{$wC{t$i5j7_CtR`ylX!^7VOreprq4b(b z_UvpzcuQ(MRn~NkVk{(+e86^^RvE&)q}+EjLb8n@v?k|@m_4X~5eo01b)H%oR*Ra! z8g}a~wa_|c2q$a6Mj)AdtsJcSQ#NY!qd4z4qNUGG~DTzKY(o**od1e^%NQec} zMM93)8VVs0`+;&EX_yd`=f;=#Au?CvqdyfgT1%Am_)w4w$f`$piylToSrbzv35g&x zm5MB26az+DQq)wXV@M!+iKsyuiyAldM&OghC_zY$7!!p^3`$XqJ+d%3DG_~yCgPGr z?<9Gq7-K+7MV65m1xmr7G^+QMHWH13lp#lQiez08)rcJeqN$MkKynf}(*&QW21iaM z;{ zBZ7!hmZ&44H>A*`wIG+4oC{LykS?Jn3hfQ8d>pY0Es1@FUjO?j001BWNklc9AtKmDmIB+ouNCFa0yzq;XIEgzj6;d)2wc7(B_ zFoEXy@uj`_F4D=KCudVucE;E1H+(mAe72l%E+p^!#8^a%&7OorH%pp4VV_^KZzGek zq!fZ|BJHk4)-?q)q;FAr$9_76L!c=QP6k}paTpcTD*B1hFzOMM3fOMSB_n4*zY6COQu#+JW-@kvw!R8CXw@|qC|3e z9U17TP6E@iCPqcF21kqO42l7xB-x&Fy}6?_Ba3HC_BWE>9&Y&f`GiT-{Qa*Um>tjf z=&a(^{g#u}3~3yfHyzXJ7?l%AUelE4h-yx5d%De*vJUvTK&6IxxhIOuy7z2v;e1ii zOd>8Ngw}LzW@1N%{(+b)KKSSZ?&6-?FJF;l$>PJ8I3;oKFL^On=(DGMcl{c+8!nd5 zxjrQNyMTGJq|6JNbc-!E+>0}&2XULNsuaZKtQ?+!NK$K*&;jTc;P-*Z@Bu`HkP(Pz)t$7|mHYC}!I(NTja z-Q$S@ts=NR)ltPsTCsj;d3X4V#mOn>Km3UO?E~#A$EMt1Z037MAM>yq_{G~_^Wn)6 zllp=?|BmyCWY;G8zGQV;vc9|K`uds=Ui_HF^AmpdZ~uY!uYbuO|0n+jTb=NCfBtuz z7Lg}E`k3AO9Ybo7IWx3V>iU40NIDOuEIB@^x!OnM2#b~GH*iJ8rzgKwWNrOS}lpnleNO{CH?+U`L5^3 zoGQhwm)wnejEqc+25lmn0`*ly=DvpmOp%$pMA(;ZD zBJH7PwOBGgwzTUz+UON57D6jn)O+u^1LmnFvcsB%uF4Ph9-YI5lq zb_!D!jLA`}M6iY^W_aJC)sAMiV&*KFmYtEv!7#HU+hi$3Mr%O|4nm~M5g}@p^Gx!R zyKSJ69!nrofwuUvMYIE2Pbf^q@GuZ&4qY3}THShnYp^Oh}ff4&*+QRm~V%gteF; zNk$@5kC7Ff8wm)q(1ZY5WV9TKp(Yd#mn>TMxS_;ki&O(%LE#nTj8lqIg3p$e111}W zq9wJGnJe)IoDK+S(BnWG6+(ix0@HdzA2<}2(j-*WIA@4tEC)y>zJ$D0#8P6kM~oIP zw)DzS$O@YhqZ=7?L6Ze?fWE2;9H_+G?vqgIleH3Sp+?D!O!d%k}A zhH`Su^Vy91cED0#a>qet#voZ)fstpl>K4E2c=G84Ay$0%#SQ)T9pC@M-$kf7-~96L zk&}V5=f6w5?l_EFs$z<21zpu+8;#j}Kobxg`o|2FsXM|tqO;*3GFBU!O4IK<2DxKi z%?ZX(Yy-)4Y@3$4JfX&N^RUCG$nwNeYDkoHreu70heEI_m#AiB7c%Sw^~|8#f`@g$ z%mVXi<`4{H4_c4Zr6YF+nHtK|l5YQ=`YUdngqv zb&O1KHGF}VC8tlHzY(tiog2*e#2xwr@RPstz#yq^fHqN#iW3` zp5T4pdUMNcvS3^nn6T#afBrqL?>GGI|NGZ`^uZ@Q`Q8!t?H$|Rab6xFF!WVIi$vOP z*lll^oSkxda=}ap`rPpP^$q>u4Nsq(P%bNWhc&kk0~aS}99<|j+mYJ`$JyLcEuM1y z=9+PL&)LZdQkQ6HIXXV#&DXE_yPy4>Klss)`S^oR_}MRihOPu3efSxE+ws-SH;_jf zZL!aua-vFh>kapJH^d~EUwp`HGG}-7intEUpFH8-4RE*P{KYB3N4|dbj`^wPpZ(}_ zUR_@DXaCQi@#5pp`8WUKM_hgNhM)iK&uPwQJp1$l6JdSn8OokYLR~Ger9u>v+*NGZ zvfFKVHeb;!kGMJ9BZdPnSI6`@KiWl2!MGNTM8ZrwjyAF*X_)Cf2O%IDMDX;&QKl&u zvyy$6ID~<^j>KFN>x>Z!oju71veHOn84m$bNea`$L7-G7$eNr3l_PB&(ZP~@M94&`Eut)G z@rXl<^Cd|oCd(S{3#>mNbf#1aa#uj3!S;b7N9?$422Mt;vb3#;_ zum?m!kx<6qMM7jpN($SRl+fh-m>ab65s1y> zJu(+aJHyGIats8e5jucN2o0{2NP4oKphLnTP-t@8lPnlr@n}RSxV zm`Xfm@P>pCEk;^gSv=;&Vxn*ZOeW-1;13Q{_6S*{`o}DJb{Y{i5K-BoOeT#5E<~hG z2r5SLsL;m|bOiNZ|BwIuPXjX!hb_Vn)F(6YW?;K^*x8h$WySGqWYZ^p^~H#6G{5)3 z5~nh^@7DCe@Zm&LPv-Qk<2F7ZjY5qjcDA6*N9?*^aNA{`J$XW*S8N}y*mhSGXJ<^s z6wy84RtegQ!$xqn$W&#`yI})DGAmbvzU^JeoNoZqX265E1`-ll6M~$T~7i>2>3b*Iw$%@NO=3&_L^mIYQz`AF)G>l1e zKSW50JnRv=VR3fB?sjC?e#OEVygw!HBeH(r_{^|AG`x8;uqY&_7lr{zc8P5Vler_f z8*bJM&Sp<(%3Hp?-ebg!$;%7ec1L&po{Lq5UQD^XbJQ-gnim|DrW+iSvIec`t}hvu zg4N&w6ME1Sl`RNnRpDal3j#MVHXprwCT{v*`@(3#y{Oa4^VtdUW z{P+iS!vi(>@Qow_JMWIET7DIK7YphHxImCzvt{|&a>v6P#(CV$F4nbQ&4|U z63c7ee|^iRAOC<4o}BPkKl^iT-fj7lKmE@+J3rxn|3CgOkdmh#zQjFf#{E5Zsu>jpUEKV?0$wRw_amK5=Z&~P;AAI~d_Nd`q`- z$8+-Lnps^@t&Vy3a8KhCX(1UOMvA87Y+|^+zvM6qo;`m?4w=?(m{ba*4cq;m6eW!^ z)YBPDk=U;H++`0_&1zZ@yODL;Q3%VTe#S<$Y_G3aP0l%KD)#$^ADe6ykL8K zPpmw0@dWaL@GvrI8sbXeAG*h%z_i3}MwF;g^T6QUBhp+N22s+61Jd_sQxbKFi6hzv z(p(}2$zkV7rDj?fq7R6a@NuN9YJ^hcF%wimSb=r@;}~mFQ0^j?&h#Rogd$~$&4Em0 z-Ac+bg2}kHfF@zA$8?dPr$|{cqys4^ib8@L(KYM}iB<)5+p*3WfufX>>1jdVb#$$w z&kU$OR!!(aPbRXYi6r8-&V4Ibx`h-V^*lNQN}m6kWz0AQc8>B6>88V~ZCK z)hFsw5p7BKJ>HGPqQnY~hzZptI_nX^Qie=4l4w0T3TzLD5=y`aO{yhI4lr7VU{H+2 z(qmnwj1{?(ltqtj1uZ4l8OGKjD$rR_6cH&a`Y|F@B1g}l3yes36)=4bb$DEir+*5x z$4J(KC@e_?3g>WApp>K+Q0fE2AW5o136D$?7c*K&MC=GPk3skUpQra&(k(mB^q%Fm z|84rri58q|i+2kVvtmZnQ`cgeib! zjz8%$f4l$fmeU{^x`RF1Ypw5l-{)}(86$0G8G<5jB4(thhXE}WP6$Md#H=7D4%Jwc z3-n5$lp%?MA!wrQ$yLBU%$&$Vz=ud2jTwATXt&r=MYP$2XgdTp(qgnB@1Rc&O&`cr zgGA8_Nv;IaDptCo@DqwU(2QzAm!g}1u2N#}7!n0xz!1?uX9Zplq)58NkT^}WmedPc zl_L^|c0Eo=ObqzoXk|bsg+}7sfXoJbR?zGmg|PTMB0_;uk=Xa>;2Bgxl%W30|N6iE zSraWol2JrYSog%dVpNp0eM^x>snR%M%Vc{e)@nLRmXltNQq(Ds`7Q3Z9)#ZAQQ%_zr##d$}- zl8j4qYgn~692Wvp9PyzJ>^J8WCl#x{WK~B-qk_pKV*B@8ts;k`Pni`Hmdjgi`g>l? z_h_1qZ{BtsKl?F{PG(s94Q;<>K6=9VAY;3}qL@~U9-Z***YD`>G|&F%43Tx*-3HRS zMRgg|y*;*Ca@}q*e#?oJ^s%J3ilfn-`^_6}7w0^B`6Kp62b{nCTQ*Ikm_Fe+Gu+*7 zX@`!Z6O9Q6ES5La-1A60qMRkv(;e$~J!09?O$Lsu8I$>hcdHG4y(S-5jK_P#wqbMq zmcAG-Xqbkc*Brih=t43WO#< zJ!7}MVQwW>Mb2L>*gL5Blb?P`yH>pY_BA)dj>El-ll{kRn+30K?l_!JnT#rKt}f{M z$kFMHvY3(dJs*b!^~IXDZF&BK?{oI-5x@Q0uX*?36)%4JB}cOv?|%39q?>fGF^$jN{ zIp6!qk6FCFG1WJXd4N1_XoG~z>t@Qz>$QmqIg5T(Eea7Z$5*(C)=CTLq@k_=}QW)Rc{ za$!+X(<8|WLD))Uq0vf_whkvCRAWY1wsxQo3JD}(2h%y3i^z1=;0V@%OG=or|p1(o*5v7!wb!uAweF$@8hbdVJ25HJYbAd$vk zRZSWN{g8kcsMO(9BpDP#?}-^08RC$9I8DXk1}&JApCaGldnA zw6UODbe`a>MzoRyaI*sE4Qy%%1Kws(Dnt?qyMPvskmpF6*_WKz)&?L!Gp zXpevhv2~;!29iP`k4k1)!)g&Y|L90`;L}fL z5O)0P^(~Wf%+te^O$V3);}+cB)l5fo#yZ7_oMqgw-JWxNdc=PIjE@&@xLm*G`4>NB zrpH`eeZ?Y`jKn@7Myh#2ktUpfxZ=LCoQx0I&jROeO>Z@+PD%3$*)Q;$4YHgPtCHY6 z!(u}yBZa9jO~-XmjFS;X*;02c-sOyjlwH>$r6b=@=(`>lN~D$u1{gfsO#~&8rzKUY zs4wnVb%s1m$i^Pcz`A}wzv{4K=wNSuN~aQ*i#yDaGM`C?RMU2jVb!4Wgld{2>>YiW z5z@fThZW;e@%;HQNR8cD?ryF~$Cmy1XAIYYojPZHToJniF1~q9o*BM;dBV19xme!g zx{A?AQ4K4$yD^!cG2h#<4A-oiDQDH37Wo9&mrTVX?Ym`sp)HiUaNzZ+UmQWNhXfRf?dt*uy<$ z@&o?pwf|Lvmy)=9v#oQ z^H-#sg1vH&tJ_!Xs=%|ypAZ(2`}G=~*2F?`GM#XDVfnbe;OxmUhoe3E;eusv=y#5Z z^*sIjl=rKTy#Kok{`iZZaB%j5fBCQelI6`g|K6Yf6DG5gfBFCXoc6Zo2VcG*$~oK3 z8@$oTHlxcOg&xS!=#X$9dL}z45>I(F=H2Rsi@&?)hoAn4@i^nd)$f?>f5JSQa(VGP zZtm8+IQt$&mhfhCfmQ{108>dOqXSmG;C%TzHXj$9J$cC&pB+$p$IbmKOs$wtb8dDD zTRW;rP7^FiY)GpL5k_P{vRAUX=~>-fvG@298R9`w{Nf0y;p&^ODY6MqpFZQ`=8m1~ z`TW@X+wy|BD}R`f|?l=AQa$LEIl> zCP$=8Ph%Z=+>@qLh=F$PiLybcgmz`fi-dI2vs*ZfN->G1Z zF*-P)l!DFc4eh*V_UJM7YD>Jh!c30QM;hM_SgWZDhus9aJd%|IZpd++q%Z@6HuxbB zd?Xnpy-7&oLku7@icUnj+kvqzppeMUV?~3N2A?NXUJz|08jX}tTIlUVgO5-ny}~7t zJ}Sm}ifsm*G_=h_BdkaVqSn}LMv*t59Q8USnWk9NkPU$*X7v4zG)Xup1TLhAzM&hS zNj#&NGTtj#G&`EwF-kMyti%lsv6Y|{GJ4WdfY0f|K*~T&1VLuleodKb7*gsOP+n3X zQGFnoNK_GqfJD({nlxCf9AFnoQiUr8(t@%B3P)5DO^J^dt35+okhy@@1GWHyB(?%2 z9BuK?a5r1<(h(AalmQtH-b+?8pn8Wc2edAs-VxM5M4_D~$vn{sf@-l|5eAEj3a0{D z)Tl&IYm2?N*uhgBX;R?{8--R0X$ey9U`W}>jO75mZ^(m13P^-xqz(7NlMRtH?OEIG zp;>1Kf=uz@f%TLGK@15Z8HmvkT#l3-+2GkpN0?}$O^KliBb_6c63RG>J(lYT!18W#9m{iKnqEXEiD-W zM=Cu|1!PF*qazVuUG|`%N&>VQKJ|E+kh_47!$SeUM7qup3x}yCyF8G2N7MyFFGvT6 z6*~r1qK5&k2c*^@A1=cp8oY!7NFMrwAQkGL{qz6fXI6XM%^Gq^H9y2U!9iF+Hsj-! zWw%@N$=RGzWxQ`Tw4LTKk)(P=-FH~E#14koMat=jv$JPhUwzHH+e@mwGhWP(xm~Wg zxO~sq(-Y3B1Kz%0urn=B=SK|W*u@n|W-%(mw~^i837H^I09jBk8mg*du3_8V)2a+* zCX_LvV@;1iC5kK^u?H!Bzg8AVi#!1fd{54&?=iqP*HskiTr8qj}@#L6w^P0=;nwi+Ank(w= zo+Lfuu&Ow}x}sb4eERug(z0dotz@&w`Tk3ol$yJKpVi_Hli%}f{yDo_xDhRCl%Rdj zAZs#PaX5Lz)%`WA?vAtL6RKp7uRnf6P>%0C`vli&E^j~Zae2?#%^bC8qW4RgF z`Ic;!@V)(0me(DZ+qW3zj3y&Y(IC^5%hwx}A9(%;C#>$)eEr*x{P2%H<+Epx`QQHX zZ;;J~f9KEs6I2R+`^#T2)B`Wij&Y@A-EK*S64^SEQOd!5%5uHp-J46Q1Il zk0R^0*Z9qZFaPX0A9wHh`d6o>2rSn>bLyr+e@C#kNMsw$9(tg2e!jKpB;aS z$Vb$2N$Y#si;h`UarDDa@bwk%zPdnEiqnG`qjJW@`xUqMH_Q)@IoO-fuQm+9QY9I} zO4g#M_JMR`nC~gds${wGw3{_%(xKAFv}=bm4fA53)fFi<5$oD!#os z$KSQQ`1B>|H09#!*LamMJIrZrI;zZ29UifAYvTQq@q9|%TWsT*j!SwQiB6%%4M;_^ zlT3|(n9}AwacxP_R8r9O0-Y%+C2rY4C@4o6BKO$F(ryQYa^zKt)Zp5HB!c!x3YtNJ zjEu7y06%1Or66x2QERly7+g;x9XpYrqC_MPt36q!X}W||dIka$t?70hveKA7(o035 zG7L4_25gd{OHaAkVv{LCKshutGN%b8B@MzvwrNgUM^xw;_GYN2CvR%pG$Y9h<< z8m2==pK3%Zh<(Jm9uW#m6$m7B^}uve;kuqi^dv<=DkQD15k9^19Ghnt1kJD_28~e_Q5tONh^s(w4Js)KT2RJ>F0ptM@U0>k5CN<( zm}p3}BNZO40y5+*8o~Y0<3nIJs<3o;B*ti>ip08MrwxfwR3m13ElxilozYV#6?G6lq3KmZs|wiKeg#(Fq1TK?#gbp>qtWB}-Fm^N?ptGJ!XS z*f>P=*kDoGU}7Xn4XTIUqyF>%=3o3wt~I7ikV>G8qo^#t&G_zhgQ_B*KAO?>J$I{~ zB4o^;YIa@APzS05!}a-!?V$M4C(lv2;r9A1o35i2Bc4Ax;NLx)^1uB0mwfi@IZtON z{PH*7(2FH6k3XYV1|2tKF=27Bp_QKU_z9CVV7K=yts=LM@yR|-+~L+MVm8C4C911& zjldP2c^McStXBnLs+ilF5H{?nNOXZ20-M2Oa>HC|YyvwkD7%1-9l~o8kEio_f z1Gu|uW}m#^a5CoWZ(g%&I!+GvXv6{KAnCey*b0t0=KB0S+Gw7C{t3=*xO{U-lPA0! zm4vY3qRuFFg4P4AlJr)QxDm3q^y(F)2juxN>&-{n%LPesMtUR}SR%q9_=v^(mc^TE4nF&gqrFqsi#IIR_oP+Hql1dB^{k{}Bm=7t3tE$N zeEgW;?|ApFVHh0KN0!GY2W0-3`?publQom$eXa(LH7!Sl=cXQ5wl{n>JtaSQ#C>}~ zs9M6%;BO*6eZuK+1;ZuxE01uFZ05+-98m)07I{~&=py8f{rQNXBCC}oS72pF?=*9h zFo+d(=c$g4IMRmO%Z4tws7k~ebLFD}S<@X6O@ZE=BLza>1W9sIf<1A%%{DOApxw!a>cGokj z4mh10V-#!~2UY)YSno2-NK>zueE9YivzI^MNArwkJZJIxhTbi)L6B5AqdWy)Q6&!u zfb~U9Ggyw#N)BfyEE~&ed5Nx4+}2=H$?1;_@Z>44zWEm0!Hdry z5g4;PUof=iSXVMVoO3cS>3z%f?-p3Q;`tBHI2a%Ei&t+DyDcYAp3w-w{nZB^O%6zt z8Lyf zq3NispqmS11Y80^qB2WqG>uCbjAg1FT~`o;$Cw^$h7T5jW^fVXBSJ=U57tWtnUI7Y zsU1U1@wP^*9AQ0f6kwat=^mvULYz1X?R-4HUk{mYO8wq)pE@a|9zP8$(nLB0l)?lu7U*AVgr;MMCh*HT0t# zziP;XL1zJS%dDHS2$9>+GPr>x@ekILm{DrO#?|yTGENLWMC!p)DUHx2t*>5GFs_Lb`d=e zc>{lRpcSbTSY?P=kMWAZ!7fOqiN_g9+zPS?!w8&*+(F$#GLD$WvNI3O*lgF*k4n5B zNCrztG)ijFoydV#Opd(g0j1$Md{$w+;N!)bs5Sdq6ElhPmbw957UYQ~D2t-RU2fQj$iWwT z%zDM^SGTO4UD` zOP+lCf}j88@3HkgfB0vAN{|Jwzxf5mOHQk&#L~08y&>30Q5lkv#^s8BNZ5Q_0Fu*_ z6RcM3-hH6C*)SWOviHd;wY%rt`)_$X`vH@w=kofTLKTF)6uaw5MhBceIpxjkZ+P?i z6=zSs&;H>Fx6Lbd*K4Zj0ji9+T~9vUrx+Q2^KXC7Dmmgm`t+D5KYGl+`o%AJ^Sd{E z^6Ukt`=79sS8SKJ_?rr{*>A?}Qobd5#N$56=_hx95Bi0K#;VG&E>~cfX zZ>jbQveQF+-7?(XAxlM;?;|%mF59;pjrKVnpYr!Nm&BpwQ8}eeOM34Zxj;ETf^p#8 z`7P89N2h0`la!nHm-J5X=x|D-0+(-Zsj4HySxK_mkcfg%3Wn>3BGX_L!_pJx9$jS& z*PdVpCX<4W0o{3YI>);$eka)#8O3Oz+*leiMp>lI1?#&lx%Z^m2=5<+vqCx$DI^gc zHO;m|B$5h;NetVdXu8PEw=f!k0=sKLK(1h?Mg&=7ghtDZ)<~37BtBq-ppOGG2vYUH zjS_Jn28j=m&RF)!0wV&uWyGWnQhQQcL6+0Vj?@KqL&R+&BJ0?jO(~S2zg?mbtoHWE z`-a?hSW`ffgLg<5iKZt?jg$quVZc~Rk;7m!2sI%!IGvNQBVrILMTHv3ahZX^A(bbF z0iWb}JP}D|!1WF%9a5$b9I~!Q1clLopbSE2oQ@b5sQZY_O3Junxr0JS2nwq`GAN9Y zxEQbuh|VFa94QULw%FbwML?%1qA&rL>yN zM5Jm^gT{!ITQjiOI(iW>Ns3{>50YFI2;~q4M4vJ!5Za=AWa$mYb|hLOw8nXjBoLz@ z{zDE>=>g5dRHpNh%vhXzQ25x9B544j@JK8c=LS@)@M=J%9wjtG)1!MyOfov>2ttxa z7$kH9q~?L$WgCG^93pY3zMz)^n+&9lpe_soLzZ-G*Mc&ObY5WM7B4G&Ovp@wC#4sV zhlea-9}RifF!)GJ47HEsN+QC8jocIP3UJ``1I>Sw2!w>&)<Jmq%1BCYPo%Mp%>;eJJDJ*Ur4i4o47PDzvtq^J)`uLgO`f!g``%bo;s=S% z#*7X+s(8fp%H!Hw2DzaaKOtKlk;+@fs%3HGC=OG8Fq+|I%B#gajq5nd1DR9Qu|n=e zPRhXf{Vj2oa+IH7tBzgkNTg?iVzCJ9+?HyZa5S56y)e{i#~jH)F{joYtJ^D*v8JpF z(p8S6U@NaNndad5jPrLpmbVw2?9HIaDddhkd(8Ru7Uynx{A7=I-SGCeYku;_FPI)5 z@Na+q*Q8;?5C8DbS#AS&*S{heG?hA_I;*(3zG8J=vv+ias#2WmQ6bXa27KQU$C1%t z#&dPdo6C2cU+?(gk6)0Qf!AMOGCw*b%W@XGj&T+U5$cbTuD@aY$TJzusM5y_cExw! z{hm12jPo(FRfueOXpyQZ<4SQKB-{Fy>tDTLeEgJ8_DATwW44Pmbq6ZzDOAeh_Ku-h zbMn2E)9M@A_kAYThiYd4v!4uM^Ab6{tfTnz2UPjzvTG%nD^hj z!(lls_7P>mvgr`@0=o-P&UpN3MLLvx{rmUWVZj%leSzH@^XB#M8Fwj9o}O{hwfOCZ zCx>Hb6u)_Y$I-OpAN}+xAKvfy?(Oe5{r)E$?jN%F-AC@W4f(v_(UTLBKCs*_XhkIH zd#Y@o9?u{*xK5L3Nz?b_We%f~re9GGkQ`>ztAV76Ob@55g~0CuqTD@%jBQRI?lC5V zsss%kg^C?~C*k9J{bcPxRM4l0} zAgu#^D#^6QBnh@{Ft$OO6z6jgJwDSU+Y}XhdJ##q2VpV&6ibg1JwAb9fN=z?Bn%Rh z1hmNs{SF@`Q7A+dXd@9jNf15O4CFos6$y<6sR$-83@u{=f|894xadiP!nc8#c(h6$ zvT1Fk&7@dFt-F$oX@ z&0x6e9WEcpLr$SR)+QKX2zo&+GDa%J3Wtpi(Iup*LirBsJ)r=Brm_KR9M&tGbSNLt z-qRY52^mH-2y5tuKvJX#7Z{8pZ3dKf3{etwiBda4uZbeZ28-zEV~5{ktTh{9n+g3|%(9xwr+oOhrXzxDDP&43d*n7F%Lkmvv9_ahf;R1mLym-p3#e5HsZcr+hX#j08i+2% zrUJTwB1i@i5ix;WqW-SN*0Ql1+HQ^Y6K2OJ_}#$A_rK%i_s{s@-X8z+zxjsU=AP3}j}cNmSkHHk zy6b2JOeZ5`7)UFHbB5LJE!ixiIyk~!wXEHSRA(5W5mC@q61*exij_=BLSSgOsLXLN zo3dMJF3%fu+H?GTLgjikYtK3c_7j8E8N+ggHV$7-h*6Qo9lo)&)*y38#}6ah-P%%b zTh7kr%ns)K{;Q9ie^~JJiy6nWeQtV3U3bWJ$FART@aULFhx^=qTyws-XHul>%Mr`M zVnasR1%g;$gQiGMnC@k4Ztqy#Z#kPEp>1H>ZJ12@T4260Hi2+AehR?^o2nYU~cMX7UUZOyH_rSJARJlSWzTeGn%+Lgpb z!$=5rU5A~P%##Y$uGy?>Vy_t;2=b7z5(N|QS@sJw3B`1ue!C{f8mmT3Wk6>sOP?dV zmdxx(L&C0`Qanl78@7D+;RE97KF9NYl9-eGE!N*5k21JdY!-^_tm3o12@6$o{@o3} z&UpTlmsI53yt>8(MeFAr>{$vqW)M5J^_DW9Qg0mNG*X;QsNY_2DW+@1Iaj=iIH{qI|~qpdzTAtnh?Tu{ghfXpx#!e;3r@3 z)wf^qo3FnjjU@;35#?b;keYC7*$oZT`3$WFu0Pi7Jv!#`al-YxTN)8juE27~{NRBX zb^iWarlV8#rxWh(FX+bw2h%<9g59R$@LYoI)*?x*rpwOkTeMyaCrb9}NvIDznnCQA@)M=2f-oyKd@p~se*BJm7P(>H(; zC>f9@VWcB>&A<=`w17!AW;;lb8`9vBR-nmg(nx|qqgd1d9RpQmh^6ICRoVo){SN)lnP^vF!obt!016c$-$Pzby3 zC`8E6yN-|+L?4l{Aw)$QOT2tQV`L$tr$Md+ZjzFUi0yiiDG7?fcoGT53Y_S%!9nuC z6cbipa18y9SY*t|S>qqpuDwEx8yY{t*a1Ogryr&-X>aJgMVg4vDWVgYK9W=c)ekf_ zWtnMqeNXBvQ44~KsNP_VKn@*U$dFw}t5S*tRFJsN;gq2mB7G+5U4rZ_!bn_V2-;D0 zlA#yWQ6ch3Vm;Odya17dw2IhDl+YV5l{66wprK zH4F|CBe4G;Pj41$*_NGYeY0EbZcZB~PV^D?#=STD%(9(j(stQaxdbvQTL>hmheDzZ zs)ynQ#AAU{ydoi9fC332O7(y-g#d|?B^x{Kv@_jgI-R#~BH~8GIT5Gb{px4O!@lNa zKWy!_#~gFbHRo7k{Nw+7MXNi6(5T)ZQjdrrJB!Q(byR2}NSy=~hz@!yk(olEiD8YF zBf8!qa*M%W1xVFEAMrA0aE{zTK(kId_M$=zl67e*h6FPNLXgBb&?-kvGvr{95p=#m z^?{WeAu~s2J6fTM8N7XSpQq2~#8~4}NgPs)chqH%VFC>3p`$UH%qn7{@I!+OinI(! zm(sfdlPG8fg9vz|F${=c8HCwFGlYV{qyGLs`N!W)X_3R2=kuQ2thjk}fbx>7`886c zBs&w5rpGnFj-=l>hR!iQJY;V?W-~kI+1VM#2e*0WOLzF}y%Roq_JqIvi*NI0`j8uA z!4FPOIovlGnUb(a*HzSgL(mF*PLfD=4-CsqO@A>^9`2#if#JL++cRY8F73RgZC2!E zNii;IS1ru~CX<{_tts?|)*aB;NZ$7Zkrx~v z+@cOOCs)^~qU6reK0~LNov(;Ov2&oITT{CUrAZNOh0HyTiDY&MA0>&X8Ha>A?`W4R z)a00{xxqp_!&P&R4&MNo^Xb`NlTS(>-1-`;>q}m}{D8;z_PBq0m)Fk+tXGUO&1Jo! zhzaGv0o`y(s0CfON1`i?)C@Mq`ZHYKF%=IW-$Cm$>h_!$GsXDu5f6%rDaqEtunOT}f`i)=a(zs_IU%GHzYNU!1#i54 zgujk_^yvk6zp}@}J4gK4kDj9Y8DIV8FVPJhAD?~5p3EtVn*sYNL!@NcsgBS<)%PFDh`QU8HVaR#(=q4eTTt2&`6%AS1;e6zve1t3-E}ktAxk4Yp z)w(73dt~{T&1#M_J@@b3K(!;@d;Tf8Yq)#oo1_!V*~^!#3eDYgL@vN#Sh<1c?>-~l zf52C7WE{Tp7AGH{^7Pqz>_2+Q8xOzC<;%~wSgttOy9tS6(JV2eG2-$XZ521)zR%#U zdG+#|S{2+qm~vd+;^gw2SI<7+`2HIlP4BTdeTr}yM@Rcy;*j;4B2ipit{4})9DnU5 zU6b(o{SU~s;K7@3QMZcI>Ltf2VQ-rA8n=og0idWN`@b5M-ge7@#Yzve67 z_$pbhSbqMJYOd&~5!D3_#$(tYquI(@gl1rH0`JzyG9%3m!g{pUcp+#`PnqnDDE3CI zmXs%@C1;W$>DGJVt~CiIDhkM4mfj($HOLdO5J0Wylz@ z1QH<${Z^tys06X>hy@6d5N%DEq=+sdbPZ~%QE5sSB(mF}bi|4Tl?FzUCUxM;DkaeNuH(%>*$mv zbrzfDh#`O{E zhI~At_G@G+@Ku5EEhZI&ETTh?k|n;?xY33z1cb}!6T3ZVwZmtMq!C2tiD}0mHK2(> zfo;&*;TaQ+WDqsU24s;CwI%ce(rfbQnFB#6QoE(H!A+1^OB^)55u}Mk>PTz?$sn;4 zgVY1Q_1MlqNGNs%+82nXXV5KLWOSxwBn3f8WUwTDpcrT978>nn294_im3GL)kOqJR zZ9GYIbcrA$8GJy(uWM>;$Vx%6aya9uML{AV?;Jh~M6QU^B8Lty6q;m< zw+jx{fXKp@DAU)tbc~A@g1`tv6g9ClgWS*h9DYD zOzA=(Ha#H|h>#HyLD*PIC1|x|Z9TiGAtXJq3AoPCWdW5~bf=L*V`EPYn##b?YjOo5 zQ3Tl`oubnq1yD&`w4`MMGSZ1a9t1=~hyzJbT`MSCEC5L*RE0SGKY zYSeH22fy{*b!Awtfz&Y>CuCAEpZjf!`T$DhkS?Q_70at7vfSs^bW9vN>Uzbz?aA{A zySMjn=W8yn&)C0Ra;tpA$?P>>zPZcu`8A`-Ax+Z}sv1`)`hFlw45LJ&l0d&|3AH5O zo1*iKcGgmfiXt0fM2ZjspBlVq$gf&rp5jx9=+{h4iAblkb;azmCuqxqFOL}|Df7#Q z({3OWIfuFbf-gs+gr*q+N;yKva4s+?!T#7`q-S0wcpI5cCFRkC^~)L0U%%$@!#8+z zbDt-#UUAWO6e1u7&ED}YX|8EsEtrKKsT4O=N@onMjEsZ?*U*GWp?4s4EQd=XhN+$) z!$4~V&KQa?Afsdm8GhvH>WZ<=(0e6oHsn?@&8H+?%DG)3(u$*OAK52(xgdsyWj$hF zNt#j55K3;_l!ZIts#e@RdXtHCygYx2NXH!RCUnh!U2n+76FO4L<%V8Z%4tFE2FNlJ zHKA#1hUyZT-ay$M=uSxY432~t1&Pd9NQnwdVsBBxQmflc$C|8~^X&82nBx&|J~*Pf zC`tU1x|?&|yr&%`O;S?%7O3y z;3wSJd&C>}Z}L}9enN;9Uw-rko9MZGb&lFeD3g8YE1tc2!pQ9MGk@osBt5+U(-UGD zFb9TVs5v$XGRdiX$5n9L$?tM}v*5kYzR$C+mYQ|gFi`=) z4l+7~4pcEPjuvMWgcNTg&JK7$Sh3}g$}}t+Osq(DMg)`M!-hBmVb3!-m83%?km5s&kA@^2ku(h<_6(yDbPcHv2oZ6e#!ErWEDDcW zm9Ps|HS}|j_L|W+Fi$hm)}jW35Cc96ROXPrr1l$<2$}TsDpHo3jgz>##t22KB?AsC zBdIL#S!5V2dJ*YNjVM!6n<55_3X*aX(5<2lmNS>ImNjKGfTH;#%TaV5VFOE{$W4y) z9#gW(IE%9mC{KR ziHxY;B6Vcu8b(f06b2VMl3LRt2#G-r16iUlaSIBMD4bx671RzP0zDqtDGC7_4?#eY zLJX2-ut<|2rNcRiYa>bN>7&H-hE8gVY>V9sE&~zigXQhJ2YhyR!O$xb1;Ga>6M`Rz z8;c!DKrrr7s<=iX(YnAT5#xG7WpN{kR9g-;(WSu!hS6XxbcQBnL;D z>y@EiM8?w%T@>WWgc~Dxx?I!Mo}I&8bgr@OHHiv1KSrecbel8QzT@cj+l-sYN7sMN zl$_Dd8?1aFGz-Rsr)mY8X2fnW5YrmFiI5Z=9ZEzSSS1==dt|%Ds0n1ZNs<|><&2BV zft$B(u|FEIoHwL*QMIU^X9kb#Y2j6dc?xaY0ipC7G+S zs=;(4q?V*NErmIxY1d4RU^N8J&NfUR@AJmpLtcJ#g=^OA9UW0i#jHEUT(|7)y+u+g zPF{Y(SRAnPXot34f=e(ir`l|gxnf*qAQIxR;qt8J#^jJ&Z|$KC!sY zaD4wuoPPd{&!7Am4-X$PJ-Wl?iz^C~adhvPX0~BATw>#zn|hy%b;I)VieLH8H<{l5 z694!A@jug_T=DbY_%?1@a`~B~*B$%gf`gm;B*ld5%TM|6k3QnE9r*U!5Bc`}dpv(V z=THCS2TTw4xqtIMi|QHz?3q0rfyq>`k%9FGuPAr#arpKf-1!r(E-Q4Y$@gw@BRim< zzvTI9$^FOQWaE2mb-~f-kikWKA4n%D^SYvY@i{m5?=yPqkc-z1>-7~oqX~C*cX;kQ zHWw>yAC3`ePP?k`(~2z55f>>{(sK9FEy{Gt$;TfPWy0+{x9RIwv_nq0m(sNzbOTZr z=oWMtNRCR_>@(PgtQ)9&M5KW{8!Vh&!>8+z~7EE{cnC2t=W=rYOSx=0L zy~ABxQV|zhOjO7VO1s8dO>l}l7dWM8hnCW}iG-#IfuWx;7#hC~ZoX8~P;R z=Yhd(nYKr%!X<`YMVe4CmN~JN$kBj^nh+qE4BrZ5W#ugBMucl zH4M?ikdSD};2nhuM48bWOXhl5rkIJu35%}`sTL?Tu*Vk>r?2t!4RG!0TKnkdPfB~2~P zj;N#~iI5;@HK+i6kfe1$DnXYDOcxkX7$b-wAVWqa1v^PkA2l-%6Pe=G3MmB9Cv>vI zrHU*-=O6`45I8452}~yG+*X4#0i=XzL28K&mLzC`Qb=jB&Gy`N5=IK3D~aKcA5*K@%Lwc!aY(uCnBrq@^IV0i>nWk!IMk;g7QbwV*SGOes1MNIQeo z6<&B0B|er$E9%-ZIvgXClwsDOM;fhj0+M7{Qw2@XlC-uU6S_QsxFGkSrw6o~NV}YY(Twiq zi~?Q^!Qfe%e89QE3)fJ9FnjDe&j8*j#B20D;Nn+&k#cO0S<<^5k+@`}iOKB3W+KBgX zzdWEBIxf$b93JklJKEu5d4;6L?>}O=c9>01JWO#_gRj;^RWiM^k1k63=a-x2uz=a}Se7md%W$83BM1qr9=EEJlPbqh0iL8ums9 zbeo#aMEcEuHWgoa@D>*{$NTR-)?DFgM_%qS z^c!BjyyVe4U*}s7Zt>pBcR6|fiU<1-Nz#%NE}4`m$NHFl6M269KI7z&{o^}?;#Ms^F0OGenRrk;5uo`a(i`A*4l zUUBmDoUh$}gWa2ZeD>*Q=r!E<>OFKXIJ>x{Uk&U{5|Zg%hICEQ4V1Ou{dmQW+U5R@ zjLU^b)E&u45{HCtE@-r4XOuI^4~ca{WoJ}Nhff`EzwvWq>532Ddx~>`yLaz^t2kTD zNKM9#y<^mwUKr3u5Pr4be#a}p6rOhVVU zWJXXR=v_pKh-^}NyTTl3Mq&pkEKQKajiFZ?beW^th!~A22S?qugjA84(N=WUK-&sL zEs>KJ6;lQ)kgD2d5ju%X*p{NAAx44HhE6tkBxUq;DnWIQw%-aWmu3&&4pe)0LR6``176a%Y>C=de3A%wki+Cl;HXbiq`ZPyG zgN_5L4~*9vr@nP!o;lSJo{LZW3xlQslz zu`$7U#aJk!7P#Kihk-N$?F5ZBByIyy;%q_8BAMzKoMF{El61g?9jX{eq$fIw8zgx; zK-73=>4hY7&}W*Y8n8y-kx0=X#0cdE`Z$oHa9JdYf>j+!g(Q@Q(5;Ytiptq?WJOOG z1Wv;!uqEphUyyYslD->|(qq`_NmebW5|jr9#Sk4y64`>yQaam`W|5|aG7DfMgH6dy zg^H2Kw-5OE)inc=u`2Ohhiok()%04C_MS|81~Cvtfg)}L^&SRoh{EGsM0kx+9RdZR z06f^ZjSvU6HN#vX{;Ti*BpzgACca`;1-!{fHAvUdk@M?czCnmvQBkBoX+f|aYdumc zk}M@yOWkyoMM|C~tTsI%dWy^t5$qQ!7poeX2%-m~L@J0eKm_l$-7Qi{f(ryZN+nz8 zf=5bCAb=eR!eER+M2GWX3qqBG;J3UZB9SCg5d&M0AE0$aA-Ac!0Nw|b^k|bHA`CVV zq$g1d;RSv4C?qD)IA>}5fz)KAM&JpA7_q}Zu!?Myq9xdVAP^DJY#E4&Xel5{20I{B z+>(|BK|gdTrAT!`z+wl7FbWwY0)dd*6r*(xMMN6~LgFk)EQ+o8DY64EkTNCFo~{qL z5JFR^%x637?{PT&(sq9t*#Snp9%qm;l0jaC*H0z>ae(u~Zc488|%5z!Dd z#IWtUQOY2c#10N`ExCcD$Qi7}`T?vX_<$~Q5Rsv6Q6WL1#6B?L&b6z41<1QL_tqbJ6Q)+yc% zI5&_c83;k}+jXmj+JaP_BZf$pn{D$(JAg7IS`ecrO%tqhtkxBo(u^k)`XLZ(k4yyu zMQ|P;EqPG@g3YQT%~B4hBbvc;c6NbDG}GN(j8b^->4ye{L@EP85d1*Xv?NK+(f$~K z>)DE?Ybd7^5}Dw`fDa&oKpBlt0oz-Gi{xca43W00A%IE}(j;YYJ+|w}Oum&paTcUN z3xRW%=mk+moC|0n$jXcmJx$dkqaZCcNP{0N&O5Zxs37seZ^thbI7if=mD)0uYr`nd zw?4H!(Fb&zprn8ZLP~^`7%A~F(hnAbN3!MjQCeZNB!oaWShUcXFE&^3gs32ZR1kjNsySUr_-SB~mJU2;jHcatc9If)E3^ z?f8)q5x1Ig5m3I4m5iJ!V2#ArW90Uyrr0{qz5i%e} zM48kO zh!7+Y|HebMEaLtPzanf86No4x9w`Juh^>yE_b34fxh-Y#H+x|u08(iPj==T?ZA}G) zP{c3%ihfJ{8np%j!inuUq_-HK7$Y%8lu)1oGHmC^iU3mL5!?R|poJicEf`*ih=_qG zfVd4Dgoua`h(Zz(Y-cBYv1dRCVcP*J6+%R;jYL2ax97zdYXKpUfC!PG1JOyM0Es|~ zfQr zPhXN{VY@DxWNRx#ND}Z4{V-~Vq~`QIFv>uej=qC5Cd9ns2cLaTrZY@7Mk>MJ7c3jg z#Eh6sQdTFCc{S(ut(+sj%ll6j$YF)dJVn0G%}L3Ak@8P}`~RgF@A2g?-^TO~t2*YJ z4b@rC!v{x@WW2aK1>dos-NVNX6D=|0JIwtYu~@U(45WLICS%4*kQY-<)-{{g&pFte zqW5nx!Q$#`PS+!1;W_?-8F$qcBqPwGqpqPF5_atcZoG%xPuTSd-7Io4T#zfx@%|BZ z+41D^f}OpT`?tn0AM;wC(=Q#_;IRh^F-#a|hAa)Nt{c)EhDtIc@aC-%qOZ7GZs__0 zj^50m?s)ad6-f>czPwA4OxavTo_+o)<5ADi-LDaoeVX+Ne(qorQO;8A>~KKF>GFc> zzTu4ulU8CUiN<6F1c$x@Vsjt0ywY3(?x zJ|c!O4<9{d%D|7GoI$?N(N2%F88`9~PcL6_dV0zIH{axq$uXz1PjK~yqi?=RQsun< z=q2J9RB@Zd(-R)uQkcU#%n>YJyifc2lCOU48>A1WJo&U^RL%%?&8us8eCHAOV&KE| z6}x*QTm`=9p;v@#59KW}e9qn7yPRDsK0SZQFTAH z&iLJb`Omp~_b$KrZ~sG5>G<6reven5pYyX{{Y7r-34ij}f6T*o_Icyy{|$cpy+1^( zXWaevFVSADST8H-Dc0_&2}B>dt-slYjIda+u%ZKl`Wu1)VzM-49MUFb2J^ ziP<5;s}(=_;h*vGryui+|K4x%pZ}Y`OmXvo|LJ%Bh(G+^AMhLh*5Bprw~qL$Kllkd z<~DDB{Y&`%k`I^9XkHp_q&pmc{F$v7C=A2(%^5$3n7LSI6AHIB_7aw17@6iLk z{`H%juPdT8>?C7cxuVDuu2v=O^B2hK73|+Yr3tAp?2dPsEiB5tLYX6638jl9nW5>R z=`5q^K)+HbG-|gYStm3olrd=Ka7jKbSqX( zL#f6bP9&A_1V5l#&wA5f)B*V&!F1Mg&XhuK$SA0&vB9xdjA%k&98;RjHJi*c5fh4# zQSbDGULY?Wekb7dP0Gx2XSk#g6^n2m%7nhHNxh{_GO|QLE@=85JQQ6)r7eYnV8AAp z#EvO~r}J~{c*L+t$c)F}Al3BN;yXj3C4`P1Pdf3`^C`x3NHf5ouuYDcZt&V;x?TLx z(8UO;r)UD`oC?pb8R%@lcVqmtCU%~H!Wc#7Mufb=nWkCEy1vr7;Wi7N17H$D_KX29xPEwY${1RklxVd9p0v- zLq}%}DHdrYz5_o%G}{0!0v%tJ2-TLWvzMTyL4^)kc!s{DP!=zt>kO%>@iN6XFc>Iw z&)_A|r+9Diav++V!f&XD$lG^r^Q%Aeh$kl()Jl?dJx*)9R;b3Ig~R44zK^6@G1v}m z6=DRwlh^=R5+J~^eI28a;5xYt1V=!_Hpr6OP*MHzzyD9Z8#g_=P}{cJN|7g$RD0Z} z!Z(_JvP0(w>aOGTw8DDF43F%}JJG_X6&8$%hvm zc5k0JT(MZc=1T7~Q;y3Id*+)tFUp<+t?`5B2hUnwKfAf(Z%w?tOqUXhF#glandnvux@apL>ZarJUVZ6rl`2HsBfBR?oUfuBiUp&E>6?5O<)ps~e zR?L6$|4?4E5f5=T-)*fUp~i;dJ-|= z;=1N#yJmLU@b2{q8qI^l9sc5U!=L~3Cmi2@hy2DKKYi~9T+9X2$HzQ5ea8Rw`_Cwk z-r@dT_>&+1A)8pRvA6l*_kN$19`kGe@HeoFz<>GQ{x|&P(|7s%zy52?Hpl$)-~R8p z^WYx(*3a|1|J!fVt}l4>&O^>@!@v69zt4G+@b7%%Az%O2uk+9T#lPgg`(OTR9)JBC zeCwBgm1pNY&1OZC&v<%Wu@1XT2Fw5YFa8HUt_=U+JKx|NUwz0A-@E1ye&=_1bz1ZG zFMWq3bG-Z4Kjz1;T5i2_pS`l>_kMWB)%t?HquZFBoDbjo3D3@!$m9?uYr3@IVx3Zb zbV=U|<{gM~%GpK5#r%wnjOF2o@BgbGq2r2oe(B5n@uzFf-+fBoFKJCmvy@z|K4)2{ zjItXHzUHjCp#FHyduIzqw{CIoc%Nslp783Un&!GCxltg;hR+t4%r34uUj=qd&a#dC z=_emDiaVHxDPhwg)=*pc@Pp5IcJcyMzQNA^JyQFc&sIxbyjWt^0Wncj#&LF5lXR9k z)y#ZHyl6OoJ)=F!+3jGl>Ugp0k!Jz#=UkQ*@+v2}S#ar=%zyNXb?dSF6Xa$fjTsk> zRp%)uP`%R3O^tso7@CH`bl6qo$`1^_CcT2E!-{Almup2?%@~HjdS26x1ES73 z?HzVr!D>S^o*_w@TF1rb4cEg0*;qQ6ka>bu^%w| z8K<*^WaEhGCF^CtG>SUy*mODe`RAC{A(NZf%_S~t*))Rns)Nfba$&e`9kGk3O=P9c z5Ou{;W+VstM%$;DW(6+bs*+dr zIWjtYH{klfsxGjbYeH;ktCYn_kM&EO^3<*&?Mmje1*^>f&N0do&aPL?DhqPN++~?n3KqkSCzsnu307$w~3q$mV>rqww!U+Y3gCXw;3(3 zSS=Lm=<#!f=vS<&hMDZy7=^nCyyzlyNS!a>WszUXWdAs6rwIR-XI_s&dV>WN- zD$7+eVB3LaGqCOkR_#FF4$KD6YOplxj?fR(gXikHqP_~O(iK&!xVZF$Fk^NWxe7f^ z=!uQve9^M<5!+u=oeDN$U~QM!*E!d&W_N$em+tKI@zYc4dCx{>SUSShK<7GY6R?{O z8pU%u6H=m(087t8)$7$w1OZafs#YKHVqu$>*2D&U>%Da+-_7 z-|)TrexB#`EO7gN#Qcmz7!SDRrI=F*bFoTYt1!B|!(NoIwmL^u1MlGgRvel|o2{Kk zsJcmWZVpZLNG2+pVlo+yNw-HxO+jUOgEOMSbb7$etqi$Zp{q0imc`o zZVk12%yA|mT%D?8pmoL^3?`_{E!JliIo$1W9(oZLK# z)iel)kI+MhNnRk2Bl4O?8LQZ4gdv+82OYw$%i_r@&a}g$L4`RL^4b8`nJ1g-JlMI< z%#6f^7cQ{BUE$HeRT}w(*|i2zWf65aq#8wZ%$)8}Vb&bsswYV81U=h@Si|?)EVMh2 zC`{Z6>z2vH3%EbrWzDUyv9!owkRo{znOdM#6QoH*Z{+jTxwDv}&h@P;?2lAlIJJb6 zOB|+CypBOX4VhoIXqruu{sG$zQIs|(W;V&M9&;tw=fvh3y03C@c*tzKO>?C|_xd~B zoE$QD>N2yl^L&&ZQk#0%zQE9x*Tw(xqw$Zz%pWHXEuqlgvn4M%5vx^Y(8snGz}SUbvSupgU#wX-~0PLZtT9v ziC3QBnYB-{d;1#iy?>1tKKUdko<7gt|MA~)-0Sm;|MVrK)Z+H-Z5-7?VM4FmVa<91 zF=KJ_`Yq&f$o%C4q`g_iQe=)F>~Z$w^9X6o*Z<@XSvqr`pZ(0wu)Fn$ zTipX%ZNY{7JnfSfZ{EI+cO0|v^l1)yKFPf?r#yK~Iqf=NT2C+JIToT%`qHzFAvaDIIq z{p2#!!#-Eu`9AJSlV_g!5~JfsT>bC|G*{<&=_g-i_uXUeZ(rfm(+iwjIL*~-_Zdz5 zoSv&PXIr$Yb9@xsX3+5wk&aSPIdS<(P6(H8z5Xf>qk^CL{O8DAhuimWA+iF=H*ni6 zOxtC5$7iqeh{Y4LY&?06ac9iDY9FlXaJhI56LPnsaR3ev5lJQIxCyxly1f|l%6A5-)Kp@bgj8V-% zOQ26qQ_cwskc36-fn)_3We&LuR)WYgqST{Ea%d~msFC#wG9^ZfJp!6&wFJu-*hRr{ z6fn^Ys)I%HQL~gnOOXqg#7Z&poG4XM4GB4iNJNmB7zGr?W1b~fKr7?N<)xwkLp;u5DJ9~! z|M&m-D_ZH`2NCKDG;E!NqX}{q6st`UPAFub*t02wMtw$QIvg!^&J0KT9~gImC8dPOqF{G&sf=`_vPcBzAF8 z$>wM9Lz&UxEh>@8)V8V3<`@H$)Up_hoOsV;m`AiWs%%&l1Ti;vRC@6qCo3N2`URp; zCGKpIO%-%kVb*D4>OF4m3<*%UbashZN?gxfdoA+J_BwcJ8WJg#>V z!lBPn>CjxVQ6!Dj^O*)J9un)d89Xs&e`lLkb&>kK$>I2jYIOzGc+_R%3#wS^|lU^S6A`BOZ4^gV_*juI{AsbN~Gwa%;?|FK^-}E#7+Ykn$j;-Y&4$pWxueeezpx^2ML}B>Tz+uRr_|FPwI{ zoG$R%%|~SG32t;!b=Jt}66rnf-FOz4D<>*e!{ z7DxLBgjvGVPt9}ZR*D}r*<5ZC>>ZP)6RhAH*uQU zw?GOn>IjWs8vK^o{ z8Z4=T>)U&L(gArC^538+VRG+61 zL#}@PRd%BmKlS_xKKGNKqEp&@_p4u}>kD3aaS2J2x%1JOy1k0Ks$nZW$M<_=smb%t zJjdYpF8#qVDXRqCDXyAPY*q=4jPfvsaX@Qv9=TOz>-H{5O+jO>Kp851e=9VP_KO!Y& zzZbDyw>Y)9!ni27_Wl)Sn={OuTqT-zDZ3e>*=9I8#1B1YmrkctCD>9xtEv$D4J>s?l*lM@4M7CTh?&G9*I|F) zp%xLM+9WG;qESvwcrjV~&1c5+3jxn^1!iX7U26E<5j=JlST;%sI|fqEUbzMwq6AuSw(+4I}i?Di#4Qu@S*w z%ABE+3-DxXFO8_E%(S=fn?|mV-3yQM{`}|Or}T`q*P|w^l0W9idrx& zQpO`0&2niNg2amnqX@mC;}va0?BPgLLJIo06n@T3(4Nr+Mv$(2#n5-o=)kP#v!5*h&s5swj4H3!dz8DC?R2S`?enj2VU zNp1?#eU(wgqpqkJfyP*iDCLM;m>5w);Z`VekENQ;$(0!%9Q27x8Q0G#)R06~Fg+bj zN+~ssG%6m?1{E@Kq#~IidR`I=2{|?}ML;U4NK#48W7$0~WilePQhS_5Q!_|3#7n>N z+h3Wl8K{Jxm03oEjG8uOcD{r=o;R$Hzn!n?<`x zmLJoLR4h|MuW1B+NY$w!CqBc8Pf@9|U?muGj_F2xG;m0xfc1t-lnGR&L>Pj|%aI6? z+zN#zF}OD-6$T463nGc5D95M?7Tgy5JCC?`u+7T(^ITrtARLak-rXgb6zHnM>~b4N zwb;&&2nPkJq+mB1lzBp^q*QeWIX_|&D459_&58!>^B}UZh5_nKLd#x!ysfw2!)nSb zUTkrA&*19bU6$>Fr=ES9Q6|&9aY#k)5Sw)*X^xhFVH{J`1xxaX-YCLPT`GpoFy6*d zW?5=2Fp3_seSeHKSEp8;L6{*y$48lZ)K}NZB!%wQnAx_2ak|cU?-9NIjQQ3{nkz$k zgOFrTfkmA~*Cg{&#&H)#Gf>SoOSXl#AM;W6fcoMrGv*SL{(wQz<=p8iNuu(`_qS;- znLKxSo!!G4h1^3MjhO5Rq-w$9$|-DV%=n)iz`e%7_fV{ak+ zmaD5g{O}If9$ulgdV(+i(kFTKudeaE@4mxt{Of;;Ij8f+S8vcT1&hmb9FLEwCK`?A za}1R(+uJ|liOrXA)>_>A(YvH&lP8|rVCTj|di@@!p1nXMeBS=it6V&Ho{iNfxPI*> zTiziTpE|>-_64>+y2aPu`YsnYp5*N1Gwg>M^*rOCkden9;m*x)yO&@*obbvk=LuUg zym$TUq<1?!|Jk3xC^NqM-LJ6|6#VMb7x?90`$hhrfA}V^{`-H==`+vrPk#9_hoQ{m z;X~?DoveU`xwF*mDS!3{|A7y(P5#A88(e&1li&aT*J&m)r%yjecW;WNNR)Fq(XgaO zK&92Lar4`3o;lCyij=|1X6aHn&dv77Sb*~>_t%$slDz=)@O{!^bt zFx(u^{eG1Q2GR$z)bT0u%k$Vd~YV-PdZCbxRXlHsP*dclK=EZ%!yw8) zO1ji_ja0Q6j}s&##dRuJM-iQ3il_<L$6~VgJ&0HHfTvg zYMSJJisg9Nu|Sd_Hf+*?gjUfo^)dZ@38UiBsHY6P09h93+6;j*LKRZT$ zgDR`|IS71I5fH~Rg;zz&OC(n&QF26RP@*waeS{C1NXQif#VUzYK``iI&S^+l70*a8 zWN7*-fg%{;!!!30gU5qVBzLmEcdMoNLjI0rk)Nop1qKO_(;Dl#=7 z5}?T%QSPCuf+%!J-3&|BNJkM$Jw+5Mnx~N(F{X%#0|z?^@R|ZM5u}pDYQtr7rOn;l zK1D1*F36pdd|Z<13XW0`#gF%z4KjQ`N75B+StXKlx6bPMI`P9J?nWc5 z`Z`wnc|#Q_ zx{4@a`*4@(D5AZzfV@;EKj_jq=n%FI&d<+M5h1tsI`ll1^B3EQY0O7A_J|z8#nbbc zw#DJW9$i17NE2q}XE0TXkO{>oWF*Ek%^FsranSEl5rT!KD*J;Ty@v`5CtM1BO22Dx zaseii|G2_#%%T(pxu#GoNcbHYwaBref}-@1TY_dbixC9ejt5~hjWtDAjO!w*|=1mFf6X)q)4T-N@UV22WUAzI2k?fB8eA>X?mRIK_>>o^X77iGTj(3e{l3_O)H~O%0>ra$&g1 zuqm^p1Qdy2z73tYMslE&?<U;X}9S$7rwi+twNCI0BY{3UPhrTo?_7r6X|pX1NpdY4;o`~}M!XL#uoPZ6dr zA3Z$cq#fd(sE~v@dduSBwRgC6RPy2rXZZ3@{|rCue8`)B_kbrCo}x7?)7!bu)K;i1 zoTO5pXY}YAJJE!VwToz~&2VxHQRd{aN!f`}&6IlkB(Q@n$eu#lo>Q@vobe-*>vyivyx8QaXI><{xlMon0CjbN{#K7;X~?;aH7dSA z7zIo;4Jp=fbe(!DrHn&vKAKW(=qy(1jKhpvnK14s%$QXw%K~3Y@S+qeFi`Xm8a4c0 zh+ZvFY)H0!ic+CiZNbz>(neTvl`@x+>ls0>gBulWRb9e3Wznpos{uzl2jrqb`&1jT zKVh8uc=jR@Si zm{iYcm~)hRjz>T|71)^sS%7asn&{L?k>;C}Nr^d)Immh#BLk;eA+l`f%LHzp+^As; zK&~7i^ac}AMWhqVNlMZ*n3g5Vq{M2KWKNr29wIy+QPds>nzcUT!a(v%Oh+S50xT`Z zr%sRt7-q~uY|t$Pp$1wIv#7+RKrb-SvVf}5B{J%mrAo3tWm<;l!lJPI*pkK|F+mQf z$0>oRVM+x`9utNd$rKi~e|$@`hPCf;cYtO%SUJdcO5isr^PE8Saf~)ZF@-cB$TdtoBG6sJ!o~G+ym&-m3skj^ISTP) zjnEFLP6gf|#WoCLMW%2gv{6bHNW?-$mL(eP22ujUV2oQRj8p?jjWB{7MU@#xIci+(i{5gm96v6sZEGuQHJmbU7i>Eku$aTNY{)*grZ`rDPg7(7b%)7Q&J+Ml9HjJlNAMqfGjPM zWPxlznmsnVC?v$c{Xc*EE2Xb6-47|6ATE40QdH?_* z07*naRHADU4ZB8A7#L}fW?e#2su-;TSq4>236C-cfyQRLi7uzCHY)tVt2cROWfQfM z(i?TioDyN1(3Nn@5pin{P1i8JAro)Pz;9ArDOs4;7>#8nqktkUC@7KZg7cLsif;4f zaYlZ3i&kxfYM-HAE9jOP!9c~BOb}}@pDwW7^-1WkRBKVHD)}HJ5ejoNP11uY_l5_o zoNuvSTc&?>%zm$fBwU)B%ACDIrcH_R5z)xT6##8OlD`%Ul?wabkYRt1`N|x2t6(?? zu#I(S3;IWQ7*DF4owvw*553i5tf}GWA%R+w9Nm_{}ScXrWL zmFBqyeo$jN^6(kq+Bz$(Dnl>hc;L})n~YPRG*3CbbOOJ#$Gw9`H0pI`+AE}XOw#WY z4szUT9m&-R?{qL1LiCg87;O#lj`yj%%h+pErb$NhKqsz9%*?oyp2x8_VR=SCu?}H~ zECvjE9eV0f{0j?w z`b(eUYk%}QgEZz#U;G5eM_smiN37O1&~urC&V5X&&c^enxc%UW-R;{vb>RYHB=h!1 zAM(jpK1M~!_{P^>=hC?gT)cFS_kVm1$yRvkQ|C$Zn0xQ+@y6@7c=BWC`T381o^QSO zJ$ARZII(z|+$^ayXTh+!|IU4uEQxbJ@e1#Lc!lW?_Ic%%R~WiF`|rF#RIz9-F0e4y z<_ACgHh=fVnE&+`FY|ByD=#5(!6A=`4hJ+gUgYB!KF0m+ z@A7B=@%N}!&hxX+o}lsM3%vR5YZS@>k~>FP`p9Msd5hzR2P|zkoL@i5*T4G_Bfrmc zpM4p(Hc#i>oBa6Ehpeog;1e%?lK0>KkWRSEr_P@y)Mv=#5y8HU7ah{5%@ZdL%6yxu zP>I_%iK0*k2Jepvs|EA(4sF}Obr<>0_g>|A)a6%y<)=A!ZiP4h<_Fvjdc3^3g3KJ- zqaNx)f~=c#-i_E?TVm!+n;Tbda(8dSGtWFhUDKHM51GahQr)5+XC$eH-6$}d0tO1Z z`x(_$i>4_t8i$y|#dUrBA|z597+#1L#wc!!u@+K|G)iqsek{nt1pQPUM{1D-BeF2& za1byrRheHF=*?x`ygNX24>&)&01Gz5Af#H+(2IcLK;{>J{o}m1eSqrs(PI@UG02q( zR9a}dfKsNB^hLeg;9pxZ9OlSqfR(Jh-+rOwEeNP7_s z0yN8cJh`HokY|*opcDydB+)P|l(b;C7!VgWD~5`%Ll91wa|{yC} zj?FsGmHh)4UU9{zrPLTJX1TTDFPa@NyH z(*k3hqBJw&nn4(;n8zMwwP2hy(G!_i_HiuGlE)b$O%}LH@)+3kZ6wE|92gYBN6h9J zrHWQa459$d)~E@=n1ta-rXiQqnve`k4!jXFH3?O=2-27=a*1sjQwY@#zI7^*AAy zON6QuM-z-#BPj}8Sthn1&OuBPf|`NprG%wS?8%@CY&Arn6O<*IVN)0pSt2teUB2#CfND+a8?l_Eu&vf8pNjg&Mq8lNV+#*O-n!=;L&?HfG zG;c@|NH`UfGcAWeElH0PhRKBHLWLF6;+r=H80U2Ky$<~c1;uKOP0K)Ihp1Q~izCWh zQ04-i3VwBj9NIXNL0OfV(T?d1P0(#t)dJP2a@0?d)FZT3oB4DJOYZVu(j)Xt&aTKumleu*2D|P(N9@1_`eQ^$14N1Hl zt&=fwY}V!$aOGpJb$Td8!P4?YTnmD`2ORq&T4&d33YCuMQ^&mSW=S0tYCUR6PP_IDUM#V5^(vj6DJw57 zaC))HqX#LT9&)f1q0-^$FTB9c(BaY7{)Y3<%rW=Mr}@Lbe2Ya}=O!xb*^c{M zdU^x4``qhxIQ`4#=)E=K(SP&#xqopA!|m`F|Me}TnHfI*#g`fWxa4RrKw0k-?)TX& zRnDC`&6^($@ze=Ra}iQg#?{WzI|%Uf5ouh~Y*biXo8d?Q^%@V3kND^R>ZfU7^R2)5 z7ExO86Tk2xnI7;zzV(QTwZ=1_o};sKjR)68JoEfdlNLk1^P_L_)QQuaY(LAPx5r>Q zrlK|2n5zMEynS$o z-qt-f=GV#X3SsXfPM%pp-(2EH-~1kaG3Dh`pQ0Q{eDn4@WTdfAQz9 z^1c7>PiQZ#@VQ@jiSAH`-62bhb&m51nXF*0FYxNM*O=_u{Q8S0dE$%D@uz?AU+4zA zyzqrD;S@TLUVoc~O$VuZnf`+v%IQ7&vcaWO>#XZF?hQLw6&W3ct2eh;SZ}kmzQOIC zZ5ml0%UY!uPncRZuFzOt(y2=ey#CH>+}`Q%Afmx%UVH+3VTSwP{sy=9E!>p`>t_`j#v;RO$Hc*i?9>d!amYl06CbZpxtnp= zeZUwUcg{uYW)zi@sttz&6}ehvzS;(FpX z)C~)H)*yc{CXh$4+9DgtSZN2fHN)T_B8dYWXM*LdGRX>(WP}@MsD(sNOfZ{ESfxcV z=yL3hxw7NaZq1_k9mYXHspJ^*7DyU?H=zsys%3=Msv(;>q$>VIp@@&LjT*TnW5^{@ z7!gW2b1ju>X)y^#VCq!zHutu#Fv<(OGNh_k&<%~gW#Yss)4?%b(`0QZQ(7k7QpUCf zZZx6HEJkLDB_&LZ7IvVc#`_>-M!Jb3Y+4nGNVgbHQ@n$H<{AqadV}M1j6WS?6$PVA zW!{uX4U4TQlv2u~6jMYNW~E7-9WhM>4ZBL5A2G=*XacH5mpChlj2g*aL{t`Jm6UpF zV2~5VGG#?W&kBa2gku*BrHnlV%wC<+%IIq&IzbJ+&@r`wD9mIBp4mnFpC5f2`#tD(mtuHVJ0d8kL|&x z>eG=lPPrzVt8K3L`=o(HRXn!Uf;hoYA4@5zUm!$|X%$3?LafFpp^TyBq(VaC9}%v| zKrwQPsX5cH@J*{3BH$dQXK1Vu%lIu4@mGYN9)Ga5x2aokC$%vqdWQTb?RN|c%`)T->46SOpD zx$2-N6Lv$3T+6TzrqpU}+RvCAKI(Gsy3g5DbF44U(d|g2!7;h-p{-ZZl{(V?h{7?M zYgDl;pL@qcM%^wOjW*aCkyOxDD|qRU`&+x{hRw>!4W?rWZ+M?*lF*!;#aU80xOGTH z(W$O35FH*8ABEI6*HMH{5O*1NhjgSCXU{qq;|ceVy0nFkUZ24WW9(@}I+Gyu7Fy3E zwW}1a#hmHDXvpr-BXX(2xz;J%md^Cigb(iBWTp*^3un-ilBDV(MJ3nnOi?O_y!7c^AK7E3hU-~?U z?~UmO4^ed&w_zfkERo7}ZoSth&kk`~ea@a*pq-uI{k=Q1vV@K0iwt`iJEI%SH`|Ei z8b@#6!U*R$`TR27bU?o|p}E{dmSlR@9-yxYPS;o2x)&hMm^9@c*WP=Z)pKjCt!#2_ z`zDM9Pd>GYr*(M$?+%!BGA?}SdCs0&Fn|#Ri`wyA-EmrF- zHlDx4ahCJiH^0kTAhG`Gi;OLc>0ytG(MGi^?0z(0=l(A1FQ4YjDTDW}zRnwWUB39@ zI$!$bpX2Qt`@H%0e@r1&`0VqaBx|hk-o5YOM>{FZ#s2mY z%a_)ujVdI{l)ly>9(XJ)p2Aj^DZ(D6TGBUi9_^2q4?=M3C^M&7Ukd2&cesBT5_U_f z3sp{?Sf{;F=WoCB4_v)*$p7-?&$4*t)BN6l{v*Q40iS#274qJgq7b;}8eD(t2i)Bb z`OFue)a70jdDk za+xSGhH7E-CHD0Z^#W|CMUqd5$B%)>*vUzcZS-`AGi##6Hld-=lqAO80Rth?E_KR< z3L-CwGXpW5;zu!REyZcBGl?>^;Spl05xEwTBCsWevJ6S028HZXdOowZN~i;JfNd63 zJ&R#nQr1ec(j~8m$BP+7N~La7X0SII(vap+r76R7ik+Gm6%d7n?`cGX9;qp?XDqti z4oRNktj!VlGWMiLBa`Xd8A&0Lgc@Tx#ta0RlhaEf4q?$ONGzM_IG{S7Qk~es+NR>ffV=zhDAF8St$u*5QRXBa&mGaO-7V8q&y;U zRh)i6A-POYsRS~a8Zb~(?A)M2MoyKql8_EdB2A@9K{6SkiW;%3qRT0RT*5ItGS9#( zz>vYVAW9%DRHQV)v^9bfgsM>tJ-oJtHUeD&EzlTiBMM7JhH>AmlM z&prE=7eo6+p1pKy+5(wiJnBqkaTiIGyV zb;jL@%PURx@@<;=9QUy>*F%=%m~`AiQe?DtMChjsFesH&=A;n6*+Q49*xMZ*1PWF& zXRcnxlmhmT6UM%aTybzThtiD3(a1$92Fyq;Y}3XoIvgH&h-Sgs^fH20Qrdu z7MqU`Da4rO`B`Sm2K$>nk2bbwUs7mS*V*aGOuPYltw+mlkZZFP=^k!xgjR1Nn*yN= z>S~#T$B&6mD3q)PxHqBP45^&A7#?^G4<*Vo)0movtd7Y$CKGI$a~4_fknC0 zKsOBfhnozvkd?U>b*ak!Si(y?Oi!7ZlEg4}iTxO}l~J2pqB3sM^{%q9H$<0K`PqvL zbe)9F8+SmHk>@MKfq_~0tgJY=q0al)-$t4Ey!fS;QQ9h_4>su^yCjA}8f9F#a-L47 z;EgxG&kN7Bc>1O1_~Gl1I35gnak0%L9}~rb)>51O+kL!vpYqu<{#8MIpzzsGHL+(E zzWes~@neZ|pZsOi;U*i~9}=x=l-vQe)S}&bkq`Dp+_}HaIepC8l?5JjPIKV*QItD0 zn{%A9SMh2#?_E9M>YX3)wJ$xz<+GpV|NQ5F$Uu+yuYcoLC<~u|_AkCmX)wz#{`O`1 z?|sO(zq7?xe)E@^sn_|Z|HtoeqOrg$&wiD=_upkAyUf<7X*3(;laP1cyMtaY^LKya zS>E3oaR2a#SLzqp8*Z|nZ?aHYre-bR`U6x226;$%GUmL|;vUB&2P0O`UE=8RK9h&r zy!fdrcwUvQt@n_dIcH8jht^a1lfU?v96Yl4`(M1k-~8Ga`N7RCzV&;5fLL1Q%-RB0 z;xiXP5;;hXDleaVnp+Px_`m<(-=VeiBENd(1hdb+%wPQPzlWswoVoI!Fz{}Iwn0Ok zV!W`1ISS}ryMt;rXn*Pw{Ri8)X~fx6Q{4LgN5qQH>dDX0_hJg!qovef)TcUC=H@|< z?cGg&=G+v9ILmuGckzb@eD2wk%w0ashkt&b`?t24x+rsQ@eI?V%I;u?{)4;t!v&uD znK{-j&9ZUpT|WG)hdlSpbF`nICG=_<-yg?L!dda6QsW*v9$L-sc$#DYS- zB9r$eDw>8oYqNRK$M8ZfJa>s~aLmoE9qd}0imssO6DEd17U<}~7`^R~4`PZ*M19ug zAh(!NhgbuRqjAX43t65P7;|-Y_g(tC1C}dIs*M^4i9`+vH(+!SpjABdxkVz$BugXM z=@M5Ioa!{_G2YN4%RMaFLMQ>2>3|aBALwMJi&2MRAybd5OfsL;8e&NnT2+O9L^rRX zIRZO(NyC7C9@ET9e$dGp7_=)D?xH8k6KUrJ#>HoZu=MdaZ;#(I^=< zuG_)SdN}1-N`{~)3M5J3dwnw5qpsIcohHF3WE6BzVvDR^MhPUO%*87SihjtfoDj(+ zhEalNjwp{bdZ~u2PM8=GnsCq%Xp&1H8~6hgBgn~X0VX+gprf%cgky``dVT2y4Q%ADubcT;8y9G>F35@}! zKaE66F01%bLhgh(Sjeux*IcArAcq#UEX21mCRv11B&dc%h6kaFsd=QDLE`2ZT0s<- z$hDZr1zXb)s*4*7R7=OuGbXVh5*bxu@}x{4#S}s&2NFQC1tNBdR0-k?)38a3F^R2V z7hniM>Z^>j9-1~o)6F=5K;+Nl;*GHkkrKQ&5wDG)OV3f+#Y`4T(IT zp!QQtRU@gG2(wDRf5^}aDODQG&uZkl%UZR?fBUa)^4Y(&%v{Z3aN{2NnI>wh%3yCu zSR^!ZK}9PgsxCofqD>-<+~9Gg0hUWG=#yz>EHQ_xA0T@<+SsD9tn;wzBK#dr1#OJ8 zQydmux(^;PDyf`bXtPkZxpmkh2}4@N44JL)U^2i&VYyL5F6Z3d>M|7uShW(7I)&+U zQFWWKHy}Qk;4GY^Y6%V=-=}P8)TS%!b$fVbgLb8aJsEQp%G7E@OkF0TMyg5VyF*G& z4b_o2e9$8(8qAg|EKDa1BEi9pBf>nVT$v>*3ueeEJds+S_C1u;g6_SBXVD1=h`tVt8GrLEfVb=)APHyZVrP6GZ%egC8rt9 zF;Y|ZHjZGBvib{GczDO9^Mg0|($B5qE?nTPfAbOLWx?qyCwO@6HvXhQJ3GbX)-iEa zLtQs`_}vcLBb#6PjdRHIUH--Y^BPmneU6{|rC((8JAcXTyBnPTxwB*k9(gYy(3-g0 zDGe>aIvpV57HT$w=R|Dm-Q+VTSD7x&u^A(P}jL?1ir|l*c@H^g}iu9y7gomMimT5oX5KyN|j4YOmC*aTC_m(Y@5hV7<|;BGwITiW&ZZX=W*n6vywvlQwtqY5E_67BP zNK)8@u1l;`X)Q_Q;|W{+keUOhr`PGYJ#OE=&0Kw+)o14MI=ei+KSJa-rFjWklSq3y zlHnpp8J@1A>E;ubDNc|L9bG9A5EFMKWHF*quQBcgBp9gV$c0auL#5ut2{U#_35h0S z=pZKsei$NZ5xKL3Gnf#WIk7b2D9f?N6-q4_6ef%ms#+g6NYQFKLa8#53sf~h4aT6) zFf3wpzmGgKNA4R8hkJ;^K(}Rzl0_)T1b&3#8-!MY&{DKk1;sZA4!W4761k$G4SX^= zCyZ2dyGkm0bYhJ~;gAcLz!yZZjT4QL+cuB#38kZuTD?v_S0+E|A|#j4tTB*m{IpM2 zR56PLWt5OrYzC>1?n~%~z#sb*frMx%qH0r>_sBs2*f~F_pi8m?Yo$QeoI;KvCS3nEz{^~ z#Ti%`qfC(JDrzZ1i!?-5klHbcT0+xv5-(-!g{Z2aT+?xql<88HfAwCMT{q#g4T!>d zHXmg3YWLVn6DxW}=Qo>B7 zf81d*?6Oi?rFp5%b`p|2+GUamTJ0uta*6H3hr|heV*vCrQ9+o*b*D_=N+6nlK| z`YrMzV|Mlo+Uhh)dcg3pN05z}HRh-)N727ju;Lt&{C#r8nS4h z%3U7rAED2bsZ^&J?jBH{ahP6i;6EDiXfHx>Z01kNn1+p-R(ZJhn92-={reGdFz#SFW?Qe+}nw$kg&Fuv+9wOv69o{(gjFI!rBV z1icI|%&4A{89aitmod9yA)7-+al&NiaKM=Lih?2+Y`PwH;$bRvtcHyl$n1_rnA0uV zV}(cVkRr>Onp0_FvNf8}=^rp5nZ3Kxp|HKeS^}P zLVKo$|1e>BCZlLn_~^}Ddc7{seE9;ke1@Zg9sJm(BrM`QVeV{$K`&$f#=Cst`4Wxg z7rFEA54cr?oUYl-3xlL3*qcZU?;W7mG-h9@vU_!mxzXVCt8GTX4zIs?M<0iUp>oLfA(j%e&>*PZu})mr$LxNc_~2d zX^hi8mp`-4>BZCBz18KL-}qmsUiutgyKt7Q7IWv#HyPNcIoVu6@;v;`b!MJ^0d28H z_v(8j6P?;plOWc}1kASU>~>;$;~upZOoul8a-BRGqE3!zS7xcsUf||nOn3YdCzl&k z>u0$8@89G8;fT+@`Vv>3zsRkRukwR8e#pwY#hKX`F`NeWoW@7*ew(95F~9J|mwEO} zSNNTO`p^0J?Ji&X%`dSyU#EL(hsX$VrY&|q+NVF3xbXA}wbd4*ja~L{^(i&VuvU;= zO{lImu$Od>-`hr8YH?ysX83-O9Z#mBG?|*#DWsg$ihG_6!Maa6ddCp=49mnsoFx5tJK{Xf8;aPJ!*zYd8&m> z%CPHVCO$|yX(?e=YcUofQg4J^0zWYj@&qeT@T)q>Fr*X(^lK?aqM=9zO4LIZ4f0z6QIF^&0YB3Z%jdk96t%5vmN44Hux z$Y^EAy&*$MLkkniicPM{j2NS38c7yYNCMZ_sAvQFs1$ycQmIEc7Nm9wk)?=G5IG)U zqG4n)nsA6Hh>94q>W~jJ(ljJOri_Iw$0Vvjn2j-oO$KCgMkC7^B{{wwGi5s@M`Ly+ z4by^|!lIkxjP0D}&?NM8(yE8Bb;P8KmX8Td7-tf*4S^p=jDHLJrz@P3Y~DId$!Z$QRf8EXCmgsLT5i#t zI*C*B+2}kV>&2X~ZCpEHe`HXto6HmeodFcHDwTdjp(^w;1!=EGZDkR2TH&A{GMP9` zwG;}`MT&Hk+#>D{Q5=h6R-z^QD3M98qcc!qX6zJ0mPn^8BwXp z1w)!r6QQ?342X{thFZ+og*IB4azKba$>|9h2OqVrA|LCF;~agq%#50_b+}0<*J;Ep z7E+b`RGCpKpnt&iUXNyNnP*S8$V)@6e|${TOAzfQGgg@*?xPqLrlf)!_Z~4yGG6!_ zuW-~)*!wk;Bmh$Jn|4p9y%9nWIndkZVt-q#suY)yXGjsABt+vXW zAKqZ-t9<_AOZ2<}Km6d2nXWJJsdF#kOjpVK8EmI|=J}DXw6H3`U;Z&dTy%Cl9X{IkUDfcEEytl*ad&ew& zs>!c?;YEU7oqzp@f5@=e<3KGwOPJA!_K>VY{o9r^Ce2hIYH1vU2fq< z3hLkx)iRLN3WbtmPnSviK8KwVB~@m5dJaEvxpnY}rTI1s(^VcEKc@5kF0GR%shzSJ zcZT$OU22(%G}9!NB{BsJHzyn&5i8JGs*|`f+uI5CQi3ICU>OWU9a{|<1u}ZB!a|DT z>5RHEVO3DKJW^l5bp@H8Q=TrNj3tB+jD$-Tg*aXb%@&9SiC)LXJW5EiBeI5tQk}t` zfThKZM+q)I=mvS>(X342(L&zeU|1xWi?dW{kY+ui4k#6sB!I$^&{GRd*Wr1j+=RCo=>hi6qbq-z>owD4V)M)E8`{}wiDn5Gw5+l-wbg23JMOI z6*ICEqF#ig2((1T%pkQ4axFmaIQR_^85rT1tTaW_FBr-pt|en6GUd=G6@rl~K|H2B zQzwZn++!De(TB()DO7Szki;IgsgbxgsqK>}Az3W2Eg4lVNHPoIXPCCjL`;!qF{X$} ze2K!y@B;5*CvnI%J#Q+8bmKN-Y65Iqo*lOkTXmoqAX{otm5`0BuQZ+ ze9X*bY1UzFp~bDuF{&1jbHgZBQW$$o6Vw5=FtkLzl_`1ZS?S#-jX6@No%4UQ6 zkB%^E17>GuiMw!T!=P60v$~?Oqslyd$3`dS)HO%I?up($kqFAb0V8z{?cjslS4YLLVI==E9qhxC6w_2{r*FewFPS0 zBKn4lH3k z#vF8eEVgWBX4{Am?%wzquTtXT%mO3Tq@V901`_&EA}&{%SKFYBM&KW{th$3EiWISf<8Iy-KbqOtK-CZPAKH z+&>N&j)v6FmRN0_L+ZGE@bG~rnLCTE^H#nTtsY~33$?se%4s2e3_S7$lgNl-g?m|JUL)mONEr$=9jIX7oB+aEKk zYTPYMypMKRpEg{(|iI5aZ%S67PWN zutZ)x%iZoHw8L%I&ea)|myiclb`I`CvcaoQuaVhn+<3<$oa{2Sw81pbARCwYaQ7|p z-TO2yU#2hun*BY_%$?%=&#bUJdcZgS*VkyTJk3A++9f{t;5s|^_PFr;&tS>}9zT4K z_^`y4&p(gu)%mmU{uOf-l~4WLE8M=j#pVyLvouv^>U5iCTjTZzN9^u(S@^_BR!`2; zNi1&s@Q&5t?E4p?in=+?&^JxE#i=9x%6 zq}6$zxp0Y%AHT`>-uxCXeDxQ3_UtKw;{*QsyWe8rp-{Ibk zLw@VO_zItR~s0q7qCkvyEh+VE;KRP5yu}6$%j5GFE3GAZZNoaz-XKz zHBCwrm%xm1nu|o;L-HiYYR_Pws1Y6<(7k(r(o$JonBgcCBx;T=hx85tCR1h3FE^3B z9yhuZwx(g4{=&d_%$zh!(8d;`EMtTjlOn{bLqFF@j>oLdICyqS=Ml)ZK({ke zFD8*xh-FMIA@@w&!bh{g8XCkZM7oS-WcVYATuRV16C>+0$y6drOsOehEQsSVmJGS& z;0H0OEu&=#a-<=JV?0$*wyMZULLNpKvW#ySD3*mJLAoE3s|miWBgz)$DCaQp&>WjK z8bjG*jD|5ZaI_FtmqWsJ0P*X; z^$)+kGafT-*_c+wz%M8%DbgUPAE!7i6-87S4t)xxi|jS2OES3;F)~!lBt?orD%r@Y zM;b|pBIYnuuFEk)U*+EJ z5T`okj5Nn~xyFO;Lu~hmhTg=PStUt5wmNqyMGaP(mpE98k+_SvGiEnE!P=)}YS_#%te!X2QI-QIQLYAwS^V>Vv7&o zdq87UrTt6^J8ROB4eY#6E6+)r4&L#Yk(4p3sl-JMO;#wcnvBN*!Ce>dsZFm?Gc!~n zQA7)j4t6-23|XF?p;l|+ABOZ|9a)j6Hwxq+CK+02*@PrdsnuF|WDGlff=NMRW|7*W zARJEU-QGZyra1r9DUKd`bdNW<@O+)|QJsg6_n2F%VwS-_9^#rZlSxWlouyC$Jj=x% zR*{v0kpz0wr&2PQlq|G(NDmu5&6qMYOr30SxZP*8KVbQ# z(=^>OAHMU4wC7r^fBI|O+T394+6K?8Euxg*>cf2+GxIdGgi+t8+SWMi_A!SgPJe2N zt=<9GfAAJhUwMZ1OP}KQU;T)}+oQU?hThwwb|?{>=a8!k!oSHVN-3N&7b=TvbR-VE zH#k++aLT`guZ*}By@}&J;!Nudedk5?KDbAFYKwkZWh^CpdipZcwK_k#`##&ZGOk=$ z<;1$dcYgo-eDG+W|LGt9J)V1Uo&Ws5`-e1>RsPOD_+@^4=ezvy8}D)H<#W9B)tA}W z+~UEz53tHLRu&f+jfM<@ZFFmvr_Mh`vOi?|{d=U1IU;+H)qIwgF~!@_ka9Dl;@V_+ z4_#DvG#HW>eV$^8<>_@EXpi~myFX#2yo$NHie%hp-B{qm>pAzjSNX)LGtAGO#~t6` zwV%As17Glo7utN{xpnTmJ!F6Qn5r|!-tiVk{vlKH0&{aMtdk~}o<7H$-@L=`{@EY$ z<*%+Y>lnQI zZ{Onj#=ES4^%Y)huCRZ&&rc4obLboV!n0>N{mEzf(R;V~_{IZH%~WZ$=kenKi5yW2 zYz_`{Hq%2+l_g$Sdxgi!WA49p16}vA+jX);qdC)Jf4j?Q7;yf%8r8z)?)?sm5t5hJ znXbgd?jF(p6q(4FZpLJp#Beu58%He9Ei=r9+&ey^UMaJ-Fw5cHUB+&o`Ew_!&pF)q z=mEx&$ISdH+H#HF-jInKkvSQbrK0!>rG*mi&Xb@lOBzkPOcA>D-3(!qv|V z58U?iE=4L>l&csNR1q6ppqQLNibq7{jFE5Sgg!zKNv0}DeFH7^$aJ3&4Uq{P$tO>A zkX^E>f#wyEIkabMoSv_<^>9F#$_PSqMZqsXK?PMoHd3S@rN}kV3Vxc&BIJpgSny<3 zB?Lr8hIn!z`2QQO{=+E{zw!_MtFM`5qA zjNzyRdWkFO+KAo|};)Qu6Rp-Ix0TXRZ zQ(vc1og!D zv9rHHsTOcz<`jA0Gx83p6jcav;!=hA77Y6yBQL~gItVXEtC*ODgI^pXiUbmeD7KkC zk)sV1dSOmIj!DWXx;>3HPIw#+sOSZ!>{SlrjKTIcqEy3CRl+P|Fo`IYZC09d?7Dq6 z_wS)L>dY%MG#!~L-*dCDxYbIodg3WAcD2=a$G@XSsLnAvG=J%u1cf(SVIWP(M?~+u5SFt#aYTv%Il$ zK<`J7dG2SQL2FoSe0UYBV$obZ$=&;JqZcx#&OS?bu!VI$Vb?y%z&NBO4_IlQ1`)CQ zFu@&VRLeIxv33zXyUd;Kt91Pd%WECX{W62jr;(ytVBaT+&tR@psVh1nG}udB20L9e zzr&|Ld5-qdi~Qi@_j%C2#)+q%rRCJoRG(Xq4zRsh7M@<`d$(R^ultz4^J~A%tUSXv z{^XnFS(!60J%^|4vh#iqxl-Yo`2|*IF7dIy%WJRw2``PzQIh7xc7=^HH0PV>~~pP`(&+&vu9 zmud{}ZPR=7A*)Y+g0oBO_+^{>_qS*#GS;la&7&KHc8k-xjxjt$nO~)`bcXxi{QSexVh4{qWpIZG!m@bJU;$+euPF2BO{ z2M-9nBR>7g&#~{`M6n`Jnmu-Y5R*1%IdjHfK5R1zMr<4$5qT<8r&<)Ef~^aV zvd3tfRi+mNGxZuDKS+?YM=aPjSr5i?OlffnWmIr?Ym-PXc<$0U3KBN2_aRAGS!fZ< z(2u$lzC>=NlgJ}W74)eRs+z){#5i}EsVF3o!_dwtPexRdoPm;|Doq?s z#ydQsNJHxLvlx`v-5w%k39S=z=yA^8VHXZn5zGJpAOJ~3K~!O9RIC~)770Ft5o1-R zs_4k3L8z3_B7x)|aqNdU`7HG|1b%@C3&x`aA$-)5N#Wb5j=;`s(%^{wFrlhjOjk>I zae^Dl*rSNd&Pcq1mSZ6tg>DSNIHGI;6%)BLCKdu&2+D>_M{3Rm9+F5lRSlT2of!(@D1cl zJn35rft6?YLxEqQaOwBsWT6I z-h1sePr0a$fn5CSYT>{AU%cP@y^rRRkMA>rGbbkrb5b89t02kB2r)rU5`=7_iIi|u z;M<_&kVGI{P#ZB>n2}2kQRE@K48>{T7Xgu>VUH6c)gdFMs>&ppjO#(#Qn9B7xs`Eb zB}iU_c~KBrIf#)HKt2AA}o zkA(QGfB7%IRgNU0JjWLyTC9=z9%|V_RRu{TkxaV?twhr@A$FPQ25BrXCLxIeilLxL zK8a^C7{rt+I&-xaMbKw|7;~vz=IyKRGLU8&Xa$y)a9U01PF3C?1+?rEhT341_3*2( zDi-m3HrJ<{)PoLdOHBs#S+)j4G=Gy*%>|azb9~V7=t3k!^|oiO;DJ=BW| z%guAtRu|ddA7f1>sE$rwsWCY&P&!AjXfWR}(1#YI)ttzKZDH<(#mVxc)pcaU(hKczfpF<;Fo#tQvWO1Yw9g)``L4&CI0;P@CPs$r~F(To=T z?l%4HeVm1hJpIHno85hO-@Hv}p+Tjxz+ulv(nhprK#3~c^HMCsr>T}n1077Cr0+2) zSyVIyt)>#hISfKPHAXQN9JNIz3R3?g+@OIRmzk{x%(oi&m<*0@aPK%^Ay+y5@B+2f zSq|Sj;O5~wlvIO9TIY~vWrimqg_1IjdW4cg!%Fa@oYC0g%%cW*pmF!c$1JR@u{u}f z*3}**eZcYqkB}Zo+`IK5)$>*6XKM`hO{%s>5XcM%Id&^yavWd;8jBB}qTfBBcW;Y} zmo~6UkMsS%{4QeD;qu>lnzRbqk%}u8*bJ^BvOP-aGLyQBA=Vh&>~k=BnKR25Ie+>o zu6N+-xyo>->-Z_`gSiY!99|_d$`Fe!m(LhPdT_9Gu}OL93%vB$8HB9xM}PfYyn)6u=T39xq0<~3Z1ch9H8v^_Qdw;tFw7+n=IG3eEJkgRprAw zwA|l#Ik~zFJWSGw10~*^O@aPMyc4G9CT>d0wKzH-T>JI z%Qnd@1;sZQczgIhENTvwvdw0^&v2kqYs{h=3Em_`7%7Ij2w|Th4jGjdtT02*JiKxp zE0P*5D5$sog(a!PuE6y=CRmzm`g104b*!WW=A-O8ZU4z2zQ+NUs6}RCak_>AYqE~Zdb%GQ$NNgD?cG1Ez z1Kpz>>1cI_D9b1&K2zI7Q$u1`MKuI=7UMbz!6ajvTa>K~ErS8zt58j3h(S~DvkQYv zM-qa%rAY1IujDrJ6lEF)O~sh6O|CY44PIhXNH z9BxL(tS(fk4;Ahlcj(y)m!C?B5BvP;eTCZD7Ei7R9PgAkxL$BkwdkCKTo0JvgMnq? z#1gGum!agb`uGxz3*NqQk0&0kV3n5WesoAaJ|tc!kxv&%ry*)`m$H+x9?fF5Rv23z zak!!sG^NL)Fp%13rM|`iq*uoGfzVB4J0l-NOyY>r zVni`6p+qed{TNBlD9J4XQUcGTBoZpNO_WsFKfZ%pNm*Wc1hWXZzJCivouz&#A*(i} z$7b=nF2{o-@_|Hku8ye}sIpCEc82{sH`(01$NI`VtMgBCc(g|nOpp@^P4QV>TW7F; z!be*Z9{=JDR{j95zkQpa*yZ`BAI9Atv6nC~LI+bzA{HZ0bk2-AMzRiVG4^VH< z@!|M@QXyz)i|ih4Qg2pSTwP~x?;4gnL#=$4L(!oshN!O1_34OWP{vXX>`Mb?8x34{ znVlnvmh&-MeTtPY;Cai$Q=iuA7M--9GpO^}YJpj;^3g}zjQxa-Ig3`k%rLa*99^Nc zoYQW9n$Dd*rI{)FJ3aPe!DqhoA~Ur%fA+oC`Sj%lp1$w|uYUah@RN78`1JE%=lQ3a z{P?f`hI@VZ!h`2A42`#UuW;PG#nVfV^U&%Gym9Ak!u$wnB2m}|8w+hFk;+l{KCQ6H z18ZmLRHwZ6$__!|apsgod+lLLdd{2QdyD?wm}h_IX-cBTt$XiLG7ajOG}M5+sv(tX z>~9{jbNw0{4?jqKWtQH~CZjZCePxwZ&ET!=o80RRxsX@5P^-~+*^jxnx=L#Xe(;m`sMP9w z@$=8J^YK*<-Z*4w@eIn`20PvXd%wJnb`F01*}qM1knqYo-)DJlk;fa4aznX6Z!<@7 z>&%|2G5gRZwm!bY&b!yCHmf}Q!jq`9_|6~wA&0)tum9Tfteic=o3CEsqr)MmHx$k~ z7GZvxaM?vZ>~Q#ggg-B{xLD%+=|?Goln-vbj!92x2b&SI!es4Klkm9U zBpe|xJ2=uJ+}I=thpeA_ggi94cKs@aW%JM@iwyc6{=E*ulo0h6N-)6y6kV`=>|^RV z)rw7Dh4^R-)iIc_)yT7e&7%oYv&^h+kSY`UYD&Yc5=t4s!Mh0$jj4&c9v4Lcm#4`$NERj!3j0gKbj9Od4Qc8HifO1sE?L|aN zgw>FlCK75;qGlQlr7qL$2r4yNs}(|Jo6(6%BR4Tnm^cYy8l%|`(`?qxJ(=L; z2AL>f1fZ)Su98z8JEW>d+EU2|CUST{=2S5%22N7oPE@=cnlm<2cR)JPs0om4gYn2m ztC-;C#7fFA_b6*6M4F>IeWZP#BAy|sSV(T4Ad!%46Fv8tdKtNG(~KiJxl1fTHF1#2 zA^t!jQeuiwB5k#?(hi+4BvUn%EF-lu1}@~WK%1G6PgHUY0xd=xspN)>kiqYjNb7YJ zkfL1sJGa-PTg4_oq%yG>ENtP)W0-pd$wGeKGEg-QV3BgGUVjqN&VaFzYH6e&XnxToOf^T>< zVzympI`9~ULli}(CQ?>vO`dAO zxlW}PGoNdCg^TBB;c4vu8ABy)}L|?xC5-oOKoMY7OSk zT1@vg*}fH{oc|2vvo0&y`=m#6{B*F+V*8Mls>+@#@O>Mv3GrZvY9`#xT4-^JryrN; zcZa8OX^uJY*eC2sHUb9nsYQb{IuYS5`LkhW;9G_hg{ z&(E0}WAI{ZPEl*BbnH#S?F=iHk=7Kfv`Iel2$Ly7)lgIwsYuaPmGLNKgvz`Y5{xyf z8&F%Ra_hA{27_a&^;w+8BKSRqSwOA2K-@iKH_n*V64J~db}F1(n%3>od&{sn?p!wrcoMOnjITjmPB1$DF#f%>2xkc<1WJ z9AAH(89V2R$1gJxpXTn*enB9=jI;h3N=v7iv3o>^4tKXU>E7x)vDZ7ZMJ^# z8XL_u=AXF0xIbd^R)$p*X z<`p(?zs->?^LIY|Rc_thRk>+kf~MJo(aDzV^Z+m~w?*zH^nkC-+!h+2EOn&Qtgkes%3C z{Z!-f>2oxf+jI|p!qxpDkDhvo@~p<@JMUvFCJXBo?j83TsI#ovWok1Kg^<|WfzII_ zDpf(PwnDj?b8s{v7>uc%n_+IH%JzE`4!5?btyfrFTVpipvEK=?J&nbcf?-;vI0~uG zfl{jR@z#(!0qYk|;f_=Gj_%=l9v9b7QJ<^f?(NYT`)G|7CMh(9g04#Rk^@Sy&TRDz z{WKxl-NT**QJP~gF7O8vl(I%yF;K#ojwC2+Di$iC@CXyg6PYYisFYIVN(m{n3C1@V zBq8&251`c&!re_IyNWPW@{vzhA2I8gSfx3#L}uK(ho304N+#7>lf9rv(luC8O%hFI z+Z*Ggg6e#gd^BX-Nl;rc6{CXeDx^t@g-zo4$Rfl{1QIU8OobxHvJ=9%ifOn^q7com zl8J&+BO@3Iim1RS`Q)0!cp?y06`LHt$cd&tGxi*z7!YPU+R+rVVlu5|SSK-oQpIdQ zo_qKw8l^-d)-(1h33G`FkxHs$q+x_4GHgpB58Fh=0g^3Hl3DyDL(xJs3^WuBk&*-k zsccYDW!yYOitp!^gk>SDl%Nw685#|tI;H-;;=<3BoF4>fldg3{3`EW*QV! zbeUWZ2nvlk!^e$f#<7lLgPzDFs!Wj;NLfZAvN^Rf!@GC-X!8ALcs|+pO91PW zYk|*9W>ZKu(_~COolq1CqG{3AnuOC1<8X{# zE>lP2I5T*lS>~rV?@=>!D#-LAm0>26;4&+~vZYU|12XCy;tdmyTmx%XVZB`??M?aM zV4Fp`hVo*AlfgFGTSE@(Hq}KP?c+T{U7v)Ml%A zT8(C56RQ#JAYe|Kavao%EfX_~m~#&~nQ;i^)3oCrHD^p^<}~cf>`um{a~ZRRg=GXB zj)xebVCM80ypqSk2fH+bh{nTn@x~u4B2F?NUSLph9bs4@Nud+X|9uGHno<5 zZYNAfWAfA>Refqv9mTxg1tPi$t`TEtB??8xup*2}&Jh`UtYfAHB?ZE|!8A2XByas=da{1CV4I)?iB4ozTk#>lKZ{ zY;hQ+nCXbRWfLS0IXxJq_>soha~ire&xd#Jk#0|UBi^<$XF)165CX_S9Kgjdfo6+3O6p zdOULW9L;vf(T+w?+@{%DM5(wjlMYs6pFMb)V zHqXEM_79jTU*I3T_%Oe^`6mDV=U4gMGcWM>fBgym;Je@F&W}Iji;sSR!k*>hTUV$o zTh!}o9B+H5#UYVtQ*XmK2Aw9po$|p4*EnCTaCYM?qq;=2=X34Ghoo7-a}Rum#f2*O zw(s)x_Jr1OO6A-fQ#C~`ES!ObQ43jWE;3D3Iv-xgcSlsuo#Vp%Ebm^~2xP;Q1O2Q|7}fBPO$g$Ddmx=nQ!Gop(7?HMsEfQ}pAQ ztMB{_qZIJMh36Otg1dto=uwJXSwX2K99=zNPG4p5#T9a0=El#D*?Qv|)>)lzeB(4amhj&o$LAsAN_PC&0?5Pl!1#PF!@K%SDWQWy_HWyYOVehEN z)`#!nPkh$TKTNY!Wjfwu??h0atzfk@PPXqsXH04CJk>>u?)DDBWW?#qXP9;)j<>cb zU!1{G4LVyL94$bvt`hnJT^f*u37%r%7ZDq&iP5ewbQ3o3US)CS9IFr4aCeXJ4pQXS zJjepPLzoo^8gzRT)Fh-i-=dOgbVi%R2Fz$pLeJtP-o|hQE!`oEBqkz8No1UGhOsyx z3vx_NN7G9vQ9$T4n08~bEWw!rE0XC266Lmol8otgN9049_LB<)(h<>}kix0coU0J0 zJw!6b)>NWE#*<6v?HI!qxSmI-SEyGCGBIE@&JkV<$qwo00wuQ56Ax97(aJXcVNRu| z;Z-~uZ4K!}VP6>{rxvP|5@!;omSGzz?ihk%OfxSNY8h!!Lh>Iy*wiwsTlQ)JhI7c7ukoYuOQhvW#QtET%=5(R#nIp zicF?xxQr4oCmN~>enmx_s9?+F!bcf^UlfR%f~LxhjzUU)hG>H#9iu*7|QjYPl% zgV2(3d@y5~v7V7wF=iqY#|eg(QI%tQp+b^XF!T&L^{C1+x={WV9rsUZ~{tfGDs~ zLWns0+nfVsCk9!Celmr4v zB9SCCNkWkzi6PBEXdo2@2^u*ml9UoACQ2@2XfatLlM6m!6Q;;%N}OwCd5)4op#iys z_{u;3XWuf$1tlZLs+de775p(_SWu(}&8kdh%4Cv)n0Umgj9lcT6`fLM;!Y+glEhqj zg=spbHymSDWDH^9g(ZqK;lfOrcX#fgE=lYSYNTTWz1pQ&F$hKmMNp8NGLrC6H6JZ8 zk;*cuFO&BmYwE0~0UvLU=~q>rYo;9bEjm&{E!t*qkfCXpm^p1Q?O$WEUuMTYg_Ld4 zu21PnXP8VqydWo4Csb^o(WH#L+M;CZ(A%Wj*T|7MyELRLx7oax(jMI-X)GYw3jMUl zz!fy@oN7&{(P}Y095EUmvvR3IrYjV?f@jNubk66>xPmAuX#NS>Vn#_>r`ziiPx_c< z8K>Dq5?u!S6CACIvoVhdB=+{k>D;|RbKRm` zJHvExLOOIQRSiTBlHX zDO7iuS-3z*mE+yF$x??#wuG4NQ8`sb+L`6lND**p3vZ`^r@?%L}li#PYagM+D&A-cAKlvU%`sEv(edtR(v$n*Y zciv@OmN~m{hTIzQ6bo3bSU%sn?FZMWL6f|n5}0dC7F|`!ub84kY*|yUwDkFlyU3TcTg7_JauM)iR{xI zjwmzq9|kpmyeYPA|lm5C!Sh6$2WfGiyR*M{NUA}Qn4IfeCZ) zFaMlrG3AM`Jj-%pjw?U@EBeD-<{x~FYHfzeNrFymh!vlJui``nGkR*sDw5-Q4P0*B_#nvg@JY=x&G>lv(6(J!8&NM(ONyxJrvR7crC4%uC`~XCIiRE^a!-HF> zk%?9{$kL3s7-NVOxw3(#$qYWc!C1;^&un0=&2V`04vZ!AMjJc!7!ctV2@95n@5<~= zCOFL&vxY@F?&D_~M%@Fij!#TER1wt}e=3vcGLD{LWDrUXVr4>kl;CR#a<#@Z_Zf@} zT2hK{`v_N1mU0py5sfqSl1h@B6y})7%g}-WxweGlC}>GQ>XneH5vqO2^w^{%RFXDC z6A2~FQKArGI*g)%ihuucO^ODJ4wRWvmqvT~%XOp*tPAS5Zu1Wtg~(aDk@hu0Bfyp|R5GMQ!;@W% zOrTOFrcaoJEZZj2ETI?4NMV6($oRsA%s|T=Bq=0}WsHVQ7~Y3Pm)aSF;~XK%)J>PX zpW#Y13^hd4LcGXCL@J>+!qjX=6P0$&g;1khtMb5Vi@Wb4tQ*6yblN1U? zBhIJjnar7)GOzFMGH@*t5-i!HiHfXh6k5UE0Q6{^YNF9s)~GI~5N5=#LND%6N@8mB z7wFbqrmx;cnCH-*tdMWtW%oFxzIc}0uqYpVfYVr@Bb6}rZlfm4^qUff-DPw~e^&={lk99HI2yu#wxQ(4T1>=z1YFv}@xkAqPe)o7y< zASo{RIs2Z5=G17}F#$f+wRsR0;mteP>Ky#@2^4^Ge;^5XTdLm|NBID}{Be~C+wKbek z!Uwx!(y~N(sv#Q|51n16dw9slH}+8qnR6E}G21Bk@WXA2VoFIEBofpt1F_hkw>`!0 zmzbY#GbrvM34>X;PADIvm;nVPLMvsdQlV67^YQNcjE=fE^XF*R*9lHS;?V)cOb=tp zW+q){JW)C7+(M~#C>b@%#xpSJvpf9-LSMq#Sm*KejNaiaKmO$%CewHL$}^v#ygJAJ z$&}9R0ke;(WY$^UdHLs@uJ$;0`RlxW7}3A;Jsw=Th|y}3NkcBqED`it{PC;*0oj%K zr(b&(X`#-a{JX#4YW%RgY?Z_`|SjNL2S zD9Mm>r#{8{(it}QUgKnIjI**%5l+ab6H2F+iOaKi$32W7BO2ydvkflQEcPRxts@uB z?^0fv$DXSZ-0YHPO`3BxCfS(7u)wx#HkuBTxf))aGPrS_?am47m*@C9Pkx52w?h8< z=f6M{D!={GZ(>#E_=CUvUpd-89f(cm^Nx$dio)XlOx`H`+e41PvMU;{2E-?SmoM}KOhLkeED-P;guWw^n2e!=n*CD zDdw6E9dDmOoN&h3pj2)1&el83$|Wv5{V*SNci4aPI*X-6mM^y`H%z+wDc5ekMOvBV zOAlWr(FXi{^8`7C`Nk}Z3nqIf8CRKdX>oj$S7p)mU4ZL$xIKJ(uEW#N4TMbXBK&xR0A8tT$H}J7wJ4*C^LC%-S;B+Y_9y z!^*kSpLHC^ZJMfAAS;B*O}bC zP3SmO)fRDoh)^>E-M}bplHibzE?6$N5#EIT$R#yYY)gl!PG8Q^Qiavp5=SQ|?4$!K z<_rsFjgjI~7cGW^K4BP9sg<$Jn4__T({w2N5`*4=I8td}s(`G}-|8bvCiQul%!2Vj zA49WA6pL8)vGp>6)u}NVAOX5M~MQza?Z4s7O{o zE)=p;dvsuXfq~jw=`#Dw!IyuE`wr zb567ljjTbe%NSYAjvAqa0!ywiav~%Jq!=`0BwHnzWCS@VPJ!;}V5k^z%s944>;Ti# z$dZ7u?I7X_n$Vc!8g)jfnN5_L*xCpm6D2D!9moO|G)Te_AtgjY5IImCLSkr$l8bjo z!>Ps?hQLoGA}Im^rUrflTIAzsA-^GP*Q;?DddTdoLD4^j7-e^@BOi&L5`dY^5T;)Rt(~|{^9R_ zE6^om#UVJEl1Kr%WuWOYg>Dc>F~uN3t|}CXN+G7GMT|F!&=rlwOcmmSqs|GslT)iy zh<%k{k|J9YrWUbLtMh}qJ;vP-M;~LhAoXU@#t}zFLZ#F}bPGnhgHw}GvkGPkhd~Ds z#bky&9b=0cG`@1(mm08X-;` z>DM_L%P4As-#fsQ1N3qQAxR{z$BmLf?NH(I^Ab_Z;L6(`^Cqk|3nnyCoC+d#$;XE{ z>jp6vJ6C0@fy?@%eL9lC@o15Ar3ocHU^lIxoa9*22&dG>oOjqfIYt@{aq4a6PtTK+ zvih9=NNh!vUEVLDKV9o$nubQ zdq`lx(wSxa5d?cZy47RqejD3aK&gay?h$TZqF#5@$NQ+>9Pwlxsa~+M>>-V&T-#j44~|)07%;o^2)6?;j*n4=%3j*R&O_E} z=NM#D7Hu2DP?$(VhTRh3)=lOgY|&ge&o96KCegtTpZ~9a57jF8t5^Ptvrdi7T<5sd zWKq$%cjFB<2RUE+@{24sTKuaY{9E+=A%6R7pW$TuGCz4`%oC43$>&~N{L#(bk<*Zj8frq`&YL}1`}EjT|!B7j&9yVr=YyDh#7dCpI>8FC|vpR z%NXW7U-|6kkUf__{LB9v$zq(8w+~BqE?K184c<{MPJhAZ{*I)TQZw&76 z%;n3p)EWm_z~WMc!Tvr!c=v}qyYYD*YL&PhZKL=piw|tDH<)n!wO5#5TjBXneUaNY zZ_v@UxV&_piI?%KyVtpJy3O4DV+@8ny!q#Eu(sOf*M8#}($wKQul$(IJK-OE{i_`2 z1HSuje$LXu3}65JB__7Qm7nab`lfs_}2?aNGEnZNjhKcys%dFaxYkrv7%2RjU} z-A1cftXw)ne`2vaJtCjp!%=Nid6rxaS+1^PmUV89u94h3q;0OFFSTe_6((7S-IFo( z#GrM?rt5aet`BHDvW6$c9QQjc37g77gTr3PWE$Zr9oqI1wW@-*Jz=Z~M7c^n>QN*n zhME(|_mNiZa)smLE^fR>(X22#v&^J3Wja0}klM_z3*>l&Kgbb^AW2eGyG-o5h%m-6 zEvB;qrJqujOg#UPspVl$m(k{R(&09-o1;2aEK4AHE<}Bb`DMyR75BqU`q2r^ix-%! z>D;+PAsIGCGC?vcq)`I-31-wHH%cVJLy0o$GX#bJ36UZR z2HCVI%95*mq2h%om0jg3(6W6Ym*lcs<)A8>MNt8w#Uuo%N$rp_GT{lRR)Jb72mzT4;alWdj3HE%Fu@Z7M-^mD$a9&(u7m1vG|DMbkDB4& zrGngYsU{}Ah)E(9I|nI)6HTL;`eY-O+%6EhgF#F`10&aH*gk_$JpH!SGIA_(wZOn5 z)HI?As4ARVta56h#U~H@=(>cWKpY5Up&%2JOA6B8G_VvjB3UL)LTsUs%8UB`C;{bBkQdpAtx8K*a=3q3MgyRlgJfTsUL6Kn^=EO22xlc6)Q7yAxvU%&{Cpbn%&8ZR> z8hOd57b%pdL$X5P)n_S75m`1OnmUA~oaHzp(M*nV30ZQn@&>6bVOc)OM-O3cgG#N% zq<4=vsxYw>f_R^W+(FWo=o)>xA10K{1}o1V5oc|NyDFM>j5V)OlAG+`o1$A|^oGT5 zw}slDAX>@OK0`LQSSBho*5*~h@d+p6CiSHy?8CbZ z-H_JWEc4k62U!oPD^Z4X1MyW#j@e>Bp2zzOchF&I+LO{?vFj15d zmG%tN#3G1qv!L0G0-b)8GEZ#C1VTtq9H4j#wbfPRip5~- zfG|0xJa17-%1mUPG@6hmf<%sylo6-um)Rd=Jc(~nPU|@FI!ak$b`c(SVzRv_EG`&~ z`!-v>0naQoSP*TxEkWEJp=@o@vnnv(v5MVv@l2I!VUzbGj>a8oGZORiJi{QN zy?C0oCGqZ$zC}$oc;Uqth*FJ698uiqk<=xY*De!`683icAWf;wd(5cwc#}o?2iNHZ zk5G&?PCt8@g%aHQZijc@-{o{8V)OC_qM{$Hu zcm9-DUVffmee*YY>-*o~M}PEnE?m9L)#rYi!`>Y{KVfOL#ohNlCK?1h^YWLd)T-RO zew~qUId}CMwNl3Jr+4s&D%H~x8;*{(SmWV|PWRCb8nr4~X&EILFbE|ovV%ISvAzA6 zN^^$AnL5Y46L#+mxKLX{DFd;?{Bo0QXUGqJ@QCvBO`d(_v-G=1y!E}Wu{yKPKmPJB zpe~pApMLkBVQVe^&Wo3McQT>(@ivRjI{N99w$Y@bBn-WqOit$5+V3%nTt0j4RjxjB ziEn-LM+}1=&H6ICA8d2#l{zo~#1+2%_K(=UcazO8yvq6NX-=LzX1{ns(W|hrw91|M zCaT=vg;!3~??v4I@q5&38fULuqPyp@yZwl{)3Y>MO`?94e)fRDFrg^V^6KIeQZV72 zn>Q%U&hk?i&QQ1sH+r{Fnih+dHN0>_zq^g4wP`vH_TmuDkJxAna($7)pK`Z5A&bVm zRGlN)$hiF=pzg;sS7*swiC%w#S&^{95?-pKXaTcJ8p+h+uoUoeVtJS*U|*@7%%FP=~pIxTIL(Xh+FJ;bOsshyg`x<90AN+_YAA9t~84Vs$I zQ6eLa>Xd6fgF!?b#WWWxsJ6!FMu2WYb*73}5rl^m@*ttES$L8{QJBZlP%-b@ zB@*8wsA)8ngd{WxI)|7wiTX^PWEA74PnBhgq$7opX(7U}P(~FLdzWDn5#YBDDd5Nv>w(aZHYhrs}AAh986oLr0n@BvpfK zI-#n^jGZc}DFCTJ%*7zH5$dkSeDGtwKh;THCMovkbECeScEx9sf?-Vg@{_7wOS zh%z}oN|8fm5=j#hc|tx`F%%0$uVCvcg+Jyv8c{-`Y*mr+Iz8V-A);m|B)Y<6EOVjl z@WZ1gn5spF#MB!iMH3XMK*d2WREqKxRWFeT0)INd7`ezROBhOsl@ugd!WI)0-=~=w zsB;T+M@J;ekcxGRq#vQE18Q=cLC2wJZj&anC~`_{`B?fUni$ZJ$7sD2yKI2upl1cs z@t7hvX;yQ>ss(96?<8Y1wRpB!aIYkg4s8~a4mZXjl3$@D$HbAw(yWZND|vb z=#81*h?tNvKAEMxC{tAfVqI{Oj!{phoISHj-4g7F5$>H`@`lXW3$x_9%E^`wVv3P! z6mga1Wu3^HvUhOEV(L(xouQk1SbjiSYNA^)Q7EH_6BKQVUSB3kB=WFk)daa|l6VP~YK>9eq1zeo^2}u_PLn(1ZTyMP_+Xd0(>1Q0d5!+m z<;KU~CJteK_E}IONIGQJJepQ!v~!=U^I>XaOrp!f3Wc#c7i5 z_2>>Ggeqg#3e4Q3&|9eW3H!HqIoR#+lb?Ntl~d<=`@K&&I2`iY*#@HOFmPppqbZYg zK;5WNbI!4!?l7A4X;o$swUpTR=yoj*x*qk-h%@zhhT(v%`**09SE*FbQ-poO?1*HL za~!QO)6A$eMtEZj-%v2Jh*fKrgDBT<{@`E!G5_)Uclk%Z_7Avv>IMGd-G9q@V}+$NW!}H} zKC5TnWcF-{umA2JGEPHY|H)TS0a1-Py1R>2X<)B6IkiRs7o_OpX?XVzBR%<4%W;2a* z8lx#{#bA4yQHciBn(HJ84)>psi9Vt@OSNoZYYHPnVm#k^5d6D0{!IH9oX%r2BU?hkP%Q4)&Q}aWM53qoX4x zYJhGxS!kGKq0hmvgIQ>3!oigigzsZ1F@bG?m6Q28B9O?mDQ@7C>m^LBf~j-}EDOVR z2-JjXoZ@K%(%M;Ca+7}lCf?&7mCNh27HW+49@E{`S$}Q?Mb_E5eV^16%rBfG2*$W4 z9`a&^rFO#jZp6eLk=N#N<_wbYh{0hOO|78MYg9dhf!Akj$q38ADh$$rho9sWEfW!g zHw{s9&{Y`&K_o(ys6bB>rizS*ftBm{s)BMdK(6KV!YU$*Dccd#&?J>|q=8RTYhj8E zKlD+hfJBt=bQN=wU=RAJjTt6FqEXLC+yu9m(XLxWB|#ATq?w8q2jpp;XeL9%9*p{c zK~}RNHOR6tW)|Y>I=Q7_^aE5&2ggBi`*dA{QdK6=C#ac2m6Qk-H`9@f3`2j4T9AOL zZIHwh?ARu*s}xB>K30jMfZVb$6hV@?*ttMtGKr}}CNPyDzOR$0RVqrKK?4kbJxBZ(B#P?2KD z#8cZ!7=WTnkV{XW@;9qMn;c(Kkx~IlPA&(?*hq3g5(lKJf)eKxnu?rDNP2=e{}W&N z>YUc*?0TJv`;Y@qqAcr_?1a#VATFV38K?=_Fd2&*|Id5k%>87nr~+zHX1h8_e|&RH0`!`^L= zY#OjS8xrJYIPSE4bwHd;q%B>%6QL}u?R%iBJKX zDQ=i!&MhKz3AZ;T%O7L7^E6JKLY+(4x%rSJc4;^Y4RaGePsq|Krl_;$dgSSt({qb> zg~GvjAIp^J_hia7mBraILse$H8#1Tr1m!8aw??e28oYY`68Anne zuFO>^j(7OWJBKKi!G(=kMv98$9x#ePj+%%hWM*>?8F+I42~tTz*KI_QFrz^tS#&g$ zk`8h{!aE7E${Kc{ai9z-H61GT62r$Hxv**J2KV-UjE%;tm%hwNugBK(7Oj4XiZzFG zr9?i7xq0)Fblf8V03ZNKL_t&@EwjS<<|zWZPv474cRGxvedf=-%;wxI!@WB^df>9t z_qleq%F?Mhw)gj`cM3*IiO>mgW~+4ndIwu|dG?E6;?CAFH~;b*ymIXYmS0%n(?^f7 z6Ak~)Aze-7)vvsWyg%am?_S4pOrC%43}WK)(LOxhJEpyC@cFBk33>&8b?*;&>Eaol zzxt~@+4(W=y!|JvEU$2N^BHz0Ju=xw_EWYV{Se(sdE@mjvS7{f)}Q}5M;{*Y+?!Xq zcx8re_kg>1bh>-*G265`^~~!`5|8Q8L(pp2?S$PO4_&f2y<)RH>d}4B=iKH6bjRe! zTOXk05*Oz$(eXzdyT?3#?KzZK;e)??MEltVUjEWc9RBbI|IhFJDebe@_#dvF<=Be( z&;RS!m|0$8_4B7tomqCi|Cc=ScX;Nff1a$P(0jDUxi8Fu^X8+iO3`@<0joiW$e&SSJpwsvmePkhSlP0lPD>~=#&-H?{0Qj#*pv4y6n_(_h0i?CFz zLWMxb*N6Cejd|NNRCp<1mGlp_>hA`T;_gAs{UqdZrq2>YmRh{z2l zmY}XR!5R{cBeFnHO~B5{u5;4JW9Y(f_rE0{%lwlrX$_~0!5Sj+c z(FjSGNT`y^E>f%@>S$w|q`q!M#sKwlkjY};5P9Ze635O^s#j)6vio90Mk zji{WV3qdsW$Vvs8GD9XZOm~D|RuR(*nG)fYDtKao@N%+TLjbB2`qy% z`gm~_sh^Tpa`I}6aN=S6A;=D@o}wichQ5bxCWL6{S%_1}7g| zLMmi56%tRdzEI=zN`w15T_hDyWpXbBSwT_~iby8RK@}h+Aat1^5@^X&?N2NfPdj^Y zPEhD5d4ZxvfPz#=pyVjBjhy>LSwWU&h@bzv|M06>o>Hz?sWj_Mydi#?V8$kjqLJ$z ztU@R93}i>3XM$)D5-S;oW}{{rkw^&hfH;^?(G5y9i~Ui76eQGikBwHF>kk4##l;Ug zD5*fMn&{~a6>EqdWVoeOq{Cf2DM3_hB4q3+r=~^h1v)|+vsg$>l?nqz$2izSbyl!u z4bq)kOtLbm)n>lfXMa$`Podrps4Euz#3Y$?$a5LRYEf?_q~m~b9uVa!j%A|RC4#-2 zL2*o7D>K(LxivkacPO#kt`gx0!pgQjAn}$i@NvBZ;sjIIBDK;|$Si;p7J#4?`4T z5$08fl82g3SYNM@HfkunA>LugP_bEBt0AQ_Zf6A2F(bFd^4WDNvdZz^W4t_Pxs+p? z6?%$Kl9njTI-c(14Yzns-z1rt=YDsGk#~$fC|Fr4v$pvXkB^SHbK~30SPkY@UZ6A0 zi5rio$jc~_#Grh_vt@-^^#Za;@TX(OTT{|n&V@^D z(y_{TJU}iROm+t7qb@JJ{2cbu41e*#0mr-ddH&K_ma8+|9Jvg4hLkEEvupF16Tx7A zKxNIKNts9PAyF7nQkul3!rDtU%)Nm39-k03LzcrT%KRxD!{_dUPZ=p1o2BQmb)P|U z7u}u1ZY@)8saTUHH+S#QAK%5UJjaEXHfXnJ__OQpkq(YoIsF`md!L}m9`iFl%fox0 zlDWGquf0OW5_C?EIGqZPx+XvDb~!g|vA$Tt(;brg6NJ>~z`+xb#FZ>KwUU`$Zzxgr4&K6(! z{AE-z#~;7*O$t%)_g{a5CnDw6r|+}aZd01u;Nk7N)G`IFQio)Mk!mD~$;@(vsW&2g zc!E=&A*xq!VuM6Kq1%0gTvS+k<~64Nl!rh10g}_DvUr&bt1r-~&+^W<-=VuT;_8GLo0`htSE)aKR)e}#8o6SNzcM~BRvTEuQF@#8;#hx&Yz z&;8T|hW!Cgwp3EB%jxP8x@q$Lhqq9Nf-nB;i&WMHfAah9Q}|Op|MRbK-0k!3cb;(e zQi-)znWLn}Fp?ZLAqVImsDD2HxQTmgiF4JdbQE$R|hW zdXrAtV=~-jZQ~i1Dka{%c@Mka=jC&+aZ<_HzwsW1QKL4ufHdvWnLu^Ef*wFW9O7vn zHN&Ptn>NE{{L% zpsg>`TCCx9yGXr|!ZM+vVPrb4J0ikDlywYO5EbAvK&e$xWq~@72&*o5Hj?HL<{^3> z5a>Q}prQK?isKTN6zshLk!FBpp(-(DOHfE5yHkzwR6`X3d82{pMQDl7z%(fgLFE{v z5=f!S*sw802Q5k%M6;M=NV7S4r(il7VOLeEb{S9k8n4&SVBlhh38B*< zA;bzoWDB&a!q9clh9_v{8kroE#u-vwhgc<$7D^zOP34W#$RU$02PPgk(P6V+g zu;h?9v?yel(+kGPxN<=|t}rG;m^qcmr<=v(s)MPdM5auHjOKdCLPtCWHen+O3fNOq z&KVY36mxr=(XhZ0rKhzY^8}^qkO~NUw4k3CU>M|4Kv5XTGH6mk z4kU^~o~Fo>hirf(DQF2qc}^l1Xd)wv1+qwplK@S%krK%Bl)R7;+S6sB`1`-}+h6UE zhK&7VnlnpOY=`0SfbKT=oJeQOHAbe zMK59dDp@!pvu)1St9*0sCQ?VDCRC2p2vszx=mBw@(K7|aAKX=#U4W=vwa zgx@idv;^C5@zWAfFF-}GIy+B4^5}PloL(;>5`%}2$1Kk&=(a)_6dX;4#MvU}Ruo!N zmq1II1_t|aOgxD>7Z`Yv$qfUlQJ=175ii6n?;TpQER1r0EFdI3O5| zsjgLNiV_FjkWkB+aZ5ynps1RZGo6F+BSK)Mv_=#J42ye|y(;ykB?5EI&c}ziLB#p> z^RzbS2#y}I|H)%g&tc}dCW}i;NO{D;$u7gA1hrjZMJWghIEjyFrb`$~K~zo{1uE%- zo3v)znCC9CJ$S&@JD;+4YM#b(8ytFvgngKf1#z6yx;l#^=iGh&J`0s5=fCtUTR*(d zH$S@0g|ja*cez32T?}ZqevZ*-#GU)!W&Prdym0MjxzoST*MIl_qS>0` z?By$n*k*RIhC3SZ*FU&Uf5+#ApL&VUy?%=8pFZOK>vz$MDKEZw1%yq1I%IFZkC96( zU72GNkMTPxGaE}JgI)RuIjzfW8fwau8v|rL=7n?Th(f`49=}U5mUwk-lWq*t!(C2& z_8j44hZ}$V9_N1LvwZ2*tNi#I-{If>$y;3d+^_L7YYO7jdH(EQ|L=UVb;xi3##hju zy~@}B@&Cd4wKdkCxy;S$JE%^^`soT=HzM{Qyvy0wud+&s?ZjYz?=CN1xPYk5@YdJ< zlyXt#EC2P+armUqhx_-Kooyrarz|RErj;g#fk(xU=)^}<>Lo5LT;iyg^5OOms905= zz49u@J9oJI{zJ}OyUN^V6EPmKd*CuU*kb-_ol5IPp4{ET=zYXoyGGAC!$e6@_a73^ zI{30qEtpa(FEbg1nA2nATAfMmP!t}kvu(ybmrr+YF>kimIDMMQ$%sf9;nbH&nBd)h zKu^e&&&@NN2xNcC(5(=dQ;f`|>@{&5i9Hzx{fMQR4fJ+GXKx#KG^Si?Qz@?z7BR!Y zE@ipF;%O82q|0GP(AFv_N=8_c@#74G2_67fK{uX9=h5F(Q>B$amu93HG zF+-o> zcEngoFq$%!=AddJes9DeDX5rp=rtK52T6Ort&-Rcb~|n5!gKfgmRHHLN&8t|Tb3&U9j+Xc?wv5qo1wGzg6V zDU*rND2#-99O71Vio8G?%lKwUNqy=JbbW)0Z4eQV#5PipB18sSfflHERsoryocZh* zPjQ=$h|z_G)XUf#^)coxPBlw}$10sPMlmC_EFsI97;=PXWEinQCVL1HObilP!A*3u z1RO0Smm$ikOvQjA5-5>`Wc#F%$=Hu+xCy@DAPgDG9@^MINpyOeft{HcnU5Tic3@C|lf@{OK+X-)FeY+5L}B2`P|Gzu5h1jM(~iTLwOQ`%btwucWEo46$nt_T z$|#H!J=e$-nIg%Mi-=4%&=s9D&hQciJ&Vy*NXd{9q^W|TX`~{43K&&#h*T0$prr!w zGk^EDzG@me;WQ+0$JFXA45`I#|1oOfq7-G!szV`1#9m4sXBg##JhPF)45=a`%M$7^ z1*0I4Yox~`RAow|RbdKMBL_Vi7@|bW-MOv;?F-G+EV4SA37VFeahogRo(1*yb zPRS~8oEk@IK)5qTn`t5!A%q!;Sz+W2ajJsZdWCzp4molYK7Vlu9N0hV(d~~J#wuqQ zOj=b7e_F7;-Dg+NIlT-`vr4Cz;uSEQW_08l12Lj~c#Livc$GH8qQdO>fSNR6Qj_Q$ z2=q9ky*`8RyYzyP(sC75ipkw6mOhWyu$gR~Fk@zv=G$ndMY_L7r|UA`E)&<=)QbWy zIK({;k+qPSmFKBD8q?lG?(TFc%^0j%4fgB;;)F&v!%6ap>Ewh9<{G&^ho2n~MH8Y< zOmn`*^P3yo?~b^4=N>ByIdXoQ{`Lsb-eqlml_Fhc5*;zxyUXOb!s7WkuAH4C=uG&F z>rb$%5$6}%v|Cj=iC}p9m=oWiwVbiAFh?Q_+=ut+sDio)*6 zSW)Zvo=K(#ROAVAQbL(qAkR+N9es!)UE%!dMJOF{d@x~eDf9=uOPBboZ+(Z! z@d=w}&(V6WO6SG^c`VaB>)`uSEI+0>H$$A~^s}5&5aRX5j6{X%T%EF(aQnj@R9)uT z=bq(YlCkyak1%YNO1nj~q|m<7rh7N!$@lh{JFRo>`8Oy^694>v{4It~oB!q4zQDq@ z*Z3E|^G|scD*Wn|mvLUY%H10`IM~`oaby2Asx$Qt@XQkPzF;D{WcfU$84bDTqSmUo z(;Vy2rBq5NYC2(TlZq1Utk0G=Mk_lkH0w;gArJQgTFqtFS1N2hc*sfQb7kowQetpx z_W`1;vU%k+*{;v6Pd=vFuvocxm2h%`duILPgp-%?SK5keqo5&9tK5D&Z7#>j?*QI6ENk+g)|lF>3qG8NtADQnL!Q;J*? z(*__JMVRH3NI0m4jNO^y*6IYAKolXFnW6M;#tks=F~S^gVuKUYt{IHtgd*|@v>Yi` z(6kDgRp7aODtX4JF^?8xB=ix*EQ*m4DIue+F^yRhTQ4~7NoXYEdT5r9{S05(-1Zj5CrVeo9}@HL}np&kZmPge>sF1j8`Ul86%{!g67C zW}eNp2Df(lD2jk6B29A?O9ELU^Ds^v6DX zx5vn}n6$D?TeT^wUDzAb9UHXQR;kx>g5xQJ(TGwdr(LfxLdPE3ShmBVaY%ZSaiLZs zYb^1|Kg4s7h{g)_*%D`0FK|3f*t-8+bghJ{twE`vUbmUI%G~Yk(a)w--4Gyj)?wru9NL*ey%j2#>XX^=7t4>j9&CkND}I`2q($kMI29 zpYYi)yv}dDe2uNS7GL{Ue~1(BvOIqk(RMhymN3(3@L+q$`#*fZ`O*xRUO3O~gNXf| z9ZIRn+0zXY&E#v-jL<|5bJcEqoT_G zQOfh`2xqB@8(CzBeT=+JP*KUkLmF)h-L$gF5#s`~xqxhUNZnbZI$!6`@e@P_r<^u{1HIk=;pPb4V6nA8 zVS4Q4Q^MVpN+YLa8uT6;NJ^QR^HoN>_i;xhnk}8OA&7IGtSsPUNEY?5YAtGQozck& zq0k9wP!=JfH$aqhLaB_ZTD05=Q#T|p6&STLYHZ>S!S*vUa{{G0iVFJvgg8mi3=@5$ zgrGzGLCm(9GrQWP2qcU!!NlR)7?7z_Fny3{+96q^!6q zPQ_Iug%d)6#10_~U~JUqv{j!qSm zDDw$O5ORaW56LYDwa7^76|AvYek$QvI<}M}3qBWailxs`ge{O`3MLc-fhg9fwiR4C#U-Jf zi%dKT6_>0IrL!`qb0R&*?TI*D3vC9-a}upWq$mh^h7@KsD~nBRYHpcCYgg|PjD;+b&~TWhf)^M)OF(6At52JPLO9ZQ3kOlVu=}| zTOd_icwUGtjff?kiJ##KDryd@q@y?;08xqZqX?K>8+AZes2>0*|3Ke_7#8yB|Wag1f zst0IpOeUll)jC3vGaDRI>(q#p8dL8aAq=_NYVwVb`zS?9q9%w=fGR99KZ}Um6U;4> zB68?P3ZD3s-h4vUsIscdObnHsF;vqKlY+cjCs9HQFUK3Gq{|Z$&!Ff>bg$YhEo{&` zdCItd2*MRQ`kX-5NJERfG$NY_n4(4~i%3dN5M^kUkczRy;Ov0CvBzg_ZlE`1wjUm{ zKaZ%{i!5|vbX{Z~YV>9!yacWFb&IpTyJY(Tfl|<^Epz$ObxtlWc)a}%O?8V(Y;aikEUo0Mt<>=c z3VY)Tlii01s>-cvuh4GR@h4BX_udiHaKL9?SVJ+d^Wb1gdNHKBSfkXAC{=3s=PoDH zKDOjwC<9M?j~>%r{Vd(G!_&ua^U;~l#+7R< zw%f$s0ljm0|H5bKYRKzrbw1va8F0=*V;NB`c>G{aQeDCnV&qYV+1;S4%ZyLH&z*-p z8@E=teRYAI$NLP!J9HZ_u(o=Oy$^Qz7r*=hqgi`su&QfB)b99p3)oA%FAde~M>b z{0v|Jm)~Y?xjgr0EQAxAsV^XR6yi}p^yrlE#Y?=9Bb#P)Z(XI_sj#~noH)nWNc| zq$sc#Oq^+zY<7wp0^KF-z{NwuC=5b(A7u_)YvYbYR5B#VXFdtYM3YLRimntq9`>on z7PU2%f!E_`-s9Tx7VXL^cRqZZeqH3xzW5sR-JG{~-=?KYtlxeSEmYY5;C)2hrnPm8 z&TP)EJ0XuiS4~9Qg8q!iFGy=mY|A4a&Ilw6N6PRMNEIJ7mnno4HwrQGI+7ETL^*=% zBFhqUMZzVdtX2qPpF+<`a~~-Z$n}g&x6r3Cc`;yAI8>qv)+j_+hH0Q8s1Z?`k+^j* z`q+j+6e_qg5zPtlZHJOLM@US32|@x4OmZb4R}|E9kI-x&TRPdKhg3);%MNKGG8s-N zIVO&f(NAL}rH&;Iv4ttap+luoU@1EDVL-2>Q<4(&EXT`3N=S^vm`D^M6Um%}R!}fg z%6Qof!;+}@F>Y>=CK+=>qdrSWG6g-4@s$`t6-)9NW-;YVK|sM%BvjGG5_N{Th!hm4 zjs#{x7D;415v65e6Eb#lCh?5UszX^eIXx5*>?tZCP0eIhn4b(w?i^ck2_*|Naj+^X zhuIJ#&CxRpO$SiOQ%ItO6dlV7DM*>m1$;Tj@>O(8z;{DZTS4~$9gLb6yvMMT#f`iY0`#Ux?{oS3C*gKMjG_IC$}kw7SeY=E3Xs>p5#~9$ zJjZht^i<;7LXEw_j375qiI`U-gu?_g4G?QJGDD{t#-zfGfuJ!7L+mWTs$2%4AnTu# zNmVil>gFjzVv$TM$l^JPuc4MRa#_R+a$+fGNm2=rh@wLRwZk$cCXImTLS}Y8q*Kc2 zZe5~xa?WVtakWz=$#NbZPT6ReP+KB$ZgYCJ!_i5|?PoUFs9Bs8IY&F^B(pKy1qZ|I z;*LY)A6{SruE%@$aMwXgXN_E0?#_rh> zrMb=339Q^P;!z`lxe2L{+m03^1n;)TRB5Hk|Qc0m4?{ac+!I`UY<++2BoVnG4xKkIDa2I zZc#X8Jjr08eoCWga_$zmM8u~Fu^&Q5rPk3|W`%?P2@m!k(Oqe9`^sfTamq&@JVYzc zX*Wu=D|Pg=OE9|Nqu>ywq;P4zfTZe#)r|4^glQmBzFfy1Pw0g*B_m<%1?YlJ)wU7j zkR&&lj(bdFk2Tw(R9<1`N5oDKEpDPGI$>!K#wm$WXQ{e~T4Wp@AENkUsjQC^6-7`?~XEwggtIXayZ!RceZ|LBO4RA+h9#4_s?lE(4*2ke|Zrn-5H zjm-v18ZsRSq{Ez}-90Y7)!_yvX3j)m*lasxWli`5XO^I8rE6nvNe|q;Jo!DgS<;#rwE~E1d^}31Z zjW~K|hOxBB%C!p8e$12JE}~N5%4(NrJY~NhA9RJgyJFg=&}$uB<3;-xzO@ZWrkoj*L`M}G7+uQY1xP7^+S>mzPntzoyW@SVHw zvbAKfwX(>`{SoE0fJ@TN#;o|r zxs2?N@J$KLSVxt|2$@I2uux_(!7St;^Qm__EVb*Tp38I=Fg8Hw4{11E9H+yvyTh;- z@$BYRl2XEh2M1JqiH@yMwCbd>ftL>O-6?gwLQxf&&qS0$#9Rekl)2dJVLLX?f`c1O z2qP7xkihHX$t5Zs9dCF{Ak|s0YIu_&ITC^inJnTsD%o_v?94^n=u*}tvaFyth^T8J zdRZdN9FovONis6mWGqZ+HkQy+k%QAy#3I71EfJSQ^rJo=F_Q%o+f%8;1!sALLfeIxtVVq0kl7N7ZDwRl_0LwR!iaBYLGLPUh}MIJJbR7UdfHNkp}hGY`Rw1!7C49ExPjh^eCIK1LA`*E;xaLCuRPYY9=IGgCEEA0#{^$wCl4 zT*abXgb0elC@U}$5yKSmC?MA;Q*fFTxQaqE$WSbui_pVJ5;Dys)FhN>f__oKuefA- zNGEfc3L5iKMxwjeN{zY>r^6A2DiI|%lB19VhC3y~K(Ql{tqyZP#7+dJG8D3bvnn20d7#RhG3VQ4!IXanQ zVq^)qlrWkmG!+d~v6*NA^VH(1C!Gb)6cMP8g@x*F(pV!O}$q`?GM<07jJ0@+y|X7=Y(HdC?x3_* z@!}pzJz(8l;$RRmxtJmrE^1-2vGzQ*2JBCsvUC5KWNh)`%Qe<+uJP?ZKB0G~$MxqM zSQV2&8i1!!as$rmDkVum8uzethwkbnj^!E02fOI1N=>X&)oOUdKId-4^5rJUVL)#- z;DsN#Ohs++jkmss5{`J~jZb6AA&Zvclaf{A zJ8%CH$4`6QzWE%VdHDtW(Bsu@> zbh!8MJ(N+z<_oX#{=pvF$s>N^r@l&mcfue3$?vnWc%94ZZ<3n<-}u%)A!uyyi*G*1 z)i3`XzxOhWNkGM8u9#e$?l2jqtl!#TaiN3f z`&^ukan>A$^N9Tq-s9D4*SYliv%K@}DHlf`*i)LCz{=V>sV#82eSno{R2C8rNT|qb zlvSDI{(VAyiKf=32#=_16OM&VQcdEv<Q^w9%i z-Qs#@i_^0aJ>3`G%Pq9BDKUJ+AN zHI_q-WKpAk?4upKEU$JsuezKZk6BiiX&X(pdv7!Gbw2gV73!+Qx4-i}!fL|jpZz?} zG~rL)`x7M9;r8Vhk+p!`-CgV~r`+kFR3e1!Bm6|cZ97;?8TPqI=IRuVh$&^{Zp6Hl zQX~@cJRwUBEIlF0!A}K@C?ioTgp80>0bNKaFc?HRWnoCB)={JqhJQgA6;P_82mwN- z;>QB986t@`Qs@z72EHC5mn7`d7~d!{bpq5vf;=SkRU$njO=HxCj3mgoNsN_EFm#K7 zXrhYem|l%s(@0A(-l)Kd74)`%KTk=u8bUV1c5_BRE;`7HheE*|1I;war5Ukbp(=TV zv52pi5yOB~O2{M)sSxpqu|uH-Ng3&OadVr6)qjgTqe zDCph<$&AQD1xXX}3klPTDQ6+^tc711W2-9p1j0l?Eyu`)Lv-OXb0^sCGPQCEHx}{d zK3W=m!XZ^GXQI2SO8@T~$V@+lG@ z7n71w;5!nz=TR{w^4!GBWh6B~jTKxV*K!OJ(%fK>3{evSQBeq;GSyjvZ=AAJUgpMH zlkI~(egS2`Q*_dFjum^PLJ3h)fru;;5M&7>j|eTuq70IPOmk3$DMDnBsR?qC@b3?d zK!hZI;xLni990DA7k>HgeeH1jkl_fH*Br)^8Mq==S0fxJ1fq

ZtOZf|Lu_LMw(a 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

;x&&nLT?-;3}bMB2-iSJ}g-G73SS%Ejs?@`)0 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 0: + iw, ih = draw.textsize(uversion, font=font20) + draw.text((C_SPLASH_WIDTH - C_BORDER - iw, C_SPLASH_HEIGHT - C_BORDER - ih), uversion, font=font20) + + del draw + im.save(os.path.join(dest, 'splash.png'), "PNG") + im.save(os.path.join(dest, 'about.png'), "PNG") + +## +# create the application logo +def generate_logo(dest, appname): + uname = unicode(appname, 'UTF-8') + + # evaluate size before deleting draw + im = Image.new("RGBA", (20, 20), (0, 0, 0, 0)) + draw = ImageDraw.Draw(im) + font = ImageFont.truetype(C_FONT_PATH, 18) + iw, ih = draw.textsize(uname, font=font) + del draw + + im = Image.new("RGBA", (iw + 5, 20), (0, 0, 0, 0)) + draw = ImageDraw.Draw(im) + draw.text((0, 0), uname, font=font, fill=C_LOGO_COLOR) + del draw + im.save(os.path.join(dest, 'applogo.png'), "PNG") + + +if __name__ == "__main__": + + if len(sys.argv) < 3: + print "usage: %s []" % sys.argv[0] + sys.exit(1) + + dest = sys.argv[1] + appname = sys.argv[2] + version = "" + if len(sys.argv) > 3: version = sys.argv[3] + + generate_splash(dest, appname, version) + generate_logo(dest, appname) diff --git a/data/templates/Application/config/splash_generator/splash2.py b/data/templates/Application/config/splash_generator/splash2.py new file mode 100755 index 0000000..476904d --- /dev/null +++ b/data/templates/Application/config/splash_generator/splash2.py @@ -0,0 +1,170 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# This script can be used to generate resources (splash screen, logo app and about screen) +# to customize a SALOME application. + +import os, sys + +__LANG__=os.getenv("LANG") +__FR__={ + "This script requires the Image, ImageDraw and ImageFont libraries": + "Ce script a besoin de Image, ImageDraw et ImageFont python librairies", + "WARNING: automatic filter application name for resources:": + "ATTENTION: filtre automatique sur le nom de l'application pour les ressources:", + "generate": "génération de", + "in directory": "dans le répertoire", + "Generate resources for": "Génération des ressources pour", +} + +def _loc(text): + """very easy very locale standalone translation""" + if "FR" in __LANG__: + try: + return __FR__[text] + except: + return text + return text + +try: + import Image + import ImageDraw + import ImageFont +except ImportError, exc: + print + print "ERROR: " + os.path.realpath(__file__) + print _loc("This script requires the Image, ImageDraw and ImageFont libraries") + print exc + sys.exit(1) + + +# splash screen +C_FONT_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'xirod.ttf') +C_SPLASH_WIDTH = 600 +C_SPLASH_HEIGHT = 300 +C_SPLASH_COLOR = (100, 120, 160) +C_SPLASH_TEXT_COLOR = "rgb(255, 250, 250)" +C_SHADOW_COLOR = "rgb(0, 0, 0)" +C_LOGO_COLOR = "rgb(200, 200, 200)" +C_BORDER_X = 30 #50 +C_BORDER_Y = 3 #30 +C_SHADOW_X = 2 +C_SHADOW_Y = C_SHADOW_X + +## +# create the splash screen and the about logo. +def generate_splash(dest, appname, version, subtext=None): + if subtext is None: + subtext="Powered by SALOME" + uname = unicode(appname, 'UTF-8') + uversion = unicode(version, 'UTF-8') + + fontbig = ImageFont.truetype(C_FONT_PATH, 44) + fontsmall = ImageFont.truetype(C_FONT_PATH, 16) + + # create the splash screen + # 12 characters are maximum for for C_SPLASH_WIDTH + nbcar = len(uname) + WIDTH = C_SPLASH_WIDTH + if nbcar > 12: + WIDTH=C_SPLASH_WIDTH*nbcar/12 #a little more + if WIDTH > 1024: + WIDTH = 1024 #but not too big + #im = Image.new("RGBA", (WIDTH, C_SPLASH_HEIGHT), C_SPLASH_COLOR) + d0 = os.path.dirname(os.path.realpath(__file__)) + f0 = os.path.join(d0,"Salome6_splash_fond.png") + #print "cvw splash2.py",f0 + im = Image.open(f0) + im = im.resize((WIDTH, C_SPLASH_HEIGHT)) + draw = ImageDraw.Draw(im) + + # add the name of the application + iw, ih = draw.textsize(uname, font=fontbig) + x = (WIDTH - iw) / 2.0 # horizontal center + y = (C_SPLASH_HEIGHT - ih) / 2.0 # vertical center + draw.text((x+C_SHADOW_X, y+C_SHADOW_Y), uname, font=fontbig, fill=C_SHADOW_COLOR) + draw.text((x, y), uname, font=fontbig, fill=C_SPLASH_TEXT_COLOR) + + # add powered by SALOME + iw, ih = draw.textsize(subtext, font=fontsmall) + draw.text((C_BORDER_X+C_SHADOW_X, C_SPLASH_HEIGHT+C_SHADOW_Y-C_BORDER_Y-ih), + subtext, font=fontsmall, fill=C_SHADOW_COLOR) + draw.text((C_BORDER_X, C_SPLASH_HEIGHT-C_BORDER_Y-ih), + subtext, font=fontsmall, fill=C_SPLASH_TEXT_COLOR) + + # add the version if any + if len(version) > 0: + iw, ih = draw.textsize(uversion, font=fontsmall) + draw.text((WIDTH+C_SHADOW_X-C_BORDER_X-iw, C_SPLASH_HEIGHT+C_SHADOW_Y-C_BORDER_Y-ih), + uversion, font=fontsmall, fill=C_SHADOW_COLOR) + draw.text((WIDTH-C_BORDER_X-iw, C_SPLASH_HEIGHT-C_BORDER_Y-ih), + uversion, font=fontsmall, fill=C_SPLASH_TEXT_COLOR) + + del draw + d1 = os.path.join(dest, 'icon_splash.png') + im.save(d1, "PNG") + d2 = os.path.join(dest, 'icon_about.png') + im.save(d2, "PNG") + print _loc("in directory"), os.getcwd() + print _loc("generate"), d1 + print _loc("generate"), d2 + +## +# create the application logo +def generate_logo(dest, appname): + uname = unicode(appname, 'UTF-8') + + # evaluate size before deleting draw + im = Image.new("RGBA", (20, 20), (0, 0, 0, 0)) + draw = ImageDraw.Draw(im) + font = ImageFont.truetype(C_FONT_PATH, 18) + iw, ih = draw.textsize(uname, font=font) + del draw + + im = Image.new("RGBA", (iw + 5, 20), (0, 0, 0, 0)) + draw = ImageDraw.Draw(im) + draw.text((0+1, 0), uname, font=font, fill=C_SHADOW_COLOR) + draw.text((0, -1), uname, font=font, fill=C_LOGO_COLOR) + del draw + d1 = os.path.join(dest, 'icon_applogo.png') + im.save(d1, "PNG") + print _loc("generate"), d1 + +def filter_appname(appname): + name = appname.upper() # xirod seems not have lower character + for i in ["_APPLICATION","_APPLI","_APP"]: + res = name.split(i) + if len(res) > 1: + name = res[0] + return name + + for i in ["APPLICATION_","APPLI_","APP_"]: + res = name.split(i) + if len(res) > 1: + name = res[1] + return name + + return name + +if __name__ == "__main__": + if len(sys.argv) < 3: + print "usage: %s [] []" % sys.argv[0] + sys.exit(1) + + dest = sys.argv[1] + appname = sys.argv[2] + version = "" + subtext = None + if len(sys.argv) > 3: version = sys.argv[3] + if len(sys.argv) > 4: subtext = sys.argv[4] + + print + print _loc("Generate resources for"), appname + name = filter_appname(appname) + if name != appname: + print _loc("WARNING: automatic filter application name for resources:"), + print "'%s' -> '%s'" % (appname, name) + + generate_splash(dest, name, version, subtext) + generate_logo(dest, name) + print diff --git a/data/templates/Application/config/splash_generator/xirod.ttf b/data/templates/Application/config/splash_generator/xirod.ttf new file mode 100755 index 0000000000000000000000000000000000000000..5a4be5680b9b3c68d051fa3b09298d976cef477f GIT binary patch literal 63000 zcmeFa37AyH)jwQyZ}0owJ^S=DGXo6F0L{#>2m%g^Aff^ahyn`22ns53Ul7-TyW$$x z2vNYih(_5|)GWprMH3T^8qv6;#w2PIrEmX#zpC!(0SDjwpXdF)@Be+zccJUvTUED~ zb55Oe>eQ(kA%zez1U4~h{1H>8=5k-Vg?Ph;$R*>aP9Jmgc@N$y#9x;Q;dtP%X;UY> z@`IZ{5yG`g2>H_~Q(FdI(hwVf=jTw$+@m`t&scog>HiSIvqA{_?h{X$x9qbk-svku zQ*XR4I`PcqwMNLeK!`ybkw0?MvW2HOX8x#MhymB3j58L_J7bwh3e^9nFOeQvxa6FZ z4qbWpc;w$H#HnX5nt#gKfp+B3sgxuO=noo7`a}w2)mdeJcV=*dIq=wcT$+<3GzCm+GIc3PZg@}a+Vk* zz5#kAo5<@PAzDJBR<(%l(`FtqMT`>3-6tBapbgKNx64GW5H~W-*kSCztrn%7q-~oRW($cSVlU!j~Akc-50wAqGx$T(g!8oxo`cd9b}@2P*Ih|7b; zY`IZH2?L`Q_4g46n}0xmZxzkPI#3we&phmlVIY2?7->uwO~$ukD8Etfrvm1yfj^ef zPxLZ|iYE5MSSrdv8^h#R_&I>H+3LG?+c@;`82nHMU|yr(O_=ZZa}a;T0pZ{6C&%Y^ z%Q3+J5&1oGdj3P;DBJ~q;-K3PZEC=~P&gnS3O|K|FU4r*z2B|3*pC09`orH>Kig5P zZ~wdMJNv)?k2I-&VfMW{Y`*WA^xM-9G%fg(&*VQ+zlp*t`D@AFrhf&RzXSF1N4hW2 zKI#8}zc)nO#82UdQ;15+W#qjHvCS&?=6fAj2B}g@JgO=40z5(VzluN_#Er%=~t-R z*oO4^Vl;SOGx;8W@|teHA}`w_4zVv2=QwttzQ16c{zbIQh4~4_B#ggS(c8#?XV&6* z7{==1cpr#oq^U7l7{3R~XZ{)V<`XR(_qGQB=f49#AK}*@zqiCt+iSRAjQ%|*#u%rF znYfQu_i-X)wu%YzZIMuX;#Kg^UShC(QS%={BUt z&A$L%ErmLYw9+Dao5zTeluP=O>!p;bWSNvfDG~Atg=85Y%i`)aRTc|MJR*+&V`b8Z z_&9RMa8Ic`-y5JT7MBVl4C+dfcu(~Bk*>3=Ej{MhKa%Y@(8Zby_4knF`@Sq?FSe-^ zBV|N)q%7QXH%eK> z^IwZP6=p;l&%H!l{wq;0G6)+)FNBSv9$|0MkpEKj5se7@irxsDL?49xMBn^BM1K`F zizYm`h<^FMivglP!hxb0;ULk1Fe?V+|0V{Dfe2g0AcSoqoBu+zi@^woh*pF{MH|9l z2>&XEi*|$ui6IC_h@l8aiedTB#ld1Y!cpQNgrmiX{AXf}7>V!@aWKLTF$&>WF*^UL z7$?Rc94`(*I04}vaj57(I8ls6I7y5{c$gTU|3pj{6A&IQ4n;UcOhkBun3Vrm94QV% zc$Aooa4N!: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" # name of this application module + "KERNEL" + "GUI" + TODO + ] + + # compilation flags + compil_in_debug_mode : "no" # yes, non all, none or list + # list of modules to compile in debug when compil_in_debug_mode = 'list' + #debug_modules : [ 'KERNEL', 'GUI' ] + compil_in_single_dir : "no" + ignore_step_errors : [ 'compile', 'application' ] + with_mpi : "no" + make_flags : '' + + # name of the default test grid + grid_to_test : '' +} + +APPLI : +{ + configure : + { + "splash": + { + "image" : $TOOLS.common.module_info.%(NAME)s.install_dir + "/resources/splash.png" + } + "resources": + { + "LightApp" : $TOOLS.common.module_info.%(NAME)s.install_dir + "/resources" + } + } +} + +# add definition for new modules + +TOOLS: { common: { + + # add definition of new prerequisites + #prereq_info : { + #} + + # add definition of new modules + module_info : { + + # insert the pyconf generated for this module here + '' : + { + name : '' + ... + } + + } + +}} + + +# Overwrite definitions of standard modules or prerequisites. +#__overwrite__ : +#[ +#] diff --git a/data/templates/Application/doc/README b/data/templates/Application/doc/README new file mode 100755 index 0000000..aa59f87 --- /dev/null +++ b/data/templates/Application/doc/README @@ -0,0 +1 @@ +This directory contains the user documentation of the application. diff --git a/data/templates/Application/documentation/README b/data/templates/Application/documentation/README new file mode 100755 index 0000000..3ab1ea0 --- /dev/null +++ b/data/templates/Application/documentation/README @@ -0,0 +1 @@ +This directory can contains other documents concerning the application (specifications, technical notes...). diff --git a/data/templates/Application/patches/README b/data/templates/Application/patches/README new file mode 100755 index 0000000..9ae7860 --- /dev/null +++ b/data/templates/Application/patches/README @@ -0,0 +1,3 @@ +This directory can contains patches for SALOME's sources. +The patches should be applied using salomeTools. +See the documentation of salomeTools to know how to create the patches. diff --git a/data/templates/Application/resources/LightApp_images.ts b/data/templates/Application/resources/LightApp_images.ts new file mode 100755 index 0000000..c5e24e0 --- /dev/null +++ b/data/templates/Application/resources/LightApp_images.ts @@ -0,0 +1,23 @@ + + + + + @default + + APP_DEFAULT_ICO + appicon.png + + + ICO_ABOUT + about_icon.png + + + ABOUT + icon_about.png + + + APP_BASE_LOGO + icon_applogo.png + + + diff --git a/data/templates/Application/resources/LightApp_msg_en.ts b/data/templates/Application/resources/LightApp_msg_en.ts new file mode 100755 index 0000000..6d7b692 --- /dev/null +++ b/data/templates/Application/resources/LightApp_msg_en.ts @@ -0,0 +1,35 @@ + + + + + @default + + ABOUT_COPYRIGHT + Copyright (C) + + + ABOUT_CAPTION + About :sat:{Application} + + + APP_NAME + :sat:{Application} + + + APP_VERSION + V:sat:{Version} + + + ABOUT_LICENSE + license description + + + ABOUT_VERSION + Version :sat:{Version} + + + ABOUT_TITLE + :sat:{Application} + + + diff --git a/data/templates/Application/resources/LightApp_msg_fr.ts b/data/templates/Application/resources/LightApp_msg_fr.ts new file mode 100755 index 0000000..9e28931 --- /dev/null +++ b/data/templates/Application/resources/LightApp_msg_fr.ts @@ -0,0 +1,35 @@ + + + + + @default + + ABOUT_COPYRIGHT + Copyright (C) + + + ABOUT_CAPTION + A propos de :sat:{Application} + + + APP_NAME + :sat:{Application} + + + APP_VERSION + V:sat:{Version} + + + ABOUT_LICENSE + description de la licence + + + ABOUT_VERSION + Version :sat:{Version} + + + ABOUT_TITLE + :sat:{Application} + + + diff --git a/data/templates/Application/resources/README b/data/templates/Application/resources/README new file mode 100755 index 0000000..f5f5cc8 --- /dev/null +++ b/data/templates/Application/resources/README @@ -0,0 +1 @@ +This directory contains the resources used to customize the application (icons, splash screen...). diff --git a/data/templates/Application/resources/about.png b/data/templates/Application/resources/about.png new file mode 100755 index 0000000000000000000000000000000000000000..f34afc10b498f291a29c929c751db17c8a79eda4 GIT binary patch literal 9593 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 Ef)-GsSpWb4 literal 0 HcmV?d00001 diff --git a/data/templates/Application/resources/appicon.png b/data/templates/Application/resources/appicon.png new file mode 100755 index 0000000000000000000000000000000000000000..03e172c3fae19d973e17c2eef8e1be3f96c07338 GIT binary patch literal 718 zcmV;<0x|uGP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FWS01FWTe`H^g00007bV*G`2iyw| z5IYBe*Xca~00K@)L_t(I%k7jwNKt+6%N7(+JdU}8DG1=2I`77&;M68@%f2K^SS{8&MbR!-= zQBhT$qN+$x6v#*tYzhK+oX#T_mhE6LCIq35LbaOMq%@b3)S5JG|a^6+X?q1taqv z-f_peYZ@AEnp#={&bBt}G8!RUD#6F;X?0^}ro5TYM}UxrwI0uSNAkI5YpR7h%R#_c z+q#sl!zM_zhp<+y9@m@ASJ=kJ%hJ+Px+02?Dx&zx{dqL0Vk20r4j6eoy|b3joo)wG zU4u;DAg@wdObrj;ZWrI*6(tH|Q|o_!SN*Y=?d15lYVGZPx)VSC9lSO>OAhe-pwDDN zn2?M6L!rQ*0?Bq@V1C|VHyCd5I-OV5wDepekt=7jM@>E-Z*FakiSf9))tqj-z)K6~ zQw>I?pJxHqzE&W)C_q}kKy(Zs#th55U*@0b2Y;UNYqOubWB>pF07*qoM6N<$f*(sj ArT_o{ literal 0 HcmV?d00001 diff --git a/data/templates/Application/resources/applogo.png b/data/templates/Application/resources/applogo.png new file mode 100755 index 0000000000000000000000000000000000000000..6e1775c33bfa1b27b562d3005d2ed131526df117 GIT binary patch literal 3458 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 literal 0 HcmV?d00001 diff --git a/data/templates/Application/resources/splash.png b/data/templates/Application/resources/splash.png new file mode 100755 index 0000000000000000000000000000000000000000..eb07d6ff21af50a517dd4db257483bd4a735f207 GIT binary patch literal 6260 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 U7UIzSPXd4&#ui4^SMNOj9|P~K=l}o! literal 0 HcmV?d00001 diff --git a/data/templates/Application/src/README b/data/templates/Application/src/README new file mode 100755 index 0000000..9404b0d --- /dev/null +++ b/data/templates/Application/src/README @@ -0,0 +1 @@ +This directory contains additional specific sources for the application. diff --git a/data/templates/Application/template.info b/data/templates/Application/template.info new file mode 100644 index 0000000..94d600f --- /dev/null +++ b/data/templates/Application/template.info @@ -0,0 +1,100 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# description of the template to be displayed with option --info +info = """ +Author: CEA +Description: This template can be used to create an application based on SALOME. +""" + +# code to substitute with component name +file_subst = "Application" + +# delimiter used in the template (default is ':sat:') +#delimiter = ":sat:" + +# filter of files to ignore for substitution +# if not defined all files will be parsed +ignore_filters = '*.png' + +# list of parameters +# a string = parameter name +# a tuple = (parameter name, default value, prompt, validation method) +parameters = [ + (file_subst, "%(NAME)s"), + ("Version", "1.0", "Version of the application"), + ("get_method", "archive", "get method for prepare", lambda l: l in ['cvs', 'git', 'archive']) + ] + +# script to execute after the generation +# create icon_splash.pgn etc... +post_command = "config/splash_generator/splash2.py ./resources %(NAME)s %(Version)s 'Powered by SALOME'" + +# configuration to use this component with sat +pyconf = """ +PRODUCTS : { + default : + { + name : "%(NAME)s" + get_sources : '%(get_method)s' + build_sources : 'autotools' + compile_method : $source_dir + '/config/compile.py' + cvs_info: + { + server : $TOOLS.prepare.cvs_server + module_base : $TOOLS.prepare.cvs_dir + $name + source : 'COMPONENT_SRC' + tag : $PRODUCT.default_version_to_download + } + git_info: + { + repo : 'to be filled' + tag : 'to be filled' + } + archive_info: + { + archive_name : '%(target)s.tar.gz' + } + + nb_proc : 1 + source_dir : $TOOLS.common.source_root + '/' + $name + build_dir : $TOOLS.common.build_root + '/' + $name + depend : ['qt'] + opt_depend : [] + properties : + { + environment : "salome" + has_salome_gui : "yes" + } + } +} + +APPLI: +{ + # The name of the application (overrides $PRODUCT.name) + # This name will be used to generate packages. + #name : "%(Name)s" + # The name for the application directory (default is APPLI) + application_name : "%(NAME)s" + # (optional) list of modules if different than PRODUCT.modules + #modules: [] + module_appli: "%(NAME)s" + module_appli_install_dir: $TOOLS.common.module_info.%(NAME)s.install_dir + launch_alias_name: "%(name)s" + configure : + { + "launch": { "splash": "yes" } + "splash": + { + "image" : $module_appli_install_dir + "/resources/icon_splash.png" + "text_colors" : "#ffffff|#000000" + "show_percents" : "yes" + "show_progress" : "yes" + "show_message" : "yes" + #suppose to be installed... and no need if show_message=no + "font" : "Xirod,12,normal" + } + "resources": { "LightApp" : $module_appli_install_dir + "/resources" } + } +} +""" diff --git a/data/templates/Application/tests/README b/data/templates/Application/tests/README new file mode 100755 index 0000000..f165e7c --- /dev/null +++ b/data/templates/Application/tests/README @@ -0,0 +1,4 @@ +This directory contains the test bases to be used with salomeTools. +See the documentation of salomeTools for the description of salomeTools' test bases. + +It should contains only the tests specific to the application. diff --git a/data/templates/CppComponent/AUTHORS b/data/templates/CppComponent/AUTHORS new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/CppComponent/COPYING b/data/templates/CppComponent/COPYING new file mode 100755 index 0000000..b1e3f5a --- /dev/null +++ b/data/templates/CppComponent/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/data/templates/CppComponent/CPPCMP_version.h.in b/data/templates/CppComponent/CPPCMP_version.h.in new file mode 100755 index 0000000..b139149 --- /dev/null +++ b/data/templates/CppComponent/CPPCMP_version.h.in @@ -0,0 +1,38 @@ +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +// File : :sat:{CPPCMP}_version.h +// Author : Vadim SANDLER +// Module : SALOME +// +#if !defined(__:sat:{CPPCMP}_VERSION_H__) +#define __:sat:{CPPCMP}_VERSION_H__ + +/* + :sat:{CPPCMP}_VERSION is (major << 16) + (minor << 8) + patch. +*/ + +#define :sat:{CPPCMP}_VERSION_STR "@VERSION@" +#define :sat:{CPPCMP}_VERSION @XVERSION@ +#define :sat:{CPPCMP}_DEVELOPMENT @VERSION_DEV@ + +#endif // __:sat:{CPPCMP}_VERSION_H__ diff --git a/data/templates/CppComponent/ChangeLog b/data/templates/CppComponent/ChangeLog new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/CppComponent/INSTALL b/data/templates/CppComponent/INSTALL new file mode 100755 index 0000000..dc6864a --- /dev/null +++ b/data/templates/CppComponent/INSTALL @@ -0,0 +1 @@ +SALOME2 : :sat:{CPPCMP} module (sample) diff --git a/data/templates/CppComponent/Makefile.am b/data/templates/CppComponent/Makefile.am new file mode 100755 index 0000000..f53d65a --- /dev/null +++ b/data/templates/CppComponent/Makefile.am @@ -0,0 +1,58 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# -* 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 + +if :sat:{CPPCMP}_ENABLE_GUI + ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \ + -I ${GUI_ROOT_DIR}/adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files +else !:sat:{CPPCMP}_ENABLE_GUI + ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files +endif + +SUBDIRS = idl adm_local resources src bin doc + +DISTCLEANFILES = a.out aclocal.m4 configure local-install.sh hack_libtool + +salomeinclude_DATA = :sat:{CPPCMP}_version.h + +EXTRA_DIST += \ + build_configure \ + clean_configure + +dist-hook: + rm -rf `find $(distdir) -name CVS` + +usr_docs: + (cd doc && $(MAKE) $(AM_MAKEFLAGS) usr_docs) + +docs: usr_docs + +dev_docs: + (cd doc && $(MAKE) $(AM_MAKEFLAGS) dev_docs) + + diff --git a/data/templates/CppComponent/NEWS b/data/templates/CppComponent/NEWS new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/CppComponent/README b/data/templates/CppComponent/README new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/CppComponent/adm_local/Makefile.am b/data/templates/CppComponent/adm_local/Makefile.am new file mode 100755 index 0000000..9863d29 --- /dev/null +++ b/data/templates/CppComponent/adm_local/Makefile.am @@ -0,0 +1,22 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = unix diff --git a/data/templates/CppComponent/adm_local/unix/Makefile.am b/data/templates/CppComponent/adm_local/unix/Makefile.am new file mode 100755 index 0000000..0d5ee76 --- /dev/null +++ b/data/templates/CppComponent/adm_local/unix/Makefile.am @@ -0,0 +1,22 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = config_files diff --git a/data/templates/CppComponent/adm_local/unix/config_files/Makefile.am b/data/templates/CppComponent/adm_local/unix/config_files/Makefile.am new file mode 100755 index 0000000..5b05750 --- /dev/null +++ b/data/templates/CppComponent/adm_local/unix/config_files/Makefile.am @@ -0,0 +1,23 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +dist_admlocalm4_DATA = \ + check_:sat:{CPPCMP}.m4 diff --git a/data/templates/CppComponent/adm_local/unix/config_files/check_CPPCMP.m4 b/data/templates/CppComponent/adm_local/unix/config_files/check_CPPCMP.m4 new file mode 100755 index 0000000..e9e7ac8 --- /dev/null +++ b/data/templates/CppComponent/adm_local/unix/config_files/check_CPPCMP.m4 @@ -0,0 +1,75 @@ +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +# Check availability of :sat:{CPPCMP} module binary distribution +# +# Author : Marc Tajchman (CEA, 2002) +#------------------------------------------------------------ + +AC_DEFUN([CHECK_:sat:{CPPCMP}],[ + +AC_CHECKING(for :sat:{CPPCMP}) + +:sat:{CPPCMP}_ok=no + +AC_ARG_WITH(:sat:{CPPCMP}, + --with-:sat:{CPPCMP_minus}=DIR root directory path of :sat:{CPPCMP} installation, + :sat:{CPPCMP}_DIR="$withval",:sat:{CPPCMP}_DIR="") + +if test "x$:sat:{CPPCMP}_DIR" = "x" ; then + +# no --with-:sat:{CPPCMP_minus} option used + + if test "x$:sat:{CPPCMP}_ROOT_DIR" != "x" ; then + + # :sat:{CPPCMP}_ROOT_DIR environment variable defined + :sat:{CPPCMP}_DIR=$:sat:{CPPCMP}_ROOT_DIR + + else + + # search :sat:{CPPCMP} binaries in PATH variable + AC_PATH_PROG(TEMP, lib:sat:{CPPCMP}.so) + if test "x$TEMP" != "x" ; then + :sat:{CPPCMP}_BIN_DIR=`dirname $TEMP` + :sat:{CPPCMP}_DIR=`dirname $:sat:{CPPCMP}_BIN_DIR` + fi + + fi +# +fi + +if test -f ${:sat:{CPPCMP}_DIR}/lib/salome/lib:sat:{CPPCMP}.so ; then + :sat:{CPPCMP}_ok=yes + AC_MSG_RESULT(Using :sat:{CPPCMP} distribution in ${:sat:{CPPCMP}_DIR}) + + if test "x$:sat:{CPPCMP}_ROOT_DIR" == "x" ; then + :sat:{CPPCMP}_ROOT_DIR=${:sat:{CPPCMP}_DIR} + fi + AC_SUBST(:sat:{CPPCMP}_ROOT_DIR) +else + AC_MSG_WARN("Cannot find compiled :sat:{CPPCMP} distribution") +fi + +AC_MSG_RESULT(for :sat:{CPPCMP}: $:sat:{CPPCMP}_ok) + +])dnl + diff --git a/data/templates/CppComponent/adm_local/unix/config_files/check_GUI.m4 b/data/templates/CppComponent/adm_local/unix/config_files/check_GUI.m4 new file mode 100755 index 0000000..ef18369 --- /dev/null +++ b/data/templates/CppComponent/adm_local/unix/config_files/check_GUI.m4 @@ -0,0 +1,106 @@ +dnl Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +# Check availability of Salome binary distribution +# +# Author : Marc Tajchman (CEA, 2002) +#------------------------------------------------------------ + +AC_DEFUN([CHECK_GUI_MODULE],[ +AC_REQUIRE([AC_LINKER_OPTIONS])dnl + +LightGUI_ok=no +FullGUI_ok=no + +GUI_LDFLAGS="" +GUI_CXXFLAGS="" + +SALOME_GUI_DIR="" + +AC_ARG_WITH(gui, + [--with-gui=DIR root directory path of SALOME GUI installation], + [], + [with_gui=auto]) + +if test "${with_gui}" = "no"; then + SalomeGUI_need=no +else + # define SALOME_GUI_DIR + if test "${with_gui}" = "yes" -o "${with_gui}" = "auto"; then + SalomeGUI_need="$with_gui" + AC_MSG_RESULT(try \${GUI_ROOT_DIR}: ${GUI_ROOT_DIR}) + if test "x${GUI_ROOT_DIR}" != "x" ; then + # GUI_ROOT_DIR environment variable defined + SALOME_GUI_DIR=${GUI_ROOT_DIR} + else + # search Salome binaries in PATH variable + AC_PATH_PROG(TEMP, SUITApp) + if test "x${TEMP}" != "x" ; then + AC_MSG_RESULT(SUITApp was found at : ${TEMP}) + SALOME_BIN_DIR=`dirname ${TEMP}` + SALOME_GUI_DIR=`cd ${SALOME_BIN_DIR}/../..; pwd` + fi + fi + else + # GUI directory defined by user + SalomeGUI_need=yes + SALOME_GUI_DIR="$with_gui" + fi + + # check GUI installation + AC_CHECKING(for light GUI) + if test -f ${SALOME_GUI_DIR}/bin/salome/SUITApp ; then + LightGUI_ok=yes + AC_MSG_RESULT(Using SALOME GUI distribution in ${SALOME_GUI_DIR}) + + GUI_ROOT_DIR=${SALOME_GUI_DIR} + + GUI_LDFLAGS=-L${SALOME_GUI_DIR}/lib${LIB_LOCATION_SUFFIX}/salome + GUI_CXXFLAGS=-I${SALOME_GUI_DIR}/include/salome + + AC_CHECKING(for full GUI) + if test -f ${SALOME_GUI_DIR}/bin/salome/SALOME_Session_Server ; then + FullGUI_ok=yes + fi + else + AC_MSG_WARN("Cannot find compiled SALOME GUI distribution") + fi + AC_MSG_RESULT(for light GUI: ${LightGUI_ok}) + AC_MSG_RESULT(for full GUI: ${FullGUI_ok}) +fi + +AC_SUBST(GUI_LDFLAGS) +AC_SUBST(GUI_CXXFLAGS) +AC_SUBST(GUI_ROOT_DIR) + +])dnl + +AC_DEFUN([CHECK_SALOME_GUI],[ + CHECK_GUI_MODULE() + SalomeGUI_ok=${LightGUI_ok} +])dnl + +AC_DEFUN([CHECK_CORBA_IN_GUI],[ + CHECK_GUI_MODULE() + CORBA_IN_GUI=${FullGUI_ok} + AC_SUBST(CORBA_IN_GUI) +])dnl diff --git a/data/templates/CppComponent/adm_local/unix/make_common_starter.am b/data/templates/CppComponent/adm_local/unix/make_common_starter.am new file mode 100755 index 0000000..4f70a70 --- /dev/null +++ b/data/templates/CppComponent/adm_local/unix/make_common_starter.am @@ -0,0 +1,94 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +bindir = $(prefix)/bin/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# Documentation directory +docdir = $(datadir)/doc/salome + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; diff --git a/data/templates/CppComponent/bin/Makefile.am b/data/templates/CppComponent/bin/Makefile.am new file mode 100755 index 0000000..1807821 --- /dev/null +++ b/data/templates/CppComponent/bin/Makefile.am @@ -0,0 +1,33 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# -* Makefile *- +# Author : Guillaume Boulant (CSSI) +# Module : COMPONENT +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +dist_salomescript_SCRIPTS = \ + myrunSalome.py + +nodist_salomescript_SCRIPTS = \ + runAppli + +nodist_salomescript_DATA = \ + VERSION diff --git a/data/templates/CppComponent/bin/VERSION.in b/data/templates/CppComponent/bin/VERSION.in new file mode 100755 index 0000000..0711136 --- /dev/null +++ b/data/templates/CppComponent/bin/VERSION.in @@ -0,0 +1,3 @@ +[SALOME :sat:{CPPCMP}] : @VERSION@ +[DEVELOPMENT] : @VERSION_DEV@ +[DESCRIPTION] : Sample SALOME module diff --git a/data/templates/CppComponent/bin/myrunSalome.py b/data/templates/CppComponent/bin/myrunSalome.py new file mode 100755 index 0000000..4523646 --- /dev/null +++ b/data/templates/CppComponent/bin/myrunSalome.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +def test(clt): + """ + Test function that creates an instance of :sat:{CPPCMP} component + usage : comp = test(clt) + """ + # create an LifeCycleCORBA instance + import LifeCycleCORBA + lcc = LifeCycleCORBA.LifeCycleCORBA(clt.orb) + import :sat:{CPPCMP}_ORB + comp = lcc.FindOrLoadComponent("FactoryServer", ":sat:{CPPCMP}") + return comp + +# + +if __name__ == "__main__": + import user + from runSalome import * + clt,args = main() + + # + # Impression arborescence Naming Service + # + + if clt != None: + print + print " --- registered objects tree in Naming Service ---" + clt.showNS() + session=clt.waitNS("/Kernel/Session") + catalog=clt.waitNS("/Kernel/ModulCatalog") + import socket + container = clt.waitNS("/Containers/" + socket.gethostname().split('.')[0] + "/FactoryServer") diff --git a/data/templates/CppComponent/bin/runAppli.in b/data/templates/CppComponent/bin/runAppli.in new file mode 100755 index 0000000..16ea4a9 --- /dev/null +++ b/data/templates/CppComponent/bin/runAppli.in @@ -0,0 +1,65 @@ +#!/bin/bash +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +if [ -z "${KERNEL_ROOT_DIR}" ] ; then +export KERNEL_ROOT_DIR=@KERNEL_ROOT_DIR@ +fi +if [ -z "${:sat:{CPPCMP}_ROOT_DIR}" ] ; then +export :sat:{CPPCMP}_ROOT_DIR=@prefix@ +fi + +searchFreePort() { + echo -n "Searching for a free port for naming service: " + export NSPORT=2810 + local limit=$NSPORT + let limit=limit+100 + while [ 1 ] + do + aRes=`netstat -ltn | grep -E :${NSPORT}` + if [ -z "$aRes" ]; then + echo ${NSPORT} - Ok + local myhost=`hostname` + export OMNIORB_CONFIG=${HOME}/.omniORB_${myhost}_${NSPORT}.cfg + local initref="NameService=corbaname::"`hostname`":$NSPORT" + if [[ `python -c "import CORBA; print CORBA.ORB_ID"` = "omniORB4" ]]; then + echo "InitRef = $initref" > $OMNIORB_CONFIG + else + echo "ORBInitRef $initref" > $OMNIORB_CONFIG + fi + break + fi + echo -n "${NSPORT} " + if [[ $NSPORT -eq $limit ]] ; then + echo + echo "Can't find a free port to launch omniNames" + echo "Try to kill the running servers and then launch SALOME again." + exit + fi + let NSPORT=NSPORT+1 + done +} + +searchFreePort + + +${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python -i $:sat:{CPPCMP}_ROOT_DIR/bin/salome/myrunSalome.py --modules=:sat:{CPPCMP} --killall diff --git a/data/templates/CppComponent/bin/test_hello.py b/data/templates/CppComponent/bin/test_hello.py new file mode 100755 index 0000000..6f892f2 --- /dev/null +++ b/data/templates/CppComponent/bin/test_hello.py @@ -0,0 +1,61 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +## +# Test functionality of :sat:{CPPCMP} module +## + +# initialize salome session +import salome +salome.salome_init() + +# get reference to the :sat:{CPPCMP} engine +import :sat:{CPPCMP}_ORB +comp = salome.lcc.FindOrLoadComponent('FactoryServer', ':sat:{CPPCMP}') + +# test :sat:{CPPCMP} module +print "Say hello to John: should be OK" +if comp.hello(salome.myStudy, "John") != :sat:{CPPCMP}_ORB.OP_OK: + print "ERROR: wrong operation code is returned" +else: + print "OK" + +print "Say hello to John: should answer 'already met'" +if comp.hello(salome.myStudy, "John") != :sat:{CPPCMP}_ORB.OP_ERR_ALREADY_MET: + print "ERROR: wrong operation code is returned" +else: + print "OK" + +print "Say goodbye to Margaret: should answer 'did not meet yet'" +if comp.goodbye(salome.myStudy, "Margaret") != :sat:{CPPCMP}_ORB.OP_ERR_DID_NOT_MEET: + print "ERROR: wrong operation code is returned" +else: + print "OK" + +print "Say hello to John: should be OK" +if comp.goodbye(salome.myStudy, "John") != :sat:{CPPCMP}_ORB.OP_OK: + print "ERROR: wrong operation code is returned" +else: + print "OK" + +print "Say hello to John: should answer 'did not meet yet'" +if comp.goodbye(salome.myStudy, "John") != :sat:{CPPCMP}_ORB.OP_ERR_DID_NOT_MEET: + print "ERROR: wrong operation code is returned" +else: + print "OK" diff --git a/data/templates/CppComponent/build_configure b/data/templates/CppComponent/build_configure new file mode 100755 index 0000000..2255b84 --- /dev/null +++ b/data/templates/CppComponent/build_configure @@ -0,0 +1,110 @@ +#!/bin/bash +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Tool for updating list of .in file for the SALOME project +# and regenerating configure script +# Author : +# Modified by : Alexander BORODIN (OCN) - autotools usage +# Date : 10/10/2002 +# +ORIG_DIR=`pwd` +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + +######################################################################## +# Test if the KERNEL_ROOT_DIR is set correctly + +if test ! -d "${KERNEL_ROOT_DIR}"; then + echo "failed : KERNEL_ROOT_DIR variable is not correct !" + exit +fi + + +######################################################################## +# 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 +#fi + +cd ${CONF_DIR} +ABS_CONF_DIR=`pwd` + +######################################################################## + +# ____________________________________________________________________ +# aclocal creates the aclocal.m4 file from the standard macro and the +# custom macro embedded in the directory adm_local/unix/config_files +# and KERNEL config_files directory. +# output: +# aclocal.m4 +# autom4te.cache (directory) +echo "======================================================= aclocal" + +if test -d "${GUI_ROOT_DIR}"; 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 || exit 1 +else + aclocal -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files || exit 1 +fi + +# ____________________________________________________________________ +# 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: +# adm_local/unix/config_files/config.guess +# adm_local/unix/config_files/config.sub +# adm_local/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: +# adm_local/unix/config_files/compile +# adm_local/unix/config_files/depcomp +# adm_local/unix/config_files/install-sh +# adm_local/unix/config_files/missing +# adm_local/unix/config_files/py-compile +# Makefile.in (from Makefile.am) +echo "====================================================== automake" + +automake --copy --gnu --add-missing diff --git a/data/templates/CppComponent/clean_configure b/data/templates/CppComponent/clean_configure new file mode 100755 index 0000000..527fc20 --- /dev/null +++ b/data/templates/CppComponent/clean_configure @@ -0,0 +1,28 @@ +#!/bin/bash +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +rm -rf autom4te.cache aclocal.m4 configure make_config +find . -name "*~" -print -exec rm {} \; +find . -name "*.pyc" -print -exec rm {} \; +#exit +# ==================== ON SORT AVANT + +find . -name Makefile.in | xargs rm -f +( cd adm_local/unix/config_files && rm -f config.* depcomp install-sh ltmain.sh missing py-compile ) diff --git a/data/templates/CppComponent/configure.ac b/data/templates/CppComponent/configure.ac new file mode 100755 index 0000000..af4d2f3 --- /dev/null +++ b/data/templates/CppComponent/configure.ac @@ -0,0 +1,348 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# 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([Salome2 Project :sat:{CPPCMP} module],[6.6.0], [webmaster.salome@opencascade.com], [Salome:sat:{CPPCMP}]) +AC_CONFIG_AUX_DIR(adm_local/unix/config_files) +AC_CANONICAL_HOST +AC_CANONICAL_TARGET +AM_INIT_AUTOMAKE([-Wno-portability]) + +XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'` +AC_SUBST(XVERSION) +VERSION_DEV=0 +AC_SUBST(VERSION_DEV) + +# set up MODULE_NAME variable for dynamic construction of directories (resources, etc.) +MODULE_NAME=:sat:{CPPCMP_minus} +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 +AC_LOCAL_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='\${KERNEL_ROOT_DIR}'/adm_local/unix/config_files/install-sh + ;; +esac + +echo +echo --------------------------------------------- +echo testing C/C++ +echo --------------------------------------------- +echo + +cc_ok=no +dnl inutil car libtool +dnl AC_PROG_CC +AC_PROG_CXX +AC_CXX_WARNINGS +AC_CXX_TEMPLATE_OPTIONS +AC_DEPEND_FLAG +# AC_CC_WARNINGS([ansi]) +cc_ok=yes + +dnl Library libdl : +AC_CHECK_LIB(dl,dlopen) + +dnl Library librt : for alpha/osf +AC_CHECK_LIB(rt,nanosleep) + +dnl add library libm : +AC_CHECK_LIB(m,ceil) + +AC_CXX_USE_STD_IOSTREAM +AC_CXX_HAVE_SSTREAM + +dnl +dnl --------------------------------------------- +dnl testing linker +dnl --------------------------------------------- +dnl + +AC_LINKER_OPTIONS + +echo +echo --------------------------------------------- +echo testing threads +echo --------------------------------------------- +echo + +ENABLE_PTHREADS + +echo +echo --------------------------------------------- +echo testing python +echo --------------------------------------------- +echo + +CHECK_PYTHON + +AM_PATH_PYTHON(2.3) + +echo +echo --------------------------------------------- +echo Testing GUI +echo --------------------------------------------- +echo + +CHECK_GUI_MODULE + +gui_ok=no +if test "${SalomeGUI_need}" != "no" -a "${FullGUI_ok}" = "yes" ; then + gui_ok=yes +fi + +AM_CONDITIONAL(:sat:{CPPCMP}_ENABLE_GUI, [test "${gui_ok}" = "yes"]) + +if test "${SalomeGUI_need}" == "yes"; then + if test "${FullGUI_ok}" != "yes"; then + AC_MSG_WARN(For configure :sat:{CPPCMP} module necessary full GUI!) + fi +elif test "${SalomeGUI_need}" == "auto"; then + if test "${FullGUI_ok}" != "yes"; then + AC_MSG_WARN(Full GUI not found. Build will be done without GUI!) + fi +elif test "${SalomeGUI_need}" == "no"; then + echo Build without GUI option has been chosen +fi + +if test "${gui_ok}" = "yes"; then + echo + echo --------------------------------------------- + echo testing QT + echo --------------------------------------------- + echo + + CHECK_QT + +fi + +echo +echo --------------------------------------------- +echo testing MPI +echo --------------------------------------------- +echo + +CHECK_MPI + +echo +echo --------------------------------------------- +echo testing HDF5 +echo --------------------------------------------- +echo + +CHECK_HDF5 + +echo +echo --------------------------------------------- +echo BOOST Library +echo --------------------------------------------- +echo + +CHECK_BOOST + +echo +echo --------------------------------------------- +echo Testing OpenCascade +echo --------------------------------------------- +echo + +CHECK_CAS + +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 html generators +echo --------------------------------------------- +echo + +CHECK_HTML_GENERATORS + +echo +echo --------------------------------------------- +echo Testing Kernel +echo --------------------------------------------- +echo + +CHECK_KERNEL + +echo +echo --------------------------------------------- +echo Summary +echo --------------------------------------------- +echo + +echo Configure + +if test "${gui_ok}" = "yes"; then + variables="cc_ok threads_ok boost_ok python_ok omniORB_ok qt_ok hdf5_ok doxygen_ok Kernel_ok gui_ok" +elif test "${SalomeGUI_need}" != "no"; then + variables="cc_ok threads_ok boost_ok python_ok omniORB_ok hdf5_ok doxygen_ok Kernel_ok gui_ok" +else + variables="cc_ok threads_ok boost_ok python_ok omniORB_ok hdf5_ok doxygen_ok Kernel_ok" +fi + +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/*; \ +]) + +AC_HACK_LIBTOOL +AC_CONFIG_COMMANDS([hack_libtool],[ +sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\ + $(pwd)/hack_libtool \1 \"\$[@]\" \n\ +}\n\ +CC=\"hack_libtool\"%g" libtool +sed -i "s%\(\s*\)for searchdir in \$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path; do%\1searchdirs=\"\$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path\"\n\1for searchdir in \$searchdirs; do%g" libtool +sed -i "s%\(\s*\)searchdirs=\"\$newlib_search_path \$lib_search_path \(.*\)\"%\1searchdirs=\"\$newlib_search_path \$lib_search_path\"\n\1sss_beg=\"\"\n\1sss_end=\"\2\"%g" libtool +sed -i "s%\(\s*\)\(for searchdir in \$searchdirs; do\)%\1for sss in \$searchdirs; do\n\1 if ! test -d \$sss; then continue; fi\n\1 ssss=\$(cd \$sss; pwd)\n\1 if test \"\$ssss\" != \"\" \&\& test -d \$ssss; then\n\1 case \$ssss in\n\1 /usr/lib | /usr/lib64 ) ;;\n\1 * ) sss_beg=\"\$sss_beg \$ssss\" ;;\n\1 esac\n\1 fi\n\1done\n\1searchdirs=\"\$sss_beg \$sss_end\"\n\1\2%g" libtool +],[]) + +# This list is initiated using autoscan and must be updated manually +# when adding a new file .in to manage. When you execute +# autoscan, the Makefile list is generated in the output file configure.scan. +# This could be helpfull to update de configuration. +AC_OUTPUT([ \ + adm_local/Makefile \ + adm_local/unix/Makefile \ + adm_local/unix/config_files/Makefile \ + bin/VERSION \ + bin/runAppli \ + bin/Makefile \ + doc/Makefile \ + doc/doxyfile \ + doc/static/header.html \ + :sat:{CPPCMP}_version.h \ + resources/:sat:{CPPCMP}Catalog.xml \ + resources/SalomeApp.xml \ + src/Makefile \ + src/:sat:{CPPCMP}/Makefile \ + src/:sat:{CPPCMP}GUI/Makefile \ + resources/Makefile \ + idl/Makefile \ + Makefile \ +]) diff --git a/data/templates/CppComponent/doc/Makefile.am b/data/templates/CppComponent/doc/Makefile.am new file mode 100755 index 0000000..e535d86 --- /dev/null +++ b/data/templates/CppComponent/doc/Makefile.am @@ -0,0 +1,54 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +EXTRA_DIST += images static/footer.html static/doxygen.css + +guidocdir = $(docdir)/gui/:sat:{CPPCMP} +guidoc_DATA = images/head.png + +usr_docs: doxyfile + $(DOXYGEN) doxyfile + +docs: usr_docs + +dev_docs: + +clean-local: + @for filen in `find . -maxdepth 1` ; do \ + case $${filen} in \ + ./Makefile | ./doxyfile ) ;; \ + . | .. | ./static) ;; \ + *) echo "Removing $${filen}" ; rm -rf $${filen} ;; \ + esac ; \ + done ; + +install-data-local: usr_docs + $(INSTALL) -d $(DESTDIR)$(docdir)/gui/:sat:{CPPCMP} + @for filen in `find . -maxdepth 1` ; do \ + case $${filen} in \ + ./Makefile | ./doxyfile | ./doxyfile.bak ) ;; \ + . | .. | ./static ) ;; \ + *) echo "Installing $${filen}" ; cp -rp $${filen} $(DESTDIR)$(docdir)/gui/:sat:{CPPCMP} ;; \ + esac ; \ + done ; + +uninstall-local: + rm -rf $(DESTDIR)$(docdir)/gui/:sat:{CPPCMP} diff --git a/data/templates/CppComponent/doc/doxyfile.in b/data/templates/CppComponent/doc/doxyfile.in new file mode 100755 index 0000000..25407a9 --- /dev/null +++ b/data/templates/CppComponent/doc/doxyfile.in @@ -0,0 +1,81 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = ":sat:{CPPCMP} sample module reference manual v.@VERSION@" +OUTPUT_DIRECTORY = . +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +TAB_SIZE = 5 + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES + +#--------------------------------------------------------------------------- +#Input related options +#--------------------------------------------------------------------------- +INPUT = @srcdir@ +FILE_PATTERNS = *.doc +EXCLUDE = +IMAGE_PATH = @srcdir@/images +EXAMPLE_PATH = + +#--------------------------------------------------------------------------- +#HTML related options +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = . +HTML_HEADER = @builddir@/static/header.html +HTML_FOOTER = @srcdir@/static/footer.html +HTML_STYLESHEET = @srcdir@/static/doxygen.css +TOC_EXPAND = YES +DISABLE_INDEX = NO +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 300 + +#--------------------------------------------------------------------------- +#SORT related options +#--------------------------------------------------------------------------- +SORT_GROUP_NAMES = NO + + +#--------------------------------------------------------------------------- +#LaTeX related option +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO + +#--------------------------------------------------------------------------- +#RTF related options +#--------------------------------------------------------------------------- +GENERATE_RTF = NO + +#--------------------------------------------------------------------------- +#External reference options +#--------------------------------------------------------------------------- +TAGFILES = +ALLEXTERNALS = NO +SEARCHENGINE = NO diff --git a/data/templates/CppComponent/doc/images/head.png b/data/templates/CppComponent/doc/images/head.png new file mode 100755 index 0000000000000000000000000000000000000000..307d9ef9a4c07f8fba2c8721309a978433bcf63c GIT binary patch literal 78545 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 D4zrO! literal 0 HcmV?d00001 diff --git a/data/templates/CppComponent/doc/index.doc b/data/templates/CppComponent/doc/index.doc new file mode 100755 index 0000000..f2e6b0b --- /dev/null +++ b/data/templates/CppComponent/doc/index.doc @@ -0,0 +1,1065 @@ +/*! + +\mainpage Introduction to :sat:{CPPCMP} sample module + +The purpose of the \b :sat:{CPPCMP} module is to describe briefly the different +steps in the development of a SALOME module in C++. + +Contents: +- \subpage dev_steps +- \subpage tree_structure +- \subpage build_proc_files +- \subpage idl_dir +- \subpage src_dir +- \subpage bin_dir +- \subpage doc_dir +- \subpage build_procedure +- \subpage run_procedure +- \subpage load_module +- \subpage catalog_def +- \subpage load_lcc +- \subpage load_iapp + +\ref dev_steps ">> Next" + +\page dev_steps Steps in construction of the example module + +The example module chosen to illustrate the process of SALOME module +development is very simple. The module contains a single +component and this component provides several services called \b +hello and \b goodbye. +Each of these functions accepts a reference to the SALOME study and +a character string as the arguments and returns the status of the operation. +The component also provides a simple GUI. + +The steps in the development are as follows: +- create a module tree structure +- create a SALOME component that can be loaded by a C++ SALOME container +- configure the module so that the component is known to SALOME +- add a GUI + +\ref index "<< Previous"
\ref tree_structure ">> Next" + +\page tree_structure Create the module tree structure + +The first step in the development process is the creation of the +module tree file hierarchy. The typical SALOME module usually includes +some set of the configuration files (used in the build procedure of a +module), Makefiles, IDL file that provides a definition of a CORBA +services implemented in a module and a set of source files which are +compiled by the build procedure to the module CORBA engine library and +(optionally) GUI library. + +The following file structure is typical for the SALOME module: + +
++ :sat:{CPPCMP}1_SRC
+   + build_configure
+   + clean_configure
+   + configure.ac
+   + Makefile.am
+   + :sat:{CPPCMP}_version.h.in
+   + AUTHORS
+   + COPYING
+   + ChangeLog
+   + INSTALL
+   + NEWS
+   + README
+   + adm_local
+     + Makefile.am
+     + unix
+       + Makefile.am
+       + make_common_starter.am
+       + config_files
+         + Makefile.am
+         + check_GUI.m4
+         + check_:sat:{CPPCMP}.m4
+   + bin
+     + Makefile.am
+     + VERSION.in
+     + runAppli.in
+     + myrunSalome.py
+   + idl
+     + Makefile.am
+     + :sat:{CPPCMP}_Gen.idl
+   + src
+     + Makefile.am
+     + :sat:{CPPCMP}
+       + Makefile.am
+       + :sat:{CPPCMP}.hxx
+       + :sat:{CPPCMP}.cxx
+     + :sat:{CPPCMP}GUI
+       + Makefile.am
+       + :sat:{CPPCMP}GUI.h
+       + :sat:{CPPCMP}GUI.cxx
+       + :sat:{CPPCMP}_msg_en.ts
+       + :sat:{CPPCMP}_icons.ts
+   + resources
+     + Makefile.am
+     + :sat:{CPPCMP}.png
+     + goodbye.png
+     + handshake.png
+     + testme.png
+     + :sat:{CPPCMP}Catalog.xml.in
+     + SalomeApp.xml.in
+   + doc
+     + Makefile.am
+     + doxyfile.in
+     + index.doc
+     + images
+       + head.png
+     + static
+       + doxygen.css
+       + footer.html
+       + header.html.in
+
+ +Note that other files can be optionally present. + +The usual way of the sources directory tree structure initial creation +is to copy it from the existing SALOME module. + +\warning The files of the platform base module (KERNEL) must not be +copied to initialise a module tree structure. It is usually preferable +to copy files from another module such as GEOM or MED. + +The module name is :sat:{CPPCMP}, the component name is :sat:{CPPCMP} and all the +files are put in a directory named :sat:{CPPCMP}1_SRC. +Below is a short description of these files. Note, that files with .in +suffix are the autoconf templates from which the actual files are +generated during the build procedure. + +- \c build_configure +- \c configure.ac +- \c Makefile.am +- \c make_common_starter.am +- \c clean_configure + +These files are a part of the build system based on GNU +automake/autoconf auto-tools. These files define the build procedure, +namely, compilation and installation rules like compiler and linker +options, installation destination folder, package version etc. + +- \c AUTHORS +- \c COPYING +- \c ChangeLog +- \c INSTALL +- \c NEWS +- \c README + +These files are also a usual part of the GNU auto-tools based build +procedure. These files are used by developers to provide an additional +information on a product, like license, authors and distribution +information, change log between versions of a product, installation +hints, etc. + +- \c :sat:{CPPCMP}_version.h.in + +This is an optional C++ header file, specifying the version +macro-definitions which can be used, for example, in other modules to +check the version of the SALOME module (:sat:{CPPCMP} module in this +case). + +- \c adm_local + +This directory contains additional administrative files used by the +build procedure. + +- \c adm_local/unix/config_files/check_GUI.m4 +- \c adm_local/unix/config_files/check_:sat:{CPPCMP}.m4 + +These files are another part of the GNU auto-tools based build +procedure. The scripts written in m4 language are usually used to test +an availability of some 3rd-party pre-requisite product, compiler +feature, different configuration options. For example, check_GUI.m4 +file provides a procedure to test availability of SALOME GUI +module and thus specify if GUI library of :sat:{CPPCMP} module should be built +or no. + +- \c bin + +This directory usually contains different scripts. + +- \c bin/VERSION.in + +This file is used to document the module, it must give its version (at +least) and (optionally) compatibilities or incompatibilities with +other modules. This file is strongly recommended but is not essential +for operation of the module. + +- \c bin/runAppli.in +- \c bin/myrunSalome.py + +These files are not essential but make the example easier to +use. These are scripts that can be used to run SALOME session with +:sat:{CPPCMP} module. + +- \c idl + +This directory contains IDL files that specify the CORBA services +supplied by SALOME module. + +- \c idl/:sat:{CPPCMP}_Gen.idl + +This is the CORBA IDL definition of the services implemented by SALOME +:sat:{CPPCMP} module. + +- \c src + +This is a root directory of the module source codes. Usually it contains +one or more sub-directories that provide an implementation of module +libraries, executables, Python API modules, etc. The hierarchy of the +sources tree is arbitrary; it follows the specific module needs. + +- \c src/:sat:{CPPCMP} + +This directory provides implementation of engine library. + +- \c src/:sat:{CPPCMP}/:sat:{CPPCMP}.hxx +- \c src/:sat:{CPPCMP}/:sat:{CPPCMP}.cxx + +These files provide the implementation of a CORBA engine library of +the :sat:{CPPCMP} module. In particular, this is an implementation of the +services defined in the \c :sat:{CPPCMP}_Gen.idl file. + +- \c :sat:{CPPCMP}GUI + +It is an optional directory that provides an implementation of :sat:{CPPCMP} +module's GUI library. + +Strictly speaking, the GUI library is optional for each SALOME module. +In some cases it's enough to implement CORBA engine only. Then, +the services of the module will be avaiable in a CORBA environment. +The module can be loaded to the SALOME container and its services +can be used in the SALOME supervision computation schemas, in Python +scripts or/and in C++ implementation of other modules. + +A GUI library is necessary only if it is planned to access the module +functionality from the SALOME GUI session via menu actions, dialog boxes +and so on. + +- \c src/:sat:{CPPCMP}GUI/:sat:{CPPCMP}GUI.h +- \c src/:sat:{CPPCMP}GUI/:sat:{CPPCMP}GUI.cxx + +These files provide the implementation of a GUI library of +the :sat:{CPPCMP} module. In particular, these files specify menus, toolbars, +dialog boxes and other such staff. + +- \c src/:sat:{CPPCMP}GUI/:sat:{CPPCMP}_msg_en.ts +- \c src/:sat:{CPPCMP}GUI/:sat:{CPPCMP}_icons.ts + +These files provide a description (internationalization) of GUI +resources of the :sat:{CPPCMP} module. \c :sat:{CPPCMP}_msg_en.ts provides an English +translation of the string resources used in a module (there can be also +translation files for other languages, for instance French; these files +are distinguished by the language suffix). \c :sat:{CPPCMP}_icons.ts +defines images and icons resources used within the GUI library of +:sat:{CPPCMP} module. Please refer to Qt linguist documentation for more +details. + +- \c resources + +This optional directory usually contains different resources files +required for the correct operation of SALOME module. + +- \c resources/:sat:{CPPCMP}.png +- \c resources/handshake.png +- \c resources/goodbye.png +- \c resources/testme.png + +These are different module icon files. \c :sat:{CPPCMP}.png file provides main icon +of :sat:{CPPCMP} module to be shown in the SALOME GUI desktop. Other files are +the icons for the functions implemented by the module; they are used +in the menus and toolbars. + +- \c resources/:sat:{CPPCMP}Catalog.xml.in + +The XML description of the CORBA services provided by the :sat:{CPPCMP} +module. This file is parsed by SALOME supervision module (YACS) to generate +the list of service nodes to be used in the calculation schemas. The +simplest way to create this file is to use Catalog Generator utility +provided by the SALOME KERNEL module, that can automatically generate +XML description file from the IDL file. In GUI, this utility is available +via the Tools main menu. + +- \c resources/SalomeApp.xml.in + +This file is essential for each SALOME module. It provides some parameters of +the module which define its behavior in SALOME. In particular it +should provide a section with the name corresponding to the name of a +module (":sat:{CPPCMP}" in our case) with the following parameters: +\code +
+ + + + +
+\endcode + +The \a "name" parameter defines GUI name of a module. The \a "icon" +parameter defines a GUI icon of a module. Optional \a "version" parameter +defines the version fo the module. The \a "documentation" parameter +provides a name for the help-related resource section (see below). + +The section \a "resources" of a file specifies the directory that contains +resources of a module (icons, translation files, etc). + +\code +
+ +
+\endcode + +The section \a ":sat:{CPPCMP}_help" provides information on the location of +the help page(s) and the eventual sub-menu in the Help menu. The name of this section +can be arbitrary, in such a case it should be specified in the main module's resources +section (see above). Alternatively, this section's name can have syntax +\a "_documentation", where \a module_name is a name of the module. +If such section is present in the resource file, it is not necessary to specify it +in the module's main section. + +Parameter \a "sub_menu" of the documentation section allows sepecifying the name of the +sub-menu in the Help main menu where the documentation materials of a module should be +put. + +\code +
+ + +
+\endcode + +- \c doc + +This directory containes the files related to the module's documentation. + +- \c doc/doxyfile.in + +The \b Doxygen configuration file. The Doxygen is used to build this +documentation. The file \c doxyfile.in provides a rules for the +generation of module documentation. + +- \c doc/index.doc + +An input file for the Doxygen, which provides a source of this documentation. + +- \c doc/images + +This sub-folder contains images used in the documentation. + +- \c doc/static + +This sub-folder contains auxiliary files used when generating documentation +by Doxygen, like header (\c header.html.in) and footer (\c footer.html) +of the HTML pages, style sheet (\c doxygen.css) etc. + +\ref dev_steps "<< Previous"
\ref build_proc_files ">> Next" + +\page build_proc_files Build procedure input files + +In most cases SALOME uses \b autoconf, \b automake and other GNU auto-tools +to build the modules. The \c configure script is used for the build procedure +to test the system configuration and to pre-configure the module construction +\c Makefile files. + +The \c build_configure script provides a procedure that uses +\c configure.ac and set of \c Makefile.am files as input and uses \b autoconf +to generate the \c configure script and \b automake to generate \c Makefile.in +files. + +The files with an \c .in extension are the skeletons that are the input +of the \c configure script (to be more precise, these files should be +listed in the end of the \c configure.ac file in the \c AC_OUTPUT() +autoconf macro) and are transformed to the resulting files during the +configuration process. + +Almost all files used for this process are located in SALOME +base module KERNEL that is referenced by the \c KERNEL_ROOT_DIR +environment variable, namely in its \c salome_adm sub-folder. +Similarly, the \c GUI_ROOT_DIR environment variable is used for the +graphical user interface (GUI) module of SALOME; this module also +provides a set of configuration utilities (m4 files) in its +\c adm_local folder. However, some files must be modified as a +function of the target module. This is the case for \c build_configure +and \c configure.ac files which usually need to be adapted to the module needs. + +The file \c make_common_starter.am file in the \c adm_local directory of +the :sat:{CPPCMP} module provides basic build rules to be used in other +\c Makefile.am files. To refer to this file in any \c Makefile.am it is +necessary to use \a "include" clause: + +\code +include $(top_srcdir)/adm_local/unix/make_common_starter.am +\endcode + +The \c adm_local/unix/config_files is a directory in which the m4 files +that are used to test the configuration of the system in the configuration +process can be placed. If the \c salome_adm files are not sufficient, +additional configuration files can be put to the \c adm_local directory. + +\ref tree_structure "<< Previous"
\ref idl_dir ">> Next" + +\page idl_dir The idl directory + +The \c idl directory requires a \c Makefile.am that must make the +compilation of the CORBA IDL \c :sat:{CPPCMP}_Gen.idl file and install all the +generated files into the correct module installation directories. The +\a BASEIDL_FILES target has to be modified to reach this goal. + +The IDL file itself must define a CORBA component for which the name must +be different from the module name to avoid name conflicts and define a +CORBA interface that is derived at least from the \a EngineComponent interface +of the \a Engines module. In case of :sat:{CPPCMP} module, the name of the CORBA +component is \b :sat:{CPPCMP}_ORB and the name of the interface is \b :sat:{CPPCMP}_Gen. + +\ref build_proc_files "<< Previous"
\ref src_dir ">> Next" + +\page src_dir The src directory + +The \c src directory contains all source files required to build CORBA engine and +(optionally) GUI libraries of the module. Each of these entities usually +has (but this is not actually obligatory) its own directory. + +The \c Makefile.am simply triggers the path of sub-directories described +by the \a SUBDIRS target. + +- \c src/:sat:{CPPCMP} sub-directory + +This sub-directory contains the C++ source files that implement the engine +library of the module. The \c Makefile.am defines the rules used to build +the engine library from these source files. The name of the module +engine library is predefined and should be set as \c lib\Engine.so +where \c MODULE is a name of the module. In the case of the :sat:{CPPCMP} +module, the name of the engine library should be \c lib:sat:{CPPCMP}Engine.so. + +The \c :sat:{CPPCMP}.h, \c :sat:{CPPCMP}.cxx files implement \a :sat:{CPPCMP} class that is derived +from the \a :sat:{CPPCMP}_Gen interface of the \a POA_:sat:{CPPCMP}_ORB CORBA module and the +\a SALOME_Component_i class (base implementation of SALOME module engine +exported by the KERNEL module). + +In particular, \a :sat:{CPPCMP} class implements \a hello() and \a goodbye() functions +that are defined in the IDL interface \a :sat:{CPPCMP}_ORB:::sat:{CPPCMP}_Gen. + +\code +:sat:{CPPCMP}_ORB::status :sat:{CPPCMP}::hello( SALOMEDS::Study_ptr study, const char* name ) +{ +... +} +:sat:{CPPCMP}_ORB::status :sat:{CPPCMP}::goodbye( SALOMEDS::Study_ptr study, const char* name ) +{ +... +} +\endcode + +In addition, \c :sat:{CPPCMP}.cxx implements a factory function which is used by +the SALOME container to create an instance of the :sat:{CPPCMP} CORBA engine +by demand: + +\code +extern "C" +{ + PortableServer::ObjectId* :sat:{CPPCMP}Engine_factory( + CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa, + PortableServer::ObjectId* contId, + const char* instanceName, + const char* interfaceName) + { + :sat:{CPPCMP}* my:sat:{CPPCMP} = new :sat:{CPPCMP}(orb, poa, contId, instanceName, interfaceName); + return my:sat:{CPPCMP}->getId(); + } +} +\endcode + +- \c src/:sat:{CPPCMP}GUI sub-directory + +This directory contains the C++ source files that implement the GUI +library of :sat:{CPPCMP} module. By default, the name of the module +GUI library is predefined and should be set as \c lib\.so +where \c MODULE is a name of the module. In the case of the :sat:{CPPCMP} +module, the name of the GUI library should be \c lib:sat:{CPPCMP}.so. It is +also possible to use custom name of the GUI library of a module, but +in this case, in order to be possible to use this module in SALOME GUI +desktop, the name of the GUI library should be defined in the +\c SalomeApp.xml file, in the module's main section, using \a "library" +parameter, for example: + +\code +
+ + + +
+\endcode + +The implementation of GUI library of the :sat:{CPPCMP} module should be done +according to the architecture and rules specified by the SALOME GUI +module. The main GUI module class (a\ :sat:{CPPCMP}GUI in our case) should be +derived from the \a SalomeApp_Module class. + +The developer has to redefine a set of methods which define the +module behavior in GUI, for example, create menus, toolbars, define +context popup menus, objects selection behavior, implement dialog +boxes etc. + +Here below is a short description of these methods. For more details +please refer to the SALOME GUI module documentation. + +- \a initialize() - module initialization; usually used to create + GUI actions, menus, toolbars and so on; +- \a activateModule() - module activation; perform actions which should + be done when the module is activated by the user, for example, show + related menus and toolbars; +- \a deactivateModule() - module deactivation; perform actions which should + be done when the module is deactivated by the user, for example, + hide related menus and toolbars; +- \a windows() - get a list and a position of the dockable windows to be + associated with the module; these windows will be automatically + opened and positioned according to the settings defined by the value + returned by this function; +- \a viewManagers() - get a list of the compatible viewers; these viewers + will be automatically opened/raised on the module activation; +- \a contextMenuPopup() - create and return context popup menu according + to the current selection; +- \a createPreferences() - initialize module's preferences; +- \a preferencesChanged() - callback function that is called when some + module's preference is changed by the user; allows to perform the + corresponding actions; +- \a createSelection() - create and return menu selection object; this is + a part of the context popup menu definition API; +- \a engineIOR() - get the reference to the module CORBA engine; +- \a moduleIcon() and \a iconName() - these methods can be used to customize + the module's main icon; +- \a displayer() - get the reference to the module's \a Displayer class; this + is the part of common Show/Hide functionality mechanism; +- \a storeVisualParameters() and \a restoreVisualParameters() - these methods + can be redefined to store/restore different visualization attributes of the + presentable data if it is supported by the module, for example transparency, + colors, display mode and other presentable parameters; +- \a canCopy(), \a copy(), \a canPaste(), \a paste() - these methods are the + part of the common Copy/Paste functionality; +- \a isDraggable(), \a isDropAccepted(), \a dropObjects() - these methods + are the part of the common Drag-n-Drop functionality; +- \a createOperation() - this function can be used as a part of the + transaction-based operations mechanism. +- \a renameAllowed(), \a renameObject() - can be used for in-place (Object + browser) renaming of the data entities, if it is supported by the module. + +Note, that all of these methods are optional and need not be +obligatory implemented because \a SalomeApp_Module class provides a +base implementation of these functions. It's sometimes enough to +implement only some of them, depending on the module needs. + +In the case of :sat:{CPPCMP} module, only the following methods are +implemented (other ones are just stubs, added for sample reasons): + +- \a engineIOR() that initializes :sat:{CPPCMP} module's engine: + +\code +QString :sat:{CPPCMP}GUI::engineIOR() const +{ + init(); // initialize engine, if necessary + CORBA::String_var anIOR = getApp()->orb()->object_to_string( myEngine.in() ); + return QString( anIOR.in() ); +} +\endcode + +- \a initialize() that creates actions, menus and toolbars for module's services + service: + +\code +void :sat:{CPPCMP}GUI::initialize( CAM_Application* app ) +{ + // call the parent implementation + SalomeApp_Module::initialize( app ); + + // get reference to the desktop (used as a parent for actions) + QWidget* dsk = app->desktop(); + // get resources manager + SUIT_ResourceMgr* resMgr = app->resourceMgr(); + + // create actions + // ... Test me operation + createAction( OpTestMe, // operation id + tr( "TLT_OP_TESTME" ), // tooltip + resMgr->loadPixmap( ":sat:{CPPCMP}",tr( "ICON_OP_TESTME" ) ), // icon + tr( "MEN_OP_TESTME" ), // menu title + tr( "STS_OP_TESTME" ), // status tip + 0, // accelerator (not set) + dsk, // parent + false, // togglable flag (no) + this, // action receiver + SLOT( testMe() ) ); // action slot + // create other actions ............ + + // create menus + int menuId; + menuId = createMenu( tr( "MEN_FILE" ), -1, -1 ); // File menu + createMenu( separator(), menuId, -1, 10 ); // add separator to File menu + menuId = createMenu( tr( "MEN_FILE_:sat:{CPPCMP}" ), menuId, -1, 10 ); // File - :sat:{CPPCMP} submenu + createMenu( OpTestMe, menuId ); // File - :sat:{CPPCMP} - Test me + // create other menus ............ + + // create toolbars + int aToolId; + aToolId = createTool ( tr( "TOOL_TEST" ) ); // Test toolbar + createTool( OpTestMe, aToolId ); // Test - Test me + // create other toolbars ............ + + // set-up popup menu + QtxPopupMgr* mgr = popupMgr(); + mgr->insert( action( Op:sat:{CPPCMP} ), -1, -1 ); // :sat:{CPPCMP} + mgr->setRule( action( Op:sat:{CPPCMP} ), baseRule + " and isComponent", QtxPopupMgr::VisibleRule ); + // create other popup menu commands ............ +} +\endcode + +- \a activateModule() that activates menus and toolbars + +\code +bool :sat:{CPPCMP}GUI::activateModule( SUIT_Study* theStudy ) +{ + // call parent implementation + bool bOk = SalomeApp_Module::activateModule( theStudy ); + + // show own menus + setMenuShown( true ); + // show own toolbars + setToolShown( true ); + + // return the activation status + return bOk; +} +\endcode + +- \a deactivateModule() that deactivates menus and toolbars + +\code +bool :sat:{CPPCMP}GUI::deactivateModule( SUIT_Study* theStudy ) +{ + // hide own menus + setMenuShown( false ); + // hide own toolbars + setToolShown( false ); + + // call parent implementation and return the activation status + return SalomeApp_Module::deactivateModule( theStudy ); +} +\endcode + +- \a windows() that set-ups dockable windows requested by the module + +\code +void :sat:{CPPCMP}GUI::windows( QMap& theMap ) const +{ + // want Object browser, in the left area + theMap.insert( SalomeApp_Application::WT_ObjectBrowser, + Qt::LeftDockWidgetArea ); + // want Python console, in the bottom area + theMap.insert( SalomeApp_Application::WT_PyConsole, + Qt::BottomDockWidgetArea ); +} +\endcode + +- \a isDragable(), \a isDropAccepted() and \a dropObjects() methods that handle +the Drag-n-Drop operation + +\code +bool :sat:{CPPCMP}GUI::isDragable( const SUIT_DataObject* what ) const +{ + // we allow dragging any :sat:{CPPCMP} object, except the top-level component + const SalomeApp_ModuleObject* aModObj = dynamic_cast( what ); + return ( aModObj == 0 ); +} + +bool :sat:{CPPCMP}GUI::isDropAccepted( const SUIT_DataObject* where ) const +{ + // we allow dropping of all objects + return true; +} + +void :sat:{CPPCMP}GUI::dropObjects( const DataObjectList& what, SUIT_DataObject* where, + const int row, Qt::DropAction action ) +{ + if (action != Qt::CopyAction && action != Qt::MoveAction) + return; // unsupported action + + // get parent object + SalomeApp_DataObject* dataObj = dynamic_cast( where ); + if ( !dataObj ) return; // wrong parent + _PTR(SObject) parentObj = dataObj->object(); + + // collect objects being dropped + :sat:{CPPCMP}_ORB::object_list_var objects = new :sat:{CPPCMP}_ORB::object_list(); + objects->length( what.count() ); + int count = 0; + for ( int i = 0; i < what.count(); i++ ) { + dataObj = dynamic_cast( what[i] ); + if ( !dataObj ) continue; // skip wrong objects + _PTR(SObject) sobj = dataObj->object(); + objects[i] = _CAST(SObject, sobj)->GetSObject(); + count++; + } + objects->length( count ); + + // call engine function + engine()->copyOrMove( objects.in(), // what + _CAST(SObject, parentObj)->GetSObject(), // where + row, // row + action == Qt::CopyAction ); // isCopy + + // update Object browser + getApp()->updateObjectBrowser( false ); +} +\endcode + +An implemention of the \a hello() and \a goodbye() methods is quite simple. +These operations show the dialog box proposing the user to enter the name and +pass the name entered by the user to the engine side, using the corresponding +CORBA service. + +\code +void :sat:{CPPCMP}GUI::hello() +{ + SalomeApp_Study* study = dynamic_cast( application()->activeStudy() ); + _PTR(Study) studyDS = study->studyDS(); + + // request user name + bool ok; + QString name = QInputDialog::getText( getApp()->desktop(), tr( "QUE_:sat:{CPPCMP}_TITLE" ), tr( "QUE_ENTER_NAME" ), + QLineEdit::Normal, QString::null, &ok ); + + if ( ok && !name.trimmed().isEmpty() ) { + // say :sat:{CPPCMP} to SALOME + :sat:{CPPCMP}_ORB::status status = engine()->:sat:{CPPCMP}( _CAST(Study, studyDS)->GetStudy(), (const char*)name.toLatin1() ); + + // update Object browser + getApp()->updateObjectBrowser(true); + + // process operation status + switch( status ) { + case :sat:{CPPCMP}_ORB::OP_OK: + // everything's OK + SUIT_MessageBox::information( getApp()->desktop(), + tr( "INF_:sat:{CPPCMP}_TITLE" ), + tr( "INF_:sat:{CPPCMP}_MSG" ).arg( name ), + tr( "BUT_OK" ) ); + break; + case :sat:{CPPCMP}_ORB::OP_ERR_ALREADY_MET: + // error: already said :sat:{CPPCMP} + SUIT_MessageBox::warning( getApp()->desktop(), + tr( "INF_:sat:{CPPCMP}_TITLE" ), + tr( "ERR_:sat:{CPPCMP}_ALREADY_MET" ).arg( name ), + tr( "BUT_OK" ) ); + break; + case :sat:{CPPCMP}_ORB::OP_ERR_UNKNOWN: + default: + // other errors + SUIT_MessageBox::critical( getApp()->desktop(), + tr( "INF_:sat:{CPPCMP}_TITLE" ), + tr( "ERR_ERROR" ), + tr( "BUT_OK" ) ); + break; + } + } +} + +void :sat:{CPPCMP}GUI::goodbye() +{ + SalomeApp_Application* app = dynamic_cast( application() ); + SalomeApp_Study* study = dynamic_cast( application()->activeStudy() ); + _PTR(Study) studyDS = study->studyDS(); + LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); + + QString name; + + // get selection + SALOME_ListIO selected; + aSelMgr->selectedObjects( selected ); + if ( selected.Extent() == 1 ) { + Handle(SALOME_InteractiveObject) io = selected.First(); + _PTR(SObject) so = studyDS->FindObjectID( io->getEntry() ); + if ( so ) { + _PTR(SComponent) comp = so->GetFatherComponent(); + if ( comp && comp->ComponentDataType() == ":sat:{CPPCMP}" && io->getEntry() != comp->GetID() ) { + name = so->GetName().c_str(); + } + } + } + + // request user name if not specified + if ( name.isEmpty() ) { + bool ok; + name = QInputDialog::getText( getApp()->desktop(), tr( "QUE_GOODBYE_TITLE" ), tr( "QUE_ENTER_NAME" ), + QLineEdit::Normal, QString::null, &ok ); + } + + if ( !name.trimmed().isEmpty() ) { + // say goodby to SALOME + :sat:{CPPCMP}_ORB::status status = engine()->goodbye( _CAST(Study, studyDS)->GetStudy(), (const char*)name.toLatin1() ); + + // update Object browser + getApp()->updateObjectBrowser(true); + + // process operation status + switch( status ) { + case :sat:{CPPCMP}_ORB::OP_OK: + // everything's OK + SUIT_MessageBox::information( getApp()->desktop(), + tr( "INF_GOODBYE_TITLE" ), + tr( "INF_GOODBYE_MSG" ).arg( name ), + tr( "BUT_OK" ) ); + break; + case :sat:{CPPCMP}_ORB::OP_ERR_DID_NOT_MEET: + // error: did not say :sat:{CPPCMP} yet + SUIT_MessageBox::warning( getApp()->desktop(), + tr( "INF_GOODBYE_TITLE" ), + tr( "ERR_GOODBYE_DID_NOT_MEET" ).arg( name ), + tr( "BUT_OK" ) ); + break; + case :sat:{CPPCMP}_ORB::OP_ERR_UNKNOWN: + default: + // other errors + SUIT_MessageBox::critical( getApp()->desktop(), + tr( "INF_GOODBYE_TITLE" ), + tr( "ERR_ERROR" ), + tr( "BUT_OK" ) ); + break; + } + } +} +\endcode + +Also, \c :sat:{CPPCMP}GUI.cxx provide an implementation of a factory function that is used +by the SALOME GUI to create an instance of the :sat:{CPPCMP} GUI class by demand. +It implements also another factory function to retrieve the +version number of the module (in the About dialog box for example): + +\code +extern "C" { + CAM_Module* createModule() + { + return new :sat:{CPPCMP}GUI(); + } + + char* getModuleVersion() + { + return (char*):sat:{CPPCMP}_VERSION_STR; + } +} +\endcode + +\ref idl_dir "<< Previous"
\ref bin_dir ">> Next" + +\page bin_dir The bin directory + +The file \c VERSION.in is used to document the module, it must define its +version and (optionally) its compatibilities or incompatibilities with +other modules. Therefore, it is strongly recommended but is not +essential for correct operation of the module. + +The \c runAppli.in file is the equivalent of the \c runSalome script +distributed by the KERNEL module but configured to start SALOME +session with :sat:{CPPCMP} module only. + +The \c myrunSalome.py file reuses part of functionality provided by the +KERNEL's \c runSalome.py script. It is used to run SALOME session and +start :sat:{CPPCMP} module in this session. + +\ref src_dir "<< Previous"
\ref doc_dir ">> Next" + +\page doc_dir The doc directory + +This directory provides documentation files of the module. The +documentation of the module can be implemented in the arbitrary +way. But if you want your documentation to appear in the SALOME GUI +desktop's Help menu, some specific actions should be done as follows. + +The documentation should be generated in the HTML format. For example, +the documentation of the :sat:{CPPCMP} module is generated using Doxygen +tool. It allows to generate structured set of HTML pages from the set +of input plain text files. Input source files should include Doxygen +tags and optionally direct HTML tags. For more details please refer to +the Doxygen documentation. + +The resulting documentation of a module should include at least one +file \c index.html. All the HTML and image files should be exported by +the build procedure to the following directory: +\c \/share/doc/salome/gui/\ +where \c module_installation_dir is a module installation folder and +\c MODULE is its name. For example, for :sat:{CPPCMP} module, at least one file +should exist: +\c \<:sat:{CPPCMP}_module_installation_dir\>/share/doc/salome/gui/:sat:{CPPCMP}/index.html. + +The SALOME GUI automatically searches for the index.html file in the +mentioned module directory. If the file is found, the corresponding +menu command is automatically added to the Help menu of the SALOME GUI +desktop. + +\ref bin_dir "<< Previous"
\ref build_procedure ">> Next" + +\page build_procedure Construction, installation + +Before building :sat:{CPPCMP} module, please ensure that SALOME environment is +set properly. Assume that SALOME environment is set in env_products.sh +script. In order to build and install :sat:{CPPCMP} module, you have to +perform several steps: + +
+[bash% ] source env_products.sh
+[bash% ] mkdir :sat:{CPPCMP}_BUILD
+[bash% ] cd :sat:{CPPCMP}_BUILD
+[bash% ] ../:sat:{CPPCMP}1_SRC/build_configure
+[bash% ] ../:sat:{CPPCMP}1_SRC/configure --prefix=\<:sat:{CPPCMP}_module_installation_dir\>
+[bash% ] make
+[bash% ] make install
+
+ +The first command creates a build directory for the :sat:{CPPCMP} module. Then +next step is to cd to this build directory. From this directory you +sequentially invoke \c build_configure, \c configure, \c make and \c make install +commands. On each step, you have to ensure that the operation is +finished correctly (no errors raised). + +The \c \<:sat:{CPPCMP}_module_installation_dir\> variable above defines the +destination directory to which the :sat:{CPPCMP} module should be +installed. After the last step is finished, the :sat:{CPPCMP} module is built +and installed to the \c \<:sat:{CPPCMP}_module_installation_dir\> directory. + +\ref doc_dir "<< Previous"
\ref run_procedure ">> Next" + +\page run_procedure Running SALOME + +Go to the the \c \<:sat:{CPPCMP}_module_installation_dir\> directory and type: + +
+[bash% ] ./bin/salome/runAppli
+
+ +This command runs SALOME session configured for KERNEL and the :sat:{CPPCMP} +module. At the end of running, the user will be prompted by the +Python interpreter command line configured for SALOME that provides +access to SALOME Python API (including CORBA interfaces). + +The \c runAppli file is a shell script that executes a Python commands +running SALOME session by passing arguments to it in a command line: + +
+${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python -i $:sat:{CPPCMP}_ROOT_DIR/bin/salome/myrunSalome.py --modules=:sat:{CPPCMP} --killall
+
+ +These arguments state that the \c myrunSalome.py script located in the +:sat:{CPPCMP} module will be used, that the :sat:{CPPCMP} component will be +activated and all previously running SALOME sessions should be +shutdowned. + +This command will not function unless the following environment +variables have previously been set: + +
+export KERNEL_ROOT_DIR=\
+export :sat:{CPPCMP}_ROOT_DIR=\<:sat:{CPPCMP}_module_installation_dir\>
+
+ +\warning It is possible that the SALOME run will not reach the end. +In some circumstances, the time to start CORBA servers may be long and +could exceed the timeout. If the reasons is that the time to +load dynamic libraries is long, it is possible that a second run +immediately afterwards will be successful. + +\ref build_procedure "<< Previous"
\ref load_module ">> Next" + +\page load_module Loading :sat:{CPPCMP} component + +The \a :sat:{CPPCMP}_ORB module has to be imported before making a request to +load the component into the container, to obtain access to methods of +the component. This container is made accessible in the \c myrunSalome.py +by means of the \a container variable: + +
+>> import salome
+>> salome.salome_init()
+>> import :sat:{CPPCMP}_ORB
+>> c = container.load_impl(":sat:{CPPCMP}", ":sat:{CPPCMP}")
+>> c.:sat:{CPPCMP}(salome.myStudy, "Christian")
+
+ +The last instruction invokes :sat:{CPPCMP} module's service \a :sat:{CPPCMP}(). Proceed as +follows to see the CORBA objects created by these actions: + +
+>> clt.showNS()
+
+ +\ref run_procedure "<< Previous"
\ref catalog_def ">> Next" + +\page catalog_def :sat:{CPPCMP} module catalog definition + +In the example from the previous chapter, the :sat:{CPPCMP} component was +loaded by making a direct request to the SALOME container. This is not +the standard method for loading of a component. The normal way uses +the SALOME LifeCycle service that invokes SALOME Module Catalog +services to identify the component and its properties and then calls +the requested container to load the component. + +Before this method can be used, the component must be declared in a +catalog in the XML format, for which the name must be +\c \Catalog.xml. In our case, it will be \c :sat:{CPPCMP}Catalog.xml. +Usually this catalog is put to the resources sub-directory of the +directory tree. The simplest way to create this file is to use Catalog +Generator utility provided by the SALOME KERNEL module, that can +automatically generate XML description file from the IDL file. + +\ref load_module "<< Previous"
\ref load_lcc ">> Next" + +\page load_lcc Loading :sat:{CPPCMP} component via LifeCycle service + +The method of loading the component is not very different from that +is described above. The services of the LifeCycle module are used in +this case instead of calling the container directly. The call sequence +is contained in the \c myrunSalome.py \a test() function. + +
+    import salome
+    salome.salome_init()
+    c = test(clt)
+    c.:sat:{CPPCMP}(salome.myStudy, "Christian")
+
+ +The test function creates the LifeCycle object. It then asks for the +:sat:{CPPCMP} component to be loaded in the \a FactoryServer container: + +\code +def test(clt): + """ + Test function that creates an instance of :sat:{CPPCMP} component + usage : :sat:{CPPCMP}=test(clt) + """ + import LifeCycleCORBA + lcc = LifeCycleCORBA.LifeCycleCORBA(clt.orb) + import :sat:{CPPCMP}_ORB + :sat:{CPPCMP} = lcc.FindOrLoadComponent("FactoryServer", ":sat:{CPPCMP}") + return :sat:{CPPCMP} +\endcode + +\ref catalog_def "<< Previous"
\ref load_iapp ">> Next" + +\page load_iapp Loading from the GUI (IAPP) + +In order to activate :sat:{CPPCMP} module in the SALOME GUI desktop, the user +should press the :sat:{CPPCMP} module's button on the \a Modules toolbar or +select the name of the module in the combo box on this toolbar. + +The image file to be used as an icon of a module should be exported by +the module build procedure. The icon file name is defined in \c SalomeApp.xml: +\code +
+ + +
+\endcode + +\ref load_lcc "<< Previous" + +*/ diff --git a/data/templates/CppComponent/doc/static/doxygen.css b/data/templates/CppComponent/doc/static/doxygen.css new file mode 100755 index 0000000..7a2dcbd --- /dev/null +++ b/data/templates/CppComponent/doc/static/doxygen.css @@ -0,0 +1,836 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 12px; +} + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + padding: 2px; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code { + color: #4665A2; +} + +a.codeRef { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.version { + border:1px solid #0000FF; + color: #CCCCCC; + font-family: Arial, Helvetica, sans-serif; + font-size: 9pt; + text-align: center; + width:100px; + -moz-border-radius: 8px; + margin: 5px; +} + +div.footer1 { + background-color: #DFE5F1; + border: 1px solid #AAAAAA; + font-family: Arial, Helvetica, sans-serif; + font-size: 11px; + padding: 10px; + margin-top: 15px; +} + + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 10px; + margin-right: 10px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C4CFE5; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.memitem { + padding: 0; + margin-bottom: 10px; +} + +.memname { + white-space: nowrap; + font-weight: bold; + margin-left: 6px; +} + +.memproto { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 8px; + border-top-left-radius: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + +} + +.memdoc { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 2px 5px; + background-color: #FBFCFD; + border-top-width: 0; + /* opera specific markup */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + border-spacing: 6px 2px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + + + + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0px; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; + margin: 5px; +} + +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +dl +{ + padding: 0 0 0 10px; +} + +dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug +{ + border-left:4px solid; + padding: 0 0 0 6px; +} + +dl.note +{ + border-color: #D0D000; +} + +dl.warning, dl.attention +{ + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + border-color: #00D000; +} + +dl.deprecated +{ + border-color: #505050; +} + +dl.todo +{ + border-color: #00C0E0; +} + +dl.test +{ + border-color: #3030E0; +} + +dl.bug +{ + border-color: #C08050; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + background-color: #175783; + border: 1px solid; + height: 80px; + background-repeat: no-repeat; +/* font: 300% arial,sans-serif;*/ + margin: 0px; + padding: 0px; +} + +#projectbrief +{ + font: 120% arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + background: url("head.png"); + background-color: #175783; + border: 1px solid; + height: 80px; + background-repeat: no-repeat; + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + diff --git a/data/templates/CppComponent/doc/static/footer.html b/data/templates/CppComponent/doc/static/footer.html new file mode 100755 index 0000000..4c89a2b --- /dev/null +++ b/data/templates/CppComponent/doc/static/footer.html @@ -0,0 +1,12 @@ + + + +
+
+ Copyright © 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE
+ Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+
+
+ + + \ No newline at end of file diff --git a/data/templates/CppComponent/doc/static/header.html.in b/data/templates/CppComponent/doc/static/header.html.in new file mode 100755 index 0000000..4571b43 --- /dev/null +++ b/data/templates/CppComponent/doc/static/header.html.in @@ -0,0 +1,20 @@ + + + + + +$title + +$treeview +$search +$mathjax + + + + +
+
Version: @VERSION@
+ +
diff --git a/data/templates/CppComponent/idl/CPPCMP_Gen.idl b/data/templates/CppComponent/idl/CPPCMP_Gen.idl new file mode 100755 index 0000000..8a7a310 --- /dev/null +++ b/data/templates/CppComponent/idl/CPPCMP_Gen.idl @@ -0,0 +1,89 @@ +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#ifndef __:sat:{CPPCMP}_GEN__ +#define __:sat:{CPPCMP}_GEN__ + +/*! + \defgroup EXAMPLES SALOME EXAMPLES components +*/ + +#include "SALOME_Component.idl" +#include "SALOME_Exception.idl" + +/*! + \ingroup EXAMPLES + This package contains the interface :sat:{CPPCMP}_ORB used + for %:sat:{CPPCMP} component as an example in %SALOME application. +*/ +module :sat:{CPPCMP}_ORB +{ + typedef sequence object_list; + + /*! + \brief Operation result codes + */ + enum status { + OP_OK, //!< OK result + OP_ERR_ALREADY_MET, //!< ERROR: already met + OP_ERR_DID_NOT_MEET, //!< ERROR: did not meet yet + OP_ERR_UNKNOWN //!< ERROR: other problems + }; + + /*! + \brief Interface of the %:sat:{CPPCMP} component + */ + interface :sat:{CPPCMP}_Gen : Engines::EngineComponent + { + /*! + \brief Say hello to \a name + \param study SALOME study + \param name person's name + \return operation status + */ + status hello(in SALOMEDS::Study study, in string name) + raises(SALOME::SALOME_Exception); + + /*! + \brief Say goodbye to \a name + \param study SALOME study + \param name person's name + \return operation status + */ + status goodbye(in SALOMEDS::Study study, in string name) + raises (SALOME::SALOME_Exception); + + /*! + \brief Copy or move objects to the specified position + + This function is used in the drag-n-drop functionality. + + \param what objects being copied/moved + \param where parent object where objects are copied/moved to + \param row position in the parent object's children list at which objects are copied/moved + \param isCopy \c true if object are copied or \c false otherwise + */ + void copyOrMove(in object_list what, in SALOMEDS::SObject where, in long row, in boolean isCopy); + }; +}; + +#endif diff --git a/data/templates/CppComponent/idl/Makefile.am b/data/templates/CppComponent/idl/Makefile.am new file mode 100755 index 0000000..a2d0fae --- /dev/null +++ b/data/templates/CppComponent/idl/Makefile.am @@ -0,0 +1,114 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# This 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 = :sat:{CPPCMP}_Gen.idl + +BASEIDL_FILES_PY=$(BASEIDL_FILES:%.idl=%_idl.py) + +# This variable defines the files to be installed +dist_salomeidl_DATA = $(BASEIDL_FILES) + +# GUI idl common library +lib_LTLIBRARIES = libSalomeIDL:sat:{CPPCMP}.la + +# Sources built from idl files +nodist_libSalomeIDL:sat:{CPPCMP}_la_SOURCES = \ + :sat:{CPPCMP}_GenSK.cc \ + :sat:{CPPCMP}_GenDynSK.cc +:sat:{CPPCMP}_GenDynSK.cc: :sat:{CPPCMP}_GenSK.cc + +# header files must be exported: other modules have to use this library +nodist_salomeinclude_HEADERS = $(BASEIDL_FILES:%.idl=%.hh) + +libSalomeIDL:sat:{CPPCMP}_la_CPPFLAGS = \ + $(KERNEL_CXXFLAGS) \ + -I$(top_builddir)/idl \ + @CORBA_CXXFLAGS@ \ + @CORBA_INCLUDES@ + +libSalomeIDL:sat:{CPPCMP}_la_LDFLAGS = -no-undefined -version-info=0:0:0 +libSalomeIDL:sat:{CPPCMP}_la_LIBADD = \ + $(KERNEL_LDFLAGS) -lSalomeIDLKernel \ + @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 + +IDLCXXFLAGS = \ + -bcxx \ + @IDLCXXFLAGS@ \ + -I$(top_builddir)/idl/salome \ + -I$(KERNEL_ROOT_DIR)/idl/salome +IDLPYFLAGS = \ + @IDLPYFLAGS@ \ + -I$(KERNEL_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 $(DESTDIR)$(salomepythondir) + ls $^ | while read file; do \ + $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \ + done + +# we want to remove only staff generated for IDL files and nothing more +uninstall-local: + @for modulen in :sat:{CPPCMP}_ORB ; do \ + test -d $(DESTDIR)$(salomepythondir)/$${modulen} && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen} ; \ + test -d $(DESTDIR)$(salomepythondir)/$${modulen}__POA && echo "Removing $(DESTDIR)$(salomepythondir)/$${modulen}__POA" && rm -rf $(DESTDIR)$(salomepythondir)/$${modulen}__POA ; \ + done ; \ + for filen in $(BASEIDL_FILES_PY) ; do \ + echo "Removing $(DESTDIR)$(salomepythondir)/$${filen}" && rm -f $(DESTDIR)$(salomepythondir)/$${filen}* ; \ + done + +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 $$dep 2>/dev/null | \ + sed 's/\.o/\SK.cc/' >>$@; \ + fi; \ + done ; + +-include .depidl diff --git a/data/templates/CppComponent/resources/CPPCMP.png b/data/templates/CppComponent/resources/CPPCMP.png new file mode 100755 index 0000000000000000000000000000000000000000..674f8fc979214b86889c9eb4361c23102aca4a02 GIT binary patch literal 1452 zcmbu<`#aQG7y$6E+crjHXLG4ROYIb8BU_6o8nMxX3QL1TWhIwtObvR-QtMuAcBP9* zuB)U_N-XAzF~hjdjLQf!826bma+^If{R#Vd&Uw#!&U2pg%lkej^_2T@1Y8deK@h^l z+0g^6M)C<$0nxEAjRF>xCp_t6#Z#_cPBNJc-2eX&2n2ZKYXk`jg{rEm zs;Q{~v9hxAYhGJhJ3BkOu(04tRCgo7PmwfFlaU@|El-lRH$@jqGQd*x{m6#?q#gd0 z9RakR=URRUYTX^wYJ8z(&&5{LOLU9NRLih-%kXxqNV@g4_9M79431$J({>_;>2kBf zHLla`P8T+r8IauLpVECcz4v@Zf6)E@kSqr7Df8Cz;rN1r7ezz2i+D-JgUKaBsipL+ zw?mJrdkfz4^4^a=tDh)p5R^1FHZ}pHl}!`n%>a?u%zxc1cts?Uh&>-jBodiSAq%P~ z0F_1sXf!IVh1R0b+Sb~pK$mN8Z)Y%>3>KXUbjWoAELNwG%wn;+y1Kf79=TqiPmaxI zb2uC>mpd>pFbE7O2-(BK!#o~uMDFwF&!ch@_So3iIA6f$^92(V6O#&4QJY)I&T`hgZrc5%dbMRS6)+?=(8 zwozqF5hK2?&NseVKj$`5n}vD%aa(77`pEOZ8D!$77mVwZx~e13J&P{F&)!yU@pGvIr7 zJaF@Y55KZXQtxtC_CO?r_;grymzm%Rp<%IT%|x&LWxkv4rZW0suVnaVALu}yMmFv4 zj#;{%mf_$PNKnP2iJ%z>%EzLgs^D@s7U+K%U9{hGDn6QrX5HfpD#U`>>KKe8=OA%w zYNl$bkXdN63x&$JK=0zYCym%gW|E7Y#e0|{<@|@0)j!s84YyL9?JTM0Rw>p8WaHBM z@W0^Y&YCI}!ZQ^~wb3x>SN&(pmAMZi_V&T47N$RQ$vuxR*=ZThKUhEa!gn9*@saPa zX8R)|rp7%cgV|yuO%MEbuM;ggw)!UH_EAycpTa+us$>XmaO~E4PvqskA%=}V`B(S* z?99DWM`6~+gUPU!JLe|_rg7Jr57K!#XD<1lYc1=2dAD!WyA$e2nHZzU&>^n&{bs0A z6&%OOD*KD>zTI`p_3wOLn2{)*{8_!wc>Y`0Kx}AYU0J4gx{iiYK3NNHTkdNSp_*{g hgrgSyPXE)ITK|^uzi(2WXvqIb7bkbe3WvbN{{X!x0IvW5 literal 0 HcmV?d00001 diff --git a/data/templates/CppComponent/resources/CPPCMPCatalog.xml.in b/data/templates/CppComponent/resources/CPPCMPCatalog.xml.in new file mode 100755 index 0000000..4107fd1 --- /dev/null +++ b/data/templates/CppComponent/resources/CPPCMPCatalog.xml.in @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + :sat:{CPPCMP} + :sat:{CPPCMP} + OTHER + Vadim SANDLER + @VERSION@ + Sample module + 1 + 1 + :sat:{CPPCMP}.png + + + + :sat:{CPPCMP}_Gen + :sat:{CPPCMP} engine + + + hello + Vadim SANDLER + @VERSION@ + Hello function + 1 + + + study + Study + study + + + name + string + user name + + + + + return + status + operation status + + + + + + goodbye + Vadim SANDLER + @VERSION@ + Goodbye function + 0 + + + study + Study + study + + + name + string + user name + + + + + return + status + operation status + + + + + + + + + diff --git a/data/templates/CppComponent/resources/Makefile.am b/data/templates/CppComponent/resources/Makefile.am new file mode 100755 index 0000000..d3413f9 --- /dev/null +++ b/data/templates/CppComponent/resources/Makefile.am @@ -0,0 +1,30 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +dist_salomeres_DATA = \ +:sat:{CPPCMP}.png \ +handshake.png \ +goodbye.png \ +testme.png + +# VSR: little trick to avoid putting if :sat:{CPPCMP}Catalog.xml to the distribution archive +nodist_salomeres_SCRIPTS = :sat:{CPPCMP}Catalog.xml SalomeApp.xml diff --git a/data/templates/CppComponent/resources/SalomeApp.xml.in b/data/templates/CppComponent/resources/SalomeApp.xml.in new file mode 100755 index 0000000..b101f83 --- /dev/null +++ b/data/templates/CppComponent/resources/SalomeApp.xml.in @@ -0,0 +1,40 @@ + + +
+ + + + + +
+
+ + +
+
+ + +
+
diff --git a/data/templates/CppComponent/resources/goodbye.png b/data/templates/CppComponent/resources/goodbye.png new file mode 100755 index 0000000000000000000000000000000000000000..849fe21a4ab3c000db3fca8fc5ad5467eb921924 GIT binary patch literal 2244 zcmV;#2s`(QP)Wx8C#_wr|~f-ItBAt}$y%sw5*(a(c+SOQ|eUJbyH zzkc@}4?On6N68g7@y4tF;-^pjhGZrWGC|m^5{Gq!u-tw3SGeVi`$;4-9C+pBp&vc| zlkdEJ{G<>30;mJgr5~495cb{Qdhmht<{i7q^%l5(*ChM)OyY=`IP__ID@1_@QsAaD zxS3w0QtZ8P7mqyrV9)5trtbqo>tqq12tWwYmO`TAnC8j_g0(W}7#;dptFbyn7=x=E zMur9eLFCtIRF-Lbt8CePP0y!xY(F*FUw8@F3nbU?`>}4d)*_`KYPV>u6$x8)bQE^v zv=*y10)em=t7ELugv}~*ADm`kd5vHH>X*Fu{NL7}n@JMJkqhM3N5J_cg}_>iwiazJ0(8iXu^3~q zwv%Nhj;O5^$z*b1EkV6Py;35d%_M+Cw?1&i5wJpbyx_RFsWd&k9j9v@5o?1sV2wp< zgT;b$ST3(n^E@nuuvMkyH3;LFOS9k#BOvkXtF-)pRy$_wnqe9>kD00CSlyn%8U?!PsA*KK8;4@3y_W?RzKROTTmCgd8gLkjZ37xJgtZ ziIiOl0E9#c*)^O*NQsn^Og4+(Y*4S&#Gxa{#JLN_XD$U0{rSSg@X)~i@y*xL+mn@8 z0|HbcNhX`iY##2DUZci=gKu(vsmMToo_xL^C*dN51R)SYA(eyd>TI;eL_XF;_^k%j zYL!DrkFgN|Q5;9E>rM{z=SR0qj0-8OKv;y7B-|{0g+T`MY0|FbwKv}8^z6(g>*W#!0HIoZW4uU z+Ch_`<>A#EESE~mOwaP%ONUyeTo*-`C0S4;v1H5CSO_LI6f%bVxf4Xa_CAphb1H!s6m0wMLEk z`FY+vG3}o(uKo!)2~>ghMgSM3Xe%jC&z)b2T0wBba(J z6w+$7@H~%JqeiJzWMOdu&#Tk)JYIPDaD4EsQ?CMl1WMf&J-!@3xB0QY6yoIjGiMvG z{O4%0QLm4W4EE8JO{0yb-3|!+7WI0adZR(3R->_2p|V!s((8~e<7z=@bDL0{xesK0e=Ge*U&rVIx;`=^c!^3a+SRK)BH3|JD zOG``4&7EcT%skU`7nq$}tiL;b?jNx>zmK&(4HVa({v++t%6U^n_P)J5H>d8#T7NJ0l?M0_lw|r~d`@-ZrYr S8hHr-0000~kCIW%_B8zuS65Za=V# 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 +#include CORBA_CLIENT_HEADER(SALOMEDS) +#include CORBA_CLIENT_HEADER(SALOMEDS_Attributes) + +#include + +#include + +namespace { + static std::string studyName(const std::string& name) + { + std::string fullName = "/:sat:{CPPCMP}/"; + fullName += name; + return fullName; + } +} + +/*! + \brief Constructor + + Creates an instance of the :sat:{CPPCMP} component engine + + \param orb reference to the ORB + \param poa reference to the POA + \param contId CORBA object ID, pointing to the owner SALOME container + \param instanceName SALOME component instance name + \param interfaceName SALOME component interface name +*/ +:sat:{CPPCMP}:::sat:{CPPCMP}(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) +{ + _thisObj = this; + _id = _poa->activate_object(_thisObj); // register and activate this servant object +} + +/*! + \brief Destructor + + Clean up allocated resources +*/ +:sat:{CPPCMP}::~:sat:{CPPCMP}() +{ + // nothing to do +} + +/*! + \brief Say hello to \a name + \param study SALOME study + \param name person's name + \return operation status +*/ +:sat:{CPPCMP}_ORB::status :sat:{CPPCMP}::hello(SALOMEDS::Study_ptr study, const char* name) +{ + // set exception handler to catch unexpected CORBA exceptions + Unexpect aCatch(SALOME_SalomeException); + + // set result status to error initially + :sat:{CPPCMP}_ORB::status result = :sat:{CPPCMP}_ORB::OP_ERR_UNKNOWN; + + // check if reference to study is valid + if (!CORBA::is_nil(study)) + { + // get full object path + std::string fullName = studyName(name); + // check if the object with the same name is already registered in the study + SALOMEDS::SObject_var sobj = study->FindObjectByPath(fullName.c_str()); + if (!CORBA::is_nil(sobj)) + { + // person is already registered in the study -> ERROR + result = :sat:{CPPCMP}_ORB::OP_ERR_ALREADY_MET; + } + else + { + // person is not registered yet -> register + SALOMEDS::StudyBuilder_var studyBuilder = study->NewBuilder(); // study builder + SALOMEDS::UseCaseBuilder_var useCaseBuilder = study->GetUseCaseBuilder(); // use case builder + + // find :sat:{CPPCMP} component; create it if not found + SALOMEDS::SComponent_var father = study->FindComponent(":sat:{CPPCMP}"); + if (CORBA::is_nil(father)) + { + // create component + father = studyBuilder->NewComponent(":sat:{CPPCMP}"); + // set name attribute + father->SetAttrString("AttributeName", ":sat:{CPPCMP}"); + // set icon attribute + father->SetAttrString("AttributePixMap", "ICON_HELLO"); + // register component in the study + studyBuilder->DefineComponentInstance(father, :sat:{CPPCMP}_Gen::_this()); + // add component to the use case tree + // (to support tree representation customization and drag-n-drop) + useCaseBuilder->SetRootCurrent(); + useCaseBuilder->Append(father); // component object is added as the top level item + } + + // create new sub-object, as a child of the component object + sobj = studyBuilder->NewObject(father); + sobj->SetAttrString("AttributeName", name); + // add object to the use case tree + // (to support tree representation customization and drag-n-drop) + useCaseBuilder->AppendTo(father, sobj); + + // cleanup + father->UnRegister(); + sobj->UnRegister(); + + // set operation status + result = :sat:{CPPCMP}_ORB::OP_OK; + } + } + + // return result of the operation + return result; +} + +/*! + \brief Say goodbye to \a name + \param study SALOME study + \param name person's name + \return operation status +*/ +:sat:{CPPCMP}_ORB::status :sat:{CPPCMP}::goodbye(SALOMEDS::Study_ptr study, const char* name) +{ + // set exception handler to catch unexpected CORBA exceptions + Unexpect aCatch(SALOME_SalomeException); + + // set result status to error initially + :sat:{CPPCMP}_ORB::status result = :sat:{CPPCMP}_ORB::OP_ERR_UNKNOWN; + + // check if reference to study is valid + if (!CORBA::is_nil(study)) + { + // get full object path + std::string fullName = studyName(name); + + // initially set error status: person is not registered + result = :sat:{CPPCMP}_ORB::OP_ERR_DID_NOT_MEET; + + // check if the object with the same name is registered in the study + // find all objects with same name + SALOMEDS::StudyBuilder_var studyBuilder = study->NewBuilder(); // study builder + SALOMEDS::UseCaseBuilder_var useCaseBuilder = study->GetUseCaseBuilder(); // use case builder + SALOMEDS::SObject_var sobj = study->FindObjectByPath(fullName.c_str()); + while (!CORBA::is_nil(sobj)) + { + std::list toRemove; + toRemove.push_back(sobj); + SALOMEDS::UseCaseIterator_var useCaseIt = useCaseBuilder->GetUseCaseIterator(sobj); // use case iterator + for (useCaseIt->Init(true); useCaseIt->More(); useCaseIt->Next()) + toRemove.push_back(useCaseIt->Value()); + + // perform removing of all found objects (recursively with children) + std::list::const_iterator it; + for(it = toRemove.begin(); it != toRemove.end(); ++it) + { + sobj = *it; + // remove object from the study + // - normally it's enough to call RemoveObject() method + // RemoveObject`WithChildren() also removes all children recursively if there are any + // - it's not necessary to remove it from use case builder, it is done automatically + studyBuilder->RemoveObjectWithChildren(sobj); + + // cleanup + sobj->UnRegister(); + + // set operation status to OK as at least one object is removed + result = :sat:{CPPCMP}_ORB::OP_OK; + } + + sobj = study->FindObjectByPath(fullName.c_str()); + } + } + + // return result of the operation + return result; +} + +/*! + \brief Copy or move objects to the specified position + + This function is used in the drag-n-drop functionality. + + \param what objects being copied/moved + \param where parent object where objects are copied/moved to + \param row position in the parent object's children list at which objects are copied/moved + \param isCopy \c true if object are copied or \c false otherwise +*/ +void :sat:{CPPCMP}::copyOrMove(const :sat:{CPPCMP}_ORB::object_list& what, + SALOMEDS::SObject_ptr where, + CORBA::Long row, CORBA::Boolean isCopy) +{ + if (CORBA::is_nil(where)) return; // bad parent + + SALOMEDS::Study_var study = where->GetStudy(); // study + SALOMEDS::StudyBuilder_var studyBuilder = study->NewBuilder(); // study builder + SALOMEDS::UseCaseBuilder_var useCaseBuilder = study->GetUseCaseBuilder(); // use case builder + SALOMEDS::SComponent_var father = where->GetFatherComponent(); // father component + std::string dataType = father->ComponentDataType(); + if (dataType != ":sat:{CPPCMP}") return; // not a :sat:{CPPCMP} component + + SALOMEDS::SObject_var objAfter; + if (row >= 0 && useCaseBuilder->HasChildren(where)) + { + // insert at given row -> find insertion position + SALOMEDS::UseCaseIterator_var useCaseIt = useCaseBuilder->GetUseCaseIterator(where); + int i; + for (i = 0; i < row && useCaseIt->More(); i++, useCaseIt->Next()); + { + if (i == row && useCaseIt->More()) + objAfter = useCaseIt->Value(); + } + } + + for (int i = 0; i < what.length(); i++) + { + SALOMEDS::SObject_var sobj = what[i]; + if (CORBA::is_nil(sobj)) continue; // skip bad object + + if (isCopy) + { + // copying is performed + // get name of the object + CORBA::String_var name = sobj->GetName(); + // create new object, as a child of the component object + SALOMEDS::SObject_var new_sobj = studyBuilder->NewObject(father); + new_sobj->SetAttrString("AttributeName", name.in()); + sobj = new_sobj; + } + + // insert the object or its copy to the use case tree + if (!CORBA::is_nil(objAfter)) + useCaseBuilder->InsertBefore(sobj, objAfter); // insert at given row + else + useCaseBuilder->AppendTo(where, sobj); // append to the end of list + } +} + +// Version information +char* :sat:{CPPCMP}::getVersion() +{ +#if :sat:{CPPCMP}_DEVELOPMENT + return CORBA::string_dup(:sat:{CPPCMP}_VERSION_STR"dev"); +#else + return CORBA::string_dup(:sat:{CPPCMP}_VERSION_STR); +#endif +} + +extern "C" +{ + /*! + \brief Exportable factory function: create an instance of the :sat:{CPPCMP} component engine + \param orb reference to the ORB + \param poa reference to the POA + \param contId CORBA object ID, pointing to the owner SALOME container + \param instanceName SALOME component instance name + \param interfaceName SALOME component interface name + \return CORBA object identifier of the registered servant + */ + PortableServer::ObjectId* :sat:{CPPCMP}Engine_factory(CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa, + PortableServer::ObjectId* contId, + const char* instanceName, + const char* interfaceName) + { + :sat:{CPPCMP}* component = new :sat:{CPPCMP}(orb, poa, contId, instanceName, interfaceName); + return component->getId(); + } +} diff --git a/data/templates/CppComponent/src/CPPCMP/CPPCMP.hxx b/data/templates/CppComponent/src/CPPCMP/CPPCMP.hxx new file mode 100755 index 0000000..f8ae056 --- /dev/null +++ b/data/templates/CppComponent/src/CPPCMP/CPPCMP.hxx @@ -0,0 +1,57 @@ +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +#ifndef _:sat:{CPPCMP}_HXX_ +#define _:sat:{CPPCMP}_HXX_ + +#include +#include CORBA_SERVER_HEADER(:sat:{CPPCMP}_Gen) +#include + +class :sat:{CPPCMP}: + public POA_:sat:{CPPCMP}_ORB:::sat:{CPPCMP}_Gen, + public Engines_Component_i +{ +public: + :sat:{CPPCMP}(CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa, + PortableServer::ObjectId* contId, + const char* instanceName, + const char* interfaceName); + virtual ~:sat:{CPPCMP}(); + + :sat:{CPPCMP}_ORB::status hello(SALOMEDS::Study_ptr study, const char* name); + :sat:{CPPCMP}_ORB::status goodbye(SALOMEDS::Study_ptr study, const char* name); + void copyOrMove(const :sat:{CPPCMP}_ORB::object_list& what, + SALOMEDS::SObject_ptr where, + CORBA::Long row, CORBA::Boolean isCopy); + virtual char* getVersion(); +}; + +extern "C" +PortableServer::ObjectId* :sat:{CPPCMP}Engine_factory(CORBA::ORB_ptr orb, + PortableServer::POA_ptr poa, + PortableServer::ObjectId* contId, + const char* instanceName, + const char* interfaceName); + +#endif diff --git a/data/templates/CppComponent/src/CPPCMP/Makefile.am b/data/templates/CppComponent/src/CPPCMP/Makefile.am new file mode 100755 index 0000000..2f3e52c --- /dev/null +++ b/data/templates/CppComponent/src/CPPCMP/Makefile.am @@ -0,0 +1,47 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# SuperVisionTest AddComponent : example of component that adds two numbers +# 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 = :sat:{CPPCMP}.hxx + +# Libraries targets +lib_LTLIBRARIES = lib:sat:{CPPCMP}Engine.la +dist_lib:sat:{CPPCMP}Engine_la_SOURCES = \ + :sat:{CPPCMP}.cxx + +lib:sat:{CPPCMP}Engine_la_CPPFLAGS = \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + $(KERNEL_CXXFLAGS) \ + -I$(top_builddir)/idl \ + -I$(top_builddir) + +lib:sat:{CPPCMP}Engine_la_LDFLAGS = \ + ../../idl/libSalomeIDL:sat:{CPPCMP}.la \ + $(KERNEL_LDFLAGS) \ + -lSalomeContainer \ + -lOpUtil \ + -lSalomeIDLKernel diff --git a/data/templates/CppComponent/src/CPPCMPGUI/CPPCMPGUI.cxx b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMPGUI.cxx new file mode 100755 index 0000000..8b20df9 --- /dev/null +++ b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMPGUI.cxx @@ -0,0 +1,920 @@ +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// 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 ":sat:{CPPCMP}GUI.h" +#include ":sat:{CPPCMP}_version.h" + +#include +#include +#include + +#include + +#include +#include +#include + +#include + +#include + +#include +#include +#include + +#include + +//! The only instance of the reference to engine +:sat:{CPPCMP}_ORB:::sat:{CPPCMP}_Gen_var :sat:{CPPCMP}GUI::myEngine; + +/*! + \brief Constructor + + Creates an instance of the :sat:{CPPCMP} GUI module. + Initializes (loads if necessary) :sat:{CPPCMP} module engine. + + \note Since SalomeApp_Module uses virtual inheritance + from LightApp_Module class, it's necessary to call both + base classes constructors, even though :sat:{CPPCMP}GUI class + inherits directly only SalomeApp_Module. +*/ +:sat:{CPPCMP}GUI:::sat:{CPPCMP}GUI() : + SalomeApp_Module(":sat:{CPPCMP}"), // module name + LightApp_Module(":sat:{CPPCMP}") // module name +{ + init(); // internal initialization +} + +/*! + \brief Destructor + + Destroys any allocated resources. +*/ +:sat:{CPPCMP}GUI::~:sat:{CPPCMP}GUI() +{ + // nothing to do +} + +/*! + \brief Get a reference to the :sat:{CPPCMP} module CORBA engine + + \note This function returns vartype in order to minimize possible crashes + when using this function with assignment operations. + On the other hand, this simplifies usage of this function when using it outside + the assignment operations, to minimize memory leaks caused by orphan CORBA + references (no need to take care of reference counting). + + \return reference to the module engine +*/ +:sat:{CPPCMP}_ORB:::sat:{CPPCMP}_Gen_var :sat:{CPPCMP}GUI::engine() +{ + init(); // initialize engine, if necessary + return myEngine; +} + +/*! + \brief Module initialization. + + Overloaded from CAM_Module class. + + Perform general module initialization (like creation of actions, + menus, toolbars, etc). + + \note This function is invoked only once per study, when the module + is first time activated by the user. + The study associated with the application might not exist + (created or opened) when this function is invoked, so it is not + recommended to perform any study-dependant actions here. + + \param app pointer to the current application instance +*/ +void :sat:{CPPCMP}GUI::initialize(CAM_Application* app) +{ + // call the parent implementation + SalomeApp_Module::initialize(app); + + // get reference to the desktop (used as a parent for actions) + QWidget* dsk = app->desktop(); + // get resources manager + SUIT_ResourceMgr* resMgr = app->resourceMgr(); + + // create actions + // ... Test me operation + createAction(OpTestMe, // operation id + tr("TLT_OP_TESTME"), // tooltip + resMgr->loadPixmap(":sat:{CPPCMP}",tr("ICON_OP_TESTME")), // icon + tr("MEN_OP_TESTME"), // menu title + tr("STS_OP_TESTME"), // status tip + 0, // accelerator (not set) + dsk, // parent + false, // togglable flag (no) + this, // action receiver + SLOT(testMe())); // action slot + // ... Hello operation + createAction(OpHello, // operation id + tr("TLT_OP_HELLO"), // tooltip + resMgr->loadPixmap(":sat:{CPPCMP}",tr("ICON_OP_HELLO")), // icon + tr("MEN_OP_HELLO"), // menu title + tr("STS_OP_HELLO"), // status tip + 0, // accelerator (not set) + dsk, // parent + false, // togglable flag (no) + this, // action receiver + SLOT(hello())); // action slot + // ... Goodbye operation + createAction(OpGoodbye, // operation id + tr("TLT_OP_GOODBYE"), // tooltip + resMgr->loadPixmap(":sat:{CPPCMP}",tr("ICON_OP_GOODBYE")), // icon + tr("MEN_OP_GOODBYE"), // menu title + tr("STS_OP_GOODBYE"), // status tip + 0, // accelerator (not set) + dsk, // parent + false, // togglable flag (no) + this, // action receiver + SLOT(goodbye())); // action slot + + // create menus + int menuId; + menuId = createMenu(tr("MEN_FILE"), -1, -1); // File menu + createMenu(separator(), menuId, -1, 10); // add separator to File menu + menuId = createMenu(tr("MEN_FILE_HELLO"), menuId, -1, 10); // File - Hello submenu + createMenu(OpTestMe, menuId); // File - Hello - Test me + menuId = createMenu(tr("MEN_HELLO"), -1, -1, 30); // Hello menu + createMenu(OpHello, menuId, 10); // Hello - Hello + createMenu(OpGoodbye, menuId, 10); // Hello - Goodbye + + // create toolbars + int aToolId; + aToolId = createTool (tr("TOOL_TEST")); // Test toolbar + createTool(OpTestMe, aToolId); // Test - Test me + aToolId = createTool (tr("TOOL_HELLO")); // Hello toolbar + createTool(OpHello, aToolId); // Hello - Hello + createTool(OpGoodbye, aToolId); // Hello - Goodbye + + // set-up popup menu + QtxPopupMgr* mgr = popupMgr(); + mgr->insert(action(OpHello), -1, -1); // Hello + mgr->insert(action(OpGoodbye), -1, -1); // Goodbye + mgr->insert(separator(), -1, -1); // ----------- + mgr->insert(action(OpTestMe), -1, -1); // Test me + QString baseRule = "client='ObjectBrowser' and selcount=1 and $component={':sat:{CPPCMP}'}"; + mgr->setRule(action(OpHello), baseRule + " and isComponent", QtxPopupMgr::VisibleRule); + mgr->setRule(action(OpGoodbye), baseRule + " and !isComponent", QtxPopupMgr::VisibleRule); +} + +/*! + \brief Get module engine IOR + + Overloaded from SalomeApp_Module class. + + \return string representing module engine IOR +*/ +QString :sat:{CPPCMP}GUI::engineIOR() const +{ + init(); // initialize engine, if necessary + CORBA::String_var anIOR = getApp()->orb()->object_to_string(myEngine.in()); + return QString(anIOR.in()); +} + +/*! + \brief Get module icon. + + Overloaded from CAM_Module class. + + Load and return the module icon pixmap. This icon is shown + in the Object browser, in modules toolbar, etc. + + Default implementation uses iconName() function to retrieve the name + of the image file to be used as the module icon; tries to load this + file from module's resources and create pixmap from it. + Returns valid QPixmap instance if image is loaded correctly. + This function can be customized to provide another way to get module icon. + + \return module icon pixmap + \sa iconName() +*/ +QPixmap :sat:{CPPCMP}GUI::moduleIcon() const +{ + // nothing to do, in this example just call the parent implementation + return SalomeApp_Module::moduleIcon(); +} + +/*! + \brief Get module icon's file name. + + Overloaded from CAM_Module class. + + This function is used to get module icon image file name. + Default implementation tries to retrieve the name of the + icon file from the application using moduleIcon() function, which + in its turn retrieves the information about the module icon + from the configuration file (e.g. SalomeApp.xml, LightApp.xml). + This function can be customized to provide another way to get module icon's + file name. + + \return module icon file name + \sa moduleIcon() +*/ +QString :sat:{CPPCMP}GUI::iconName() const +{ + // nothing to do, in this example just call the parent implementation + return SalomeApp_Module::iconName(); +} + +/*! + \brief Request dockable windows to be available when module is active. + + Overloaded from LightApp_Module class. + + Fills and returns the list of dockable windows which should be + available when the module is active. It is a map of integer values + where \c key is an enumerator from LightApp_Application::WindowTypes + enumeration, specifying window type, and \c value is an enumerator + from Qt::DockWidgetArea, specifying the window's default position + in the main window layout. + + Empty map means no dockable windows available when the module is active. + + \param theMap this map should be filled to specify the list of + required dockable windows withe their default positions +*/ +void :sat:{CPPCMP}GUI::windows(QMap& theMap) const +{ + // want Object browser, in the left area + theMap.insert(SalomeApp_Application::WT_ObjectBrowser, + Qt::LeftDockWidgetArea); + // want Python console, in the bottom area + theMap.insert(SalomeApp_Application::WT_PyConsole, + Qt::BottomDockWidgetArea); +} + +/*! + \brief Request view windows (types) to be activated when module is activated.. + + Overloaded from LightApp_Module class. + + Fills and returns the list of 3D/2D view windows types compatible + with this module. The views of the specified type(s) will be automatically + activated (raised to the top of view stack) each time when the module + is activated by the user (the views will be automatically created if they + do not exist at the module activation). + Empty list means no compatible view windows for the module. + + Example: + \code + theList.append(OCCViewer_Viewer::Type()); + theList.append(SVTK_Viewer::Type()); + \endcode + + \param theList this list should be filled to specify the list of + compatible view window types +*/ +void :sat:{CPPCMP}GUI::viewManagers(QStringList& /*theList*/) const +{ + // no compatible view managers, nothing to do here +} + +/*! + \brief Create popup selection handler. + + Overloaded from LightApp_Module class. + + This function can be used to create custom popup menu handler. + The application takes ownership over the returned pointer, + so you should not destroy it. + + This function is part of the context popup menu management mechanism. + Selection object (instance of LightApp_Selection class or its successor) + analizes the currently selected items and defines selection-dependant + variables which are processed by the popup manager (QtxPopupMgr class). + + These variables can be included into the lexical constructions, named + "rules", which are associated with the popup menu actions (refer to the + QtxPopupMgr class for more details). + + Exampe: + \code + // obtain popup manager + QtxPopupMgr* mgr = popupMgr(); + // create new action, with ID = 100 + createAction(100, "Action", QIcon(), "Action", "My action", 0, application()->desktop(), + false, this, SLOT(OnMyAction())); + // define popup rule for action + QString rule = "client='ObjectBrowser' and $type in {'MyType1' 'MyType2'} and selcount=1"; + // set visibility rule for action + mgr->setRule(100, rule, QtxPopupMgr::VisibleRule); + \endcode + + In the above code, \a selcount variable is automatically defined + by LightApp_Selection class, but \a type variable should be set by + the successor class. Note, that LightApp_Selection class implements + several useful variables which can be used in the lexical rules. + + \return new selection object + \sa contextMenuPopup() +*/ +LightApp_Selection* :sat:{CPPCMP}GUI::createSelection() const +{ + // nothing to do, in this example just call the parent implementation + // see also initialize() + return SalomeApp_Module::createSelection(); +} + +/*! + \brief Create displayer object. + + Overloaded from LightApp_Module class. + + This function can be used to create and return custom displayer object. + The application does not take the ownership over the returned value. + + Displayer is a part of the presentations management system. + If can be used to implement visualization operations, like create, show + or hide presentation in the viewer of specific type, etc. + + \return pointer to the module displayer + */ +LightApp_Displayer* :sat:{CPPCMP}GUI::displayer() +{ + // nothing to do, in this example just call the parent implementation + return SalomeApp_Module::displayer(); +} + +/*! + \brief Create context popup menu. + + Overloaded from CAM_Module class. + + This function can be used to customize context popup menu management. + The module should fill \a menu with the items (e.g. by inserting own + QAction items). The menu contents can be context-depending, the parameter + \a type can be used to test the context of the popup menu invocation + (e.g. "ObjectBrowser"). + Parameter \a title can be used to return the string value to be used + popup menu title if required. + + Default implementation from LightApp_Module class calls createSelection() + function to create popup selection handler and initialized the popup menu + using popup manager. + + \param type popup menu context + \param menu pointer to the popup menu + \param title custom popup menu title can be returned here + \sa createSelection() +*/ +void :sat:{CPPCMP}GUI::contextMenuPopup(const QString& type, QMenu* menu, QString& title) +{ + // nothing to do, in this example just call the parent implementation + // see also initialize() + return SalomeApp_Module::contextMenuPopup(type, menu, title); +} + +/*! + \brief Export module preferences. + + Overloaded from LightApp_Module class. + + This function is invoked only once when the common "Preferences" + dialog box is first time activated by the user (via the "File/Preferences" + menu command) or when module is first time activated. + + This function should be used to export module preferences to the + common "Preferences" dialog box and associate them with the corresponding + widgets. The preferences items are arranged to the tree-like structure, where + top-level items represent just a containers for the underlying items. + Each low-level preferences item is linked to the resources item (via "section" + and "parameter" attributes). See QtxResourceMgr class for more details about + resources management. + + Example: + \code + // create top-level preferences tab page + int settingsId = addPreference("Settings"); + // create general settings group box + int generalId = addPreference(tr("General"), settingsId); + // set group box property - number of columns - to 2 + setPreferenceProperty(generalId, "columns", 2); + // create shading color preferences item (color button) + addPreference("Shading color", generalId, LightApp_Preferences::Color, + ":sat:{CPPCMP}", "shading_color"); + // create precision preferences item (spin box) + int precisionId = addPreference(tr("GEOM_PREF_length_precision"), generalId, + LightApp_Preferences::IntSpin, ":sat:{CPPCMP}", "precision"); + // set precision preferences item properties + setPreferenceProperty(precisionId, "min", 0); + setPreferenceProperty(precisionId, "max", 10); + \endcode + + \sa preferencesChanged() +*/ +void :sat:{CPPCMP}GUI::createPreferences() +{ + // no module preferences, nothing to do here +} + +/*! + \brief Process preference item change event. + + Overloaded from LightApp_Module class. + + This function is called every time when the preference item + owned by this module is changed by the user (usually this occurs when + the user presses "OK" or "Apply" button in the "Preferences" dialog box). + + The module can perform any specific actions if necessary to response + to the preferences changes. + + \param section resources item section name + \param parameter resources item parameter name + + \sa createPreferences() +*/ +void :sat:{CPPCMP}GUI::preferencesChanged(const QString& section, const QString& parameter) +{ + // nothing to do, in this example just call the parent implementation + SalomeApp_Module::preferencesChanged(section, parameter); +} + +/*! + \brief Store visual state. + + Overloaded from SalomeApp_Module class. + + This method is called just before the study document is saved, + so the module has a possibility to store any visual parameters + in the AttributeParameter study attribute (if required). + + \param savePoint save point unique identifier +*/ +void :sat:{CPPCMP}GUI::storeVisualParameters(int /*savePoint*/) +{ + // no specific visual state, nothing to do here +} + +/*! + \brief Restore visual state. + + Overloaded from SalomeApp_Module class. + + This method is called after the study document is opened, + so the module has a possibility to restore the visual parameters + from the AttributeParameter study attribute (if required). + + \param savePoint save point unique identifier +*/ +void :sat:{CPPCMP}GUI::restoreVisualParameters(int /*savePoint*/) +{ + // no specific visual state, nothing to do here +} + +/*! + \brief Handle active study changing action. + + Overloaded from LightApp_Module class. + + This function is called each time when the active study is changed + (usually this happens when users switches between different studies' + desktops). + + Can be used to perform any relevant actions. +*/ +void :sat:{CPPCMP}GUI::studyActivated() +{ + // no any specific action required, nothing to do here +} + +/*! + \brief Check if the module can perform "copy" operation. + + Overloaded from LightApp_Module class. + + This function is a part of the general copy/paste mechanism. + + Can be re-implemented to customize the copy/paste handling + in the module. Default implementation returns \c false. + + \return \c true if the module can perform "copy" operation or \c false otherwise + \sa canPaste(), copy(), paste() +*/ +bool :sat:{CPPCMP}GUI::canCopy() const +{ + // copy/paste is not supported, in this example just call the parent implementation + return SalomeApp_Module::canCopy(); +} + +/*! + \brief Check if the module can perform "paste" operation. + + Overloaded from LightApp_Module class. + + This function is a part of the general copy/paste mechanism. + + Can be re-implemented to customize the copy/paste handling + in the module. Default implementation returns \c false. + + \return \c true if the module can perform "paste" operation or \c false otherwise + \sa canCopy(), copy(), paste() +*/ +bool :sat:{CPPCMP}GUI::canPaste() const +{ + // copy/paste is not supported, in this example just call the parent implementation + return SalomeApp_Module::canPaste(); +} + +/*! + \brief Perform "copy" operation. + + Overloaded from LightApp_Module class. + + This function is a part of the general copy/paste mechanism. + + Can be re-implemented to customize the copy/paste handling + in the module. Default implementation does nothing. + + \sa canCopy(), canPaste(), paste() +*/ +void :sat:{CPPCMP}GUI::copy() +{ + // copy/paste is not supported, nothing to do here +} + +/*! + \brief Perform "paste" operation. + + Overloaded from LightApp_Module class. + + This function is a part of the general copy/paste mechanism. + + Can be re-implemented to customize the copy/paste handling + in the module. Default implementation does nothing. + + \sa canCopy(), canPaste(), copy() +*/ +void :sat:{CPPCMP}GUI::paste() +{ + // copy/paste is not supported, nothing to do here +} + +/*! + \brief Check if the module allows "drag" operation of its objects. + + Overloaded from LightApp_Module class. + + This function is a part of the general drag-n-drop mechanism. + The goal of this function is to check data object passed as a parameter + and decide if it can be dragged or no. + + \param what data object being tested for drag operation + \return \c true if module allows dragging of the specified object + \sa isDropAccepted(), dropObjects() +*/ +bool :sat:{CPPCMP}GUI::isDraggable(const SUIT_DataObject* what) const +{ + // we allow dragging any :sat:{CPPCMP} object, except the top-level component + const SalomeApp_ModuleObject* aModObj = dynamic_cast(what); + return (aModObj == 0); +} + +/*! + \brief Check if the module allows "drop" operation on the given object. + + Overloaded from LightApp_Module class. + + This function is a part of the general drag-n-drop mechanism. + The goal of this function is to check data object passed as a parameter + and decide if it can be used as a target for the "drop" operation. + The processing of the drop operation itself is done in the dropObjects() function. + + \param where target data object + \return \c true if module supports dropping on the \a where data object + \sa isDraggable(), dropObjects() +*/ +bool :sat:{CPPCMP}GUI::isDropAccepted(const SUIT_DataObject* where) const +{ + // we allow dropping of all objects + // (temporarily implementation, we also need to check objects being dragged) + return true; +} + +/*! + \brief Complete drag-n-drop operation. + + Overloaded from LightApp_Module class. + + This function is a part of the general drag-n-drop mechanism. + Its goal is to handle dropping of the objects being dragged according + to the chosen operation (copy or move). The dropping is performed in the + context of the parent data object \a where and the \a row (position in the + children index) at which the data should be dropped. If \a row is equal to -1, + this means that objects are added to the end of the children list. + + \param what objects being dropped + \param where target data object + \param row child index at which the drop operation is performed + \param action drag-n-drop operation (Qt::DropAction) - copy or move + + \sa isDraggable(), isDropAccepted() +*/ +void :sat:{CPPCMP}GUI::dropObjects(const DataObjectList& what, SUIT_DataObject* where, + const int row, Qt::DropAction action) +{ + if (action != Qt::CopyAction && action != Qt::MoveAction) + return; // unsupported action + + // get parent object + SalomeApp_DataObject* dataObj = dynamic_cast(where); + if (!dataObj) return; // wrong parent + _PTR(SObject) parentObj = dataObj->object(); + + // collect objects being dropped + :sat:{CPPCMP}_ORB::object_list_var objects = new :sat:{CPPCMP}_ORB::object_list(); + objects->length(what.count()); + int count = 0; + for (int i = 0; i < what.count(); i++) + { + dataObj = dynamic_cast(what[i]); + if (!dataObj) continue; // skip wrong objects + _PTR(SObject) sobj = dataObj->object(); + objects[i] = _CAST(SObject, sobj)->GetSObject(); + count++; + } + objects->length(count); + + // call engine function + engine()->copyOrMove(objects.in(), // what + _CAST(SObject, parentObj)->GetSObject(), // where + row, // row + action == Qt::CopyAction); // isCopy + + // update Object browser + getApp()->updateObjectBrowser(false); +} + +/*! + \brief Module activation. + + Overloaded from CAM_Module class. + + This function is called each time the module is activated + by the user. It is usually used to perform any relevant actions, + like displaying menus and toolbars, connecting specific signals/slots, etc. + + \param theStudy current study object + \return \c true if activation is completed correctly or \c false + if module activation fails + + \sa deactivateModule() +*/ +bool :sat:{CPPCMP}GUI::activateModule(SUIT_Study* theStudy) +{ + // call parent implementation + bool bOk = SalomeApp_Module::activateModule(theStudy); + + // show own menus + setMenuShown(true); + // show own toolbars + setToolShown(true); + + // return the activation status + return bOk; +} + +/*! + \brief Module deactivation. + + Overloaded from CAM_Module class. + + This function is called each time the module is deactivated + by the user. It is usually used to perform any relevant actions, + like hiding menus and toolbars, disconnecting specific signals/slots, etc. + + \param theStudy current study object + \return \c true if deactivation is completed correctly or \c false + if module deactivation fails + + \sa activateModule() +*/ +bool :sat:{CPPCMP}GUI::deactivateModule(SUIT_Study* theStudy) +{ + // hide own menus + setMenuShown(false); + // hide own toolbars + setToolShown(false); + + // call parent implementation and return the activation status + return SalomeApp_Module::deactivateModule(theStudy); +} + +/*! + \brief Create specific operation object. + + Overloaded from LightApp_Module class. + + This function is a part of operation management mechanism. + It can be used to create module specific operations, if module + implements transaction handling basing on the GUI operations instances. + + This function is automatically called from startOperation() function. + After operation is created, it can be started/stopped/paused/resumed etc. + Compatibility between diferent simultaneously running operations is also + checked by invoking of the corresponding methods of the LightApp_Operation + class. + + The application takes ownership over the returned pointer, + so you should not destroy it. + + Default implementation in LightApp_Module class processes common Show/Hide + operations. + + \param id unique operation identifier + \return new operation object +*/ +LightApp_Operation* :sat:{CPPCMP}GUI::createOperation(const int id) const +{ + // no specific operations, in this example just call the parent implementation + return SalomeApp_Module::createOperation(id); +} + +/*! + \brief Action slot: Test me +*/ +void :sat:{CPPCMP}GUI::testMe() +{ + SUIT_MessageBox::information(getApp()->desktop(), + tr("INF_TESTME_TITLE"), + tr("INF_TESTME_MSG"), + tr("BUT_OK")); +} + +/*! + \brief Action slot: Hello +*/ +void :sat:{CPPCMP}GUI::hello() +{ + SalomeApp_Study* study = dynamic_cast(application()->activeStudy()); + _PTR(Study) studyDS = study->studyDS(); + + // request user name + bool ok; + QString name = QInputDialog::getText(getApp()->desktop(), tr("QUE_HELLO_TITLE"), tr("QUE_ENTER_NAME"), + QLineEdit::Normal, QString::null, &ok); + + if (ok && !name.trimmed().isEmpty()) + { + // say hello to SALOME + :sat:{CPPCMP}_ORB::status status = engine()->hello(_CAST(Study, studyDS)->GetStudy(), (const char*)name.toLatin1()); + + // update Object browser + getApp()->updateObjectBrowser(true); + + // process operation status + switch(status) + { + case :sat:{CPPCMP}_ORB::OP_OK: + // everything's OK + SUIT_MessageBox::information(getApp()->desktop(), + tr("INF_HELLO_TITLE"), + tr("INF_HELLO_MSG").arg(name), + tr("BUT_OK")); + break; + case :sat:{CPPCMP}_ORB::OP_ERR_ALREADY_MET: + // error: already said hello + SUIT_MessageBox::warning(getApp()->desktop(), + tr("INF_HELLO_TITLE"), + tr("ERR_HELLO_ALREADY_MET").arg(name), + tr("BUT_OK")); + break; + case :sat:{CPPCMP}_ORB::OP_ERR_UNKNOWN: + default: + // other errors + SUIT_MessageBox::critical(getApp()->desktop(), + tr("INF_HELLO_TITLE"), + tr("ERR_ERROR"), + tr("BUT_OK")); + break; + } + } +} + +/*! + \brief Action slot: Goodbye +*/ +void :sat:{CPPCMP}GUI::goodbye() +{ + SalomeApp_Application* app = dynamic_cast(application()); + SalomeApp_Study* study = dynamic_cast(application()->activeStudy()); + _PTR(Study) studyDS = study->studyDS(); + LightApp_SelectionMgr* aSelMgr = app->selectionMgr(); + + QString name; + + // get selection + SALOME_ListIO selected; + aSelMgr->selectedObjects(selected); + if (selected.Extent() == 1) + { + Handle(SALOME_InteractiveObject) io = selected.First(); + _PTR(SObject) so = studyDS->FindObjectID(io->getEntry()); + if (so) + { + _PTR(SComponent) comp = so->GetFatherComponent(); + if (comp && comp->ComponentDataType() == "HELLO" && io->getEntry() != comp->GetID()) + { + name = so->GetName().c_str(); + } + } + } + + // request user name if not specified + if (name.isEmpty()) + { + bool ok; + name = QInputDialog::getText(getApp()->desktop(), tr("QUE_GOODBYE_TITLE"), tr("QUE_ENTER_NAME"), + QLineEdit::Normal, QString::null, &ok); + } + + if (!name.trimmed().isEmpty()) + { + // say goodby to SALOME + :sat:{CPPCMP}_ORB::status status = engine()->goodbye(_CAST(Study, studyDS)->GetStudy(), (const char*)name.toLatin1()); + + // update Object browser + getApp()->updateObjectBrowser(true); + + // process operation status + switch(status) + { + case :sat:{CPPCMP}_ORB::OP_OK: + // everything's OK + SUIT_MessageBox::information(getApp()->desktop(), + tr("INF_GOODBYE_TITLE"), + tr("INF_GOODBYE_MSG").arg(name), + tr("BUT_OK")); + break; + case :sat:{CPPCMP}_ORB::OP_ERR_DID_NOT_MEET: + // error: did not say hello yet + SUIT_MessageBox::warning(getApp()->desktop(), + tr("INF_GOODBYE_TITLE"), + tr("ERR_GOODBYE_DID_NOT_MEET").arg(name), + tr("BUT_OK")); + break; + case :sat:{CPPCMP}_ORB::OP_ERR_UNKNOWN: + default: + // other errors + SUIT_MessageBox::critical(getApp()->desktop(), + tr("INF_GOODBYE_TITLE"), + tr("ERR_ERROR"), + tr("BUT_OK")); + break; + } + } +} + +/*! + \brief Perform internal initialization + + In particular, this function initializes module engine. +*/ +void :sat:{CPPCMP}GUI::init() +{ + // initialize :sat:{CPPCMP} module engine (load, if necessary) + if (CORBA::is_nil(myEngine)) + { + Engines::EngineComponent_var comp = + SalomeApp_Application::lcc()->FindOrLoad_Component("FactoryServer", ":sat:{CPPCMP}"); + myEngine = :sat:{CPPCMP}_ORB:::sat:{CPPCMP}_Gen::_narrow(comp); + } +} + +// Export the module +extern "C" { + // FACTORY FUNCTION: create an instance of the :sat:{CPPCMP} module GUI + CAM_Module* createModule() + { + return new :sat:{CPPCMP}GUI(); + } + // VERSIONING FUNCTION: get :sat:{CPPCMP} module's version identifier + char* getModuleVersion() + { + return (char*):sat:{CPPCMP}_VERSION_STR; // HELLO_VERSION_STR is defined in :sat:{CPPCMP}_version.h + } +} diff --git a/data/templates/CppComponent/src/CPPCMPGUI/CPPCMPGUI.h b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMPGUI.h new file mode 100755 index 0000000..5566287 --- /dev/null +++ b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMPGUI.h @@ -0,0 +1,103 @@ +// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +// :sat:{CPPCMP}GUI : :sat:{CPPCMP} component GUI implemetation + +#ifndef _:sat:{CPPCMP}GUI_H_ +#define _:sat:{CPPCMP}GUI_H_ + +#include + +#include +#include CORBA_CLIENT_HEADER(:sat:{CPPCMP}_Gen) + +class SalomeApp_Application; + +class :sat:{CPPCMP}GUI: public SalomeApp_Module +{ + Q_OBJECT + + //! operations + enum { + OpTestMe = 190, //!< Test me + OpHello = 901, //!< Hello + OpGoodbye = 902, //!< Goodbye + }; + +public: + :sat:{CPPCMP}GUI(); + ~:sat:{CPPCMP}GUI(); + + static :sat:{CPPCMP}_ORB:::sat:{CPPCMP}_Gen_var engine(); + + virtual void initialize(CAM_Application* app); + virtual QString engineIOR() const; + + virtual QPixmap moduleIcon() const; + virtual QString iconName() const; + + virtual void windows(QMap& theMap) const; + virtual void viewManagers(QStringList& theList) const; + + virtual LightApp_Selection* createSelection() const; + virtual LightApp_Displayer* displayer(); + + virtual void contextMenuPopup(const QString& type, QMenu* menu, QString& title); + + virtual void createPreferences(); + virtual void preferencesChanged(const QString& section, const QString& parameter); + + virtual void storeVisualParameters(int savePoint); + virtual void restoreVisualParameters(int savePoint); + + virtual void studyActivated(); + + virtual bool canCopy() const; + virtual bool canPaste() const; + virtual void copy(); + virtual void paste(); + + virtual bool isDraggable(const SUIT_DataObject* what) const; + virtual bool isDropAccepted(const SUIT_DataObject* where) const; + virtual void dropObjects(const DataObjectList& what, SUIT_DataObject* where, + const int row, Qt::DropAction action); + +public slots: + virtual bool activateModule(SUIT_Study* theStudy); + virtual bool deactivateModule(SUIT_Study* theStudy); + +protected: + virtual LightApp_Operation* createOperation(const int id) const; + +protected slots: + void testMe(); + void hello(); + void goodbye(); + +private: + static void init(); + +private: + static :sat:{CPPCMP}_ORB:::sat:{CPPCMP}_Gen_var myEngine; +}; + +#endif // _:sat:{CPPCMP}GUI_H_ diff --git a/data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_icons.ts b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_icons.ts new file mode 100755 index 0000000..c816295 --- /dev/null +++ b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_icons.ts @@ -0,0 +1,23 @@ + + + + + @default + + ICON_HELLO + HELLO.png + + + ICON_OP_HELLO + handshake.png + + + ICON_OP_GOODBYE + goodbye.png + + + ICON_OP_TESTME + testme.png + + + diff --git a/data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_msg_en.ts b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_msg_en.ts new file mode 100755 index 0000000..69f2305 --- /dev/null +++ b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_msg_en.ts @@ -0,0 +1,115 @@ + + + + + :sat:{CPPCMP}GUI + + MEN_FILE + &File + + + MEN_FILE_HELLO + :sat:{CPPCMPCompoName} + + + MEN_HELLO + :sat:{CPPCMPCompoName} + + + MEN_OP_HELLO + Hello + + + MEN_OP_GOODBYE + Goodbye + + + MEN_OP_TESTME + Test me + + + STS_OP_HELLO + Say hello to SALOME + + + STS_OP_GOODBYE + Say goodbye to SALOME + + + STS_OP_TESTME + Invoke test menu item + + + TLT_OP_HELLO + Hi, there! + + + TLT_OP_GOODBYE + Bye-bye! + + + TLT_OP_TESTME + Test me + + + TOOL_TEST + Test + + + TOOL_HELLO + Hello + + + BUT_OK + OK + + + INF_TESTME_TITLE + HELLO: test me + + + INF_TESTME_MSG + This is just a test of the custom menu action + + + QUE_ENTER_NAME + Please, enter your name + + + QUE_HELLO_TITLE + Say hello to SALOME + + + INF_HELLO_TITLE + Hello + + + INF_HELLO_MSG + Hello, %1! + + + ERR_HELLO_ALREADY_MET + %1, we already met! + + + ERR_ERROR + Unknown error + + + QUE_GOODBYE_TITLE + Say goodbye to SALOME + + + INF_GOODBYE_TITLE + Goodbye + + + INF_GOODBYE_MSG + Bye-bye, %1! + + + ERR_GOODBYE_DID_NOT_MEET + %1, we did not say hello yet! + + + diff --git a/data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_msg_fr.ts b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_msg_fr.ts new file mode 100755 index 0000000..4ce780a --- /dev/null +++ b/data/templates/CppComponent/src/CPPCMPGUI/CPPCMP_msg_fr.ts @@ -0,0 +1,115 @@ + + + + + :sat:{CPPCMP}GUI + + MEN_FILE + &Fichier + + + MEN_FILE_HELLO + :sat:{CPPCMPCompoName} + + + MEN_HELLO + :sat:{CPPCMPCompoName} + + + MEN_OP_HELLO + Salut + + + MEN_OP_GOODBYE + Au revoir + + + MEN_OP_TESTME + Essayez moi + + + STS_OP_HELLO + Saluer SALOME + + + STS_OP_GOODBYE + Dire au revoir à SALOME + + + STS_OP_TESTME + Test d'une action personnalisée dans le menu + + + TLT_OP_HELLO + Salut à toi ! + + + TLT_OP_GOODBYE + Au revoir ! + + + TLT_OP_TESTME + Essayez moi + + + TOOL_TEST + Test + + + TOOL_HELLO + Salut + + + BUT_OK + OK + + + INF_TESTME_TITLE + HELLO: essayez moi + + + INF_TESTME_MSG + Ce n'est qu'un test d'action de menu personnalisée + + + QUE_ENTER_NAME + Indiquez votre nom + + + QUE_HELLO_TITLE + Saluer SALOME + + + INF_HELLO_TITLE + Salut + + + INF_HELLO_MSG + Salut %1 ! + + + ERR_HELLO_ALREADY_MET + %1, nous nous connaissons déjà ! + + + ERR_ERROR + Erreur inconnue + + + QUE_GOODBYE_TITLE + Dire au revoir à SALOME + + + INF_GOODBYE_TITLE + Au revoir + + + INF_GOODBYE_MSG + Au revoir %1 ! + + + ERR_GOODBYE_DID_NOT_MEET + %1, nous ne nous sommes pas encore rencontrés ! + + + diff --git a/data/templates/CppComponent/src/CPPCMPGUI/Makefile.am b/data/templates/CppComponent/src/CPPCMPGUI/Makefile.am new file mode 100755 index 0000000..1225c63 --- /dev/null +++ b/data/templates/CppComponent/src/CPPCMPGUI/Makefile.am @@ -0,0 +1,67 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# -* Makefile *- +# Author : +# Modified by : Alexander BORODIN (OCN) - autotools usage +# Module : GHS3DPLUGIN +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# header files +salomeinclude_HEADERS = \ + :sat:{CPPCMP}GUI.h + +# Libraries targets +lib_LTLIBRARIES = lib:sat:{CPPCMP}.la + +dist_lib:sat:{CPPCMP}_la_SOURCES = \ + :sat:{CPPCMP}GUI.cxx + +# MOC pre-processing +MOC_FILES = \ + :sat:{CPPCMP}GUI_moc.cxx + +nodist_lib:sat:{CPPCMP}_la_SOURCES = $(MOC_FILES) + +lib:sat:{CPPCMP}_la_CPPFLAGS = \ + $(QT_INCLUDES) \ + $(CAS_CPPFLAGS) \ + $(PYTHON_INCLUDES) \ + $(BOOST_CPPFLAGS) \ + $(CORBA_CXXFLAGS) \ + $(CORBA_INCLUDES) \ + $(KERNEL_CXXFLAGS) \ + $(GUI_CXXFLAGS) \ + -I$(srcdir)/../:sat:{CPPCMP} \ + -I$(top_builddir)/idl \ + -I$(top_builddir) + +lib:sat:{CPPCMP}_la_LDFLAGS = \ + ../../idl/libSalomeIDL:sat:{CPPCMP}.la \ + ../:sat:{CPPCMP}/lib:sat:{CPPCMP}Engine.la \ + $(KERNEL_LDFLAGS) -lSalomeLifeCycleCORBA \ + $(GUI_LDFLAGS) \ + -lSalomeApp + +# resources files +nodist_salomeres_DATA = \ + :sat:{CPPCMP}_msg_en.qm \ + :sat:{CPPCMP}_msg_fr.qm \ + :sat:{CPPCMP}_icons.qm diff --git a/data/templates/CppComponent/src/Makefile.am b/data/templates/CppComponent/src/Makefile.am new file mode 100755 index 0000000..fbac127 --- /dev/null +++ b/data/templates/CppComponent/src/Makefile.am @@ -0,0 +1,30 @@ +# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# File : Makefile.in +# Author : (CEA) +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = :sat:{CPPCMP} + +if :sat:{CPPCMP}_ENABLE_GUI + SUBDIRS += :sat:{CPPCMP}GUI +endif diff --git a/data/templates/CppComponent/template.info b/data/templates/CppComponent/template.info new file mode 100644 index 0000000..1b2baec --- /dev/null +++ b/data/templates/CppComponent/template.info @@ -0,0 +1,65 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# description of the template to be displayed with option --info +info = """ +Author: CEA +Version: 1.0 +Date: 01/03/2012 +Description: This template can be used to create a C++ module for SALOME. +""" + +# code to substitute with component name +file_subst = "CPPCMP" + +# delimiter used in the template (default is ':sat:') +#delimiter = ":sat:" + +# filter of files to ignore for substitution +# if not defined all files will be parsed +ignore_filters = '*.png' + +# list of parameters +# a string = parameter name +# a tuple = (parameter name, default value, prompt, validation method) +parameters = [ + (file_subst, "%(NAME)s"), + ('CPPCMPCompoName', "%(Name)s", "Name of the module"), + ('CPPCMP_minus', "%(name)s", "resources directory (lowercase)", lambda l: l.islower() and l.isalnum()), + ("get_method", "archive", "get method for prepare", lambda l: l in ['cvs', 'git', 'archive']) + ] + +# configuration to use this component with sat +pyconf = """ +PRODUCTS : { + '%(NAME)s': + { + name : "%(NAME)s" + get_sources : '%(get_method)s' + build_sources : 'autotools' + git_info: + { + repo : 'to be filled' + tag : 'to be filled' + } + archive_info: + { + archive_name : '%(target)s.tar.gz' + } + dir_info: + { + dir : '' + } + nb_proc : 1 + source_dir : $TOOLS.common.source_root + '/' + $name + build_dir : $TOOLS.common.build_root + '/' + $name + depend : [ 'KERNEL', 'GUI', 'boost', 'CAS', 'Python', 'qt', 'omniORB', 'doxygen', 'graphviz', 'cppunit' ] + opt_depend : [] + properties : + { + environment : "salome" + has_salome_gui : "yes" + } + } +} +""" diff --git a/data/templates/CppSalome6/AUTHORS b/data/templates/CppSalome6/AUTHORS new file mode 100644 index 0000000..8f4939d --- /dev/null +++ b/data/templates/CppSalome6/AUTHORS @@ -0,0 +1 @@ +Nicolas Crouzet (nicolas.crouzet@cea.fr) diff --git a/data/templates/CppSalome6/ChangeLog b/data/templates/CppSalome6/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/data/templates/CppSalome6/Makefile.am b/data/templates/CppSalome6/Makefile.am new file mode 100644 index 0000000..46e5489 --- /dev/null +++ b/data/templates/CppSalome6/Makefile.am @@ -0,0 +1,5 @@ + +SUBDIRS = src + +#install-exec-hook: +# cp -rf idl/* $(pythondir)/$(PACKAGE) diff --git a/data/templates/CppSalome6/NEWS b/data/templates/CppSalome6/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/data/templates/CppSalome6/README b/data/templates/CppSalome6/README new file mode 100644 index 0000000..c627afc --- /dev/null +++ b/data/templates/CppSalome6/README @@ -0,0 +1,16 @@ +This directory contains the tree directories to compile a C++ components linked with MED library. + + +Component is based on automake. + +To INSTALL it : source salome environement file (for MED), then + + mkdir ../:sat:{Cpp_Template_}CPP_BUILD + mkdir ../:sat:{Cpp_Template_}CPP_INSTALL + ./build_configure + cd ../:sat:{Cpp_Template_}CPP_BUILD + ../:sat:{Cpp_Template_}CPP_SRC/configure --prefix= + make + make install + + diff --git a/data/templates/CppSalome6/adm/unix/config_files/EMPTY b/data/templates/CppSalome6/adm/unix/config_files/EMPTY new file mode 100644 index 0000000..6b41c3e --- /dev/null +++ b/data/templates/CppSalome6/adm/unix/config_files/EMPTY @@ -0,0 +1 @@ +This directory is required do not remove this file diff --git a/data/templates/CppSalome6/adm/unix/make_begin.am b/data/templates/CppSalome6/adm/unix/make_begin.am new file mode 100644 index 0000000..e69de29 diff --git a/data/templates/CppSalome6/adm/unix/make_check.am b/data/templates/CppSalome6/adm/unix/make_check.am new file mode 100644 index 0000000..b4c35a0 --- /dev/null +++ b/data/templates/CppSalome6/adm/unix/make_check.am @@ -0,0 +1,15 @@ + +python_cmd = env \ + SELF_ROOT_DIR=$(prefix) \ + REP_TESTS=$(prefix)/tests \ + REP_MAIL=$(prefix)/tests/maillages \ + PATH=$(bindir)/$(PACKAGE):$(PATH) \ + PYTHONPATH=$(bindir)/$(PACKAGE):$(libdir)/$(PACKAGE):$(pythondir)/$(PACKAGE):$(PYTHONPATH) \ + python + +check-local: + for f in X $(scripts_SCRIPTS) ; do \ + if test $f != X ; then \ + ( cd $(scriptsdir) && $(python_cmd) $f ) || exit 1 ; \ + fi ; \ + done diff --git a/data/templates/CppSalome6/adm/unix/make_end.am b/data/templates/CppSalome6/adm/unix/make_end.am new file mode 100644 index 0000000..078a218 --- /dev/null +++ b/data/templates/CppSalome6/adm/unix/make_end.am @@ -0,0 +1,23 @@ +SUFFIXES = + +# -------------------------------------------- +# *.i --> *_wrap.cxx +# -------------------------------------------- + +SUFFIXES += .i _wrap.cxx + +.i_wrap.cxx : + $(SWIG) $(SWIG_FLAGS) $(SWIG_PYTHON_INCLUDES) -o $@ $< + + +#---------------------------------------------- +# Post-installation rules +#---------------------------------------------- + +install-exec-hook: install-swig + +install-swig: $(patsubst lib%.la, $(libdir)/_%.so, \ + $(filter lib%SWIG.la, $(lib_LTLIBRARIES))) + +$(libdir)/_%.so: $(libdir)/lib%.so + ln -s `basename $^` $@ diff --git a/data/templates/CppSalome6/archive b/data/templates/CppSalome6/archive new file mode 100755 index 0000000..be9d5d8 --- /dev/null +++ b/data/templates/CppSalome6/archive @@ -0,0 +1,34 @@ +#! /bin/bash + +# +DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${DIR} +DIR=`pwd` + +REP=`basename $DIR` + +if [ -z "$USER" ] +then + USER=`whoami 2> /dev/null` || true +fi + +mkdir -p /tmp/${USER} +\rm -rf /tmp/${USER}/${REP} + +cd ${DIR}/.. +cp -drf ${REP} /tmp/${USER}/${REP} + +cd /tmp/${USER}/${REP} +./root_clean +find . -name "CVS" -depth -exec \rm -rf {} \; +find . -type f -exec chmod u+rw {} \; + +cd /tmp/${USER} + +TAR_FILE=${REP}`date +_%d.%m.%Y_%H.%M`.tgz + +tar cvfz ${TAR_FILE} ${REP} + +cp ${TAR_FILE} ${DIR}/.. + +\rm -rf /tmp/${USER}/${REP} ${TAR_FILE} diff --git a/data/templates/CppSalome6/build_configure b/data/templates/CppSalome6/build_configure new file mode 100755 index 0000000..5356185 --- /dev/null +++ b/data/templates/CppSalome6/build_configure @@ -0,0 +1,50 @@ +#! /bin/bash + +run() { + local logfile=$ORIG_DIR/build_configure.log + printf "%-50s" "$1 ... " + eval $1 > $logfile 2>&1 + if test $? != 0 ; then + echo "[FAILED]" + echo "see file build_configure.log ..." + exit 1 + fi + echo "[ OK ]" +} + +# -- +ORIG_DIR=`pwd` + +######################################################################## +# Test if the KERNEL_ROOT_DIR and MED_ROOT_DIR are set correctly + +if test ! -d "${KERNEL_ROOT_DIR}"; then + echo "failed : KERNEL_ROOT_DIR variable is not correct !" + exit +fi +if test ! -d "${MED_ROOT_DIR}"; then + echo "failed : MED_ROOT_DIR variable is not correct !" + exit +fi + +# -- +# -- goto build_configure dir +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} +# -- +# -- list all Makefile.am in Makefile.am.list +./rfind . Makefile.am > Makefile.am.list +# -- +# -- configure.in construction +cp configure.in.base configure.in +chmod +w configure.in +echo "AC_OUTPUT([ \\" >> configure.in +sed -e 's,\.am, \\,' -e 's,\.\/,,' Makefile.am.list >> configure.in +echo "])" >> configure.in + +# -- +run "libtoolize" +run "aclocal -I adm/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files -I ${MED_ROOT_DIR}/adm_local/unix/config_files" +run "autoconf" +run "automake --add-missing --copy" + diff --git a/data/templates/CppSalome6/configure.in.base b/data/templates/CppSalome6/configure.in.base new file mode 100644 index 0000000..2b866a2 --- /dev/null +++ b/data/templates/CppSalome6/configure.in.base @@ -0,0 +1,23 @@ + +AC_INIT(salome, 0.1) +AC_CONFIG_SRCDIR(src) +AM_INIT_AUTOMAKE +AC_ENABLE_DEBUG(no) +AC_DISABLE_PRODUCTION + +AC_PROG_LIBTOOL +AC_PROG_CXX +AC_PROG_CXXCPP + +AC_LINKER_OPTIONS +CHECK_PYTHON +AM_PATH_PYTHON(2.2.1) +CHECK_SWIG + +CHECK_KERNEL +CHECK_MED + +AC_ENABLE_STATIC(no) + +CXXFLAGS="${CXXFLAGS} -g" +AC_SUBST(CXXFLAGS) diff --git a/data/templates/CppSalome6/resources/Cpp_Template_.png b/data/templates/CppSalome6/resources/Cpp_Template_.png new file mode 100644 index 0000000000000000000000000000000000000000..674f8fc979214b86889c9eb4361c23102aca4a02 GIT binary patch literal 1452 zcmbu<`#aQG7y$6E+crjHXLG4ROYIb8BU_6o8nMxX3QL1TWhIwtObvR-QtMuAcBP9* zuB)U_N-XAzF~hjdjLQf!826bma+^If{R#Vd&Uw#!&U2pg%lkej^_2T@1Y8deK@h^l z+0g^6M)C<$0nxEAjRF>xCp_t6#Z#_cPBNJc-2eX&2n2ZKYXk`jg{rEm zs;Q{~v9hxAYhGJhJ3BkOu(04tRCgo7PmwfFlaU@|El-lRH$@jqGQd*x{m6#?q#gd0 z9RakR=URRUYTX^wYJ8z(&&5{LOLU9NRLih-%kXxqNV@g4_9M79431$J({>_;>2kBf zHLla`P8T+r8IauLpVECcz4v@Zf6)E@kSqr7Df8Cz;rN1r7ezz2i+D-JgUKaBsipL+ zw?mJrdkfz4^4^a=tDh)p5R^1FHZ}pHl}!`n%>a?u%zxc1cts?Uh&>-jBodiSAq%P~ z0F_1sXf!IVh1R0b+Sb~pK$mN8Z)Y%>3>KXUbjWoAELNwG%wn;+y1Kf79=TqiPmaxI zb2uC>mpd>pFbE7O2-(BK!#o~uMDFwF&!ch@_So3iIA6f$^92(V6O#&4QJY)I&T`hgZrc5%dbMRS6)+?=(8 zwozqF5hK2?&NseVKj$`5n}vD%aa(77`pEOZ8D!$77mVwZx~e13J&P{F&)!yU@pGvIr7 zJaF@Y55KZXQtxtC_CO?r_;grymzm%Rp<%IT%|x&LWxkv4rZW0suVnaVALu}yMmFv4 zj#;{%mf_$PNKnP2iJ%z>%EzLgs^D@s7U+K%U9{hGDn6QrX5HfpD#U`>>KKe8=OA%w zYNl$bkXdN63x&$JK=0zYCym%gW|E7Y#e0|{<@|@0)j!s84YyL9?JTM0Rw>p8WaHBM z@W0^Y&YCI}!ZQ^~wb3x>SN&(pmAMZi_V&T47N$RQ$vuxR*=ZThKUhEa!gn9*@saPa zX8R)|rp7%cgV|yuO%MEbuM;ggw)!UH_EAycpTa+us$>XmaO~E4PvqskA%=}V`B(S* z?99DWM`6~+gUPU!JLe|_rg7Jr57K!#XD<1lYc1=2dAD!WyA$e2nHZzU&>^n&{bs0A z6&%OOD*KD>zTI`p_3wOLn2{)*{8_!wc>Y`0Kx}AYU0J4gx{iiYK3NNHTkdNSp_*{g hgrgSyPXE)ITK|^uzi(2WXvqIb7bkbe3WvbN{{X!x0IvW5 literal 0 HcmV?d00001 diff --git a/data/templates/CppSalome6/rfind b/data/templates/CppSalome6/rfind new file mode 100755 index 0000000..0fbfa3d --- /dev/null +++ b/data/templates/CppSalome6/rfind @@ -0,0 +1,46 @@ +#! /bin/bash + +# +# Usage : rfind dir suffix ... +# +# find all files *suffix in dir in a recursive way +# different of the usual command find ... +# + +if test $# != 2 ; then + echo "Usage : $0 dir suffix" + exit +fi + +local_find() { + # if the first argument is not a directory, returns + if test ! -d $1 ; then + # echo "$1 is not a directory" + return + fi + # dont look in the CVS directories + # dont look in the autom4te* directories + case "$1" in + */CVS) return ;; + */autom4te*) return ;; + *) ;; + esac + # for each regular file contained in the directory + # test if it's a *"$2" file + for i in $1/* + do + if test -f $i ; then + case `basename $i` in + *$2) echo " "$i ;; + *) ;; + esac + fi + done + # for each subdirectory of the first argument, proceeds recursively + for i in $1/* + do + local_find $i $2 + done +} + +local_find $1 $2 diff --git a/data/templates/CppSalome6/root_clean b/data/templates/CppSalome6/root_clean new file mode 100755 index 0000000..5cddf28 --- /dev/null +++ b/data/templates/CppSalome6/root_clean @@ -0,0 +1,32 @@ +#!/bin/bash + + +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} + +TO_CLEAN= +TO_CLEAN=${TO_CLEAN}' aclocal.m4' +TO_CLEAN=${TO_CLEAN}' autom4te*' +TO_CLEAN=${TO_CLEAN}' configure' +TO_CLEAN=${TO_CLEAN}' configure.in' +TO_CLEAN=${TO_CLEAN}' install-sh missing mkinstalldirs' +TO_CLEAN=${TO_CLEAN}' py-compile' +TO_CLEAN=${TO_CLEAN}' build_configure.log' +TO_CLEAN=${TO_CLEAN}' depcomp' +TO_CLEAN=${TO_CLEAN}' config.guess config.sub ltmain.sh' +TO_CLEAN=${TO_CLEAN}' Makefile.am.list' +# TO_CLEAN=${TO_CLEAN}' COPYING INSTALL' + +rm -rf $TO_CLEAN > /dev/null + +l=`find . -name "Makefile.in"` + +if test X"$l" != X ; then + rm -f $l +fi + +l=`find . -name "*~"` + +if test X"$l" != X ; then + rm -f $l +fi diff --git a/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx new file mode 100644 index 0000000..6b9d347 --- /dev/null +++ b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx @@ -0,0 +1,19 @@ +#include ":sat:{Cpp_Template_}.hxx" +// uncoment if the component uses MED +//#include "MEDMEM_Field.hxx" +//#include "MEDMEM_Mesh.hxx" +#include + +using namespace std; +//using namespace MED_EN; + +:sat:{Cpp_Template_}:::sat:{Cpp_Template_}() +{ +} + +// implement your methods +double :sat:{Cpp_Template_}::plus(double _x, double _y) +{ + return _x+_y; +} + diff --git a/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx new file mode 100644 index 0000000..83a4ff4 --- /dev/null +++ b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx @@ -0,0 +1,20 @@ +#ifndef _:sat:{Cpp_Template_}_HXX_ +#define _:sat:{Cpp_Template_}_HXX_ + +// MED forward declaration (uncoment if the component uses MED) +//#include "MEDMEM_FieldForward.hxx" +//namespace MEDMEM { +// class MESH; +//} + +class :sat:{Cpp_Template_} +{ +// public methods +public: + :sat:{Cpp_Template_}(); + // fill your methods + double plus(double x, double y); +private: +}; + +#endif diff --git a/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am new file mode 100644 index 0000000..7b20951 --- /dev/null +++ b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}CXX.la +lib:sat:{Cpp_Template_}CXX_la_SOURCES = :sat:{Cpp_Template_}.cxx +lib:sat:{Cpp_Template_}CXX_la_LIBADD = $(MED_LDFLAGS) -lmedmem $(MED3_LIBS) $(HDF5_LIBS) -lmedcoupling + +# exported headers +library_includedir=$(includedir) +library_include_HEADERS = :sat:{Cpp_Template_}.hxx + +INCLUDES = $(MED_CXXFLAGS) $(MED3_INCLUDES) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) + +bin_PROGRAMS = :sat:{Cpp_Template_}_test +:sat:{Cpp_Template_}_test_SOURCES = main.cxx +:sat:{Cpp_Template_}_test_LDADD = lib:sat:{Cpp_Template_}CXX.la + + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am + + diff --git a/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/main.cxx b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/main.cxx new file mode 100644 index 0000000..fd0325c --- /dev/null +++ b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__CXX/main.cxx @@ -0,0 +1,12 @@ +#include ":sat:{Cpp_Template_}.hxx" +#include "MEDMEM_Field.hxx" +#include + +using namespace std; +int main(int argc, char ** argv) +{ + if (getenv("SALOME_trace") == NULL ) + setenv("SALOME_trace","local",0); + :sat:{Cpp_Template_} myCalc; + // test myCalc component ... +} diff --git a/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i new file mode 100644 index 0000000..8d231d5 --- /dev/null +++ b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i @@ -0,0 +1,42 @@ +%module :sat:{Cpp_Template_}SWIG + +%{ +#include +#include ":sat:{Cpp_Template_}.hxx" +%} + +/* + Initialisation block due to the LocalTraceCollector mechanism + + */ + +%include "libMEDMEM_Swig.i" + +%init %{ + if (getenv("SALOME_trace") == NULL ) + setenv("SALOME_trace","local",0); +%} + +%include "std_vector.i" +%include "std_string.i" + +namespace std { + %template(vectori) vector; + %template(vectord) vector; +}; + +/* + SWIG needs the use of the typedefs done in libMEDMEM_Swig.i to get the correct wrapping + ( ie instance at _d0709808_p_FIELDDOUBLE>, in state of + which has no attributes + -> replace in the declaration of methods containing fields : + FIELD by FIELDDOUBLE + FIELD by FIELDINT + FIELD by FIELDDOUBLENOINTERLACE + FIELD by FIELDINTNOINTERLACE +*/ + +%include ":sat:{Cpp_Template_}.hxx" + + + diff --git a/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am new file mode 100644 index 0000000..530ed07 --- /dev/null +++ b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}SWIG.la +nodist_lib:sat:{Cpp_Template_}SWIG_la_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +BUILT_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +SWIG_PYTHON_INCLUDES = $(MED_CXXFLAGS) -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX + +INCLUDES = -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX $(PYTHON_INCLUDES) $(MED_CXXFLAGS) $(MED3_INCLUDES) $(KERNEL_CXXFLAGS) + +lib:sat:{Cpp_Template_}SWIG_la_LIBADD = -L../:sat:{Cpp_Template_}_CXX -l:sat:{Cpp_Template_}CXX $(MED_LDFLAGS) -lmedmem + + +bin_SCRIPTS = :sat:{Cpp_Template_}SWIG.py + +clean-local: + $(RM) :sat:{Cpp_Template_}SWIG.py :sat:{Cpp_Template_}_wrap.cxx + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am diff --git a/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py new file mode 100644 index 0000000..05414cb --- /dev/null +++ b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py @@ -0,0 +1,16 @@ +from os import getenv +if getenv("SALOMEPATH"): + import salome + import :sat:{Cpp_Template_}_ORB + my_:sat:{Cpp_Template_} = salome.lcc.FindOrLoadComponent("FactoryServer", ":sat:{Cpp_Template_}") + IN_SALOME_GUI = 1 +else: + import :sat:{Cpp_Template_}SWIG + my_:sat:{Cpp_Template_}=:sat:{Cpp_Template_}SWIG.:sat:{Cpp_Template_}() +pass +# +# +print "Test Program of :sat:{Cpp_Template_} component" + +# ... + diff --git a/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am new file mode 100644 index 0000000..ce76b47 --- /dev/null +++ b/data/templates/CppSalome6/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am @@ -0,0 +1,7 @@ +# data_DATA = +# datadir = + +scripts_SCRIPTS = :sat:{Cpp_Template_}_test.py +scriptsdir = $(prefix)/bin + +include $(top_srcdir)/adm/unix/make_check.am diff --git a/data/templates/CppSalome6/src/Cpp_Template_/Makefile.am b/data/templates/CppSalome6/src/Cpp_Template_/Makefile.am new file mode 100644 index 0000000..7aa8acb --- /dev/null +++ b/data/templates/CppSalome6/src/Cpp_Template_/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = :sat:{Cpp_Template_}_CXX :sat:{Cpp_Template_}_SWIG :sat:{Cpp_Template_}_TEST + + diff --git a/data/templates/CppSalome6/src/Makefile.am b/data/templates/CppSalome6/src/Makefile.am new file mode 100644 index 0000000..ad76b7a --- /dev/null +++ b/data/templates/CppSalome6/src/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = :sat:{Cpp_Template_} + diff --git a/data/templates/CppSalome6/template.info b/data/templates/CppSalome6/template.info new file mode 100644 index 0000000..d8b1eef --- /dev/null +++ b/data/templates/CppSalome6/template.info @@ -0,0 +1,64 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# description of the template to be displayed with option --info +info = """ +Author: CEA +Description: This template can be used to create c++ component. +Remark: + * The name of the module must be suffixed with 'CPP'. + * This module will compiled with med 3. + * Once the module is compiled use the generate command to create the SALOME module. + * The generate command requires a version of YACSGEN greater or equal to 6.5.0. +""" + +# code to subsitute with component name +file_subst = "Cpp_Template_" + +# delimiter used in the template (default is ':sat:') +#delimiter = ":sat:" + +# filter of files to ignore for substitution +# if not defined all files will be parsed +ignore_filters = '*.png' + +# list of parameters +# a string = parameter name +# a tuple = (parameter name, default value, prompt, validation method) +parameters = [ + (file_subst, "%(NAME)s"), + ("get_method", "archive", "get method for prepare", lambda l: l in ['cvs', 'git', 'archive']) + ] + +# configuration to use this component with sat +pyconf = """ + '%(NAME)sCPP': + '%(NAME)sCPP': + { + name : "%(NAME)sCPP" + component_name : "%(NAME)s" + get_sources : '%(get_method)s' + build_sources : 'autotools' + git_info: + { + repo : 'to be filled' + tag : 'to be filled' + } + archive_info: + { + archive_name : '%(target)s.tar.gz' + } + nb_proc : 1 + source_dir : $TOOLS.common.source_root + '/' + $name + build_dir : $TOOLS.common.build_root + '/' + $name + depend : [] + opt_depend : [] + properties : + { + is_cpp : "yes" + environment : "salome" + has_salome_gui : "yes" + logo : $source_dir + "/resources/%(NAME)s.png" + } + } +""" diff --git a/data/templates/CppSalome7/AUTHORS b/data/templates/CppSalome7/AUTHORS new file mode 100644 index 0000000..8f4939d --- /dev/null +++ b/data/templates/CppSalome7/AUTHORS @@ -0,0 +1 @@ +Nicolas Crouzet (nicolas.crouzet@cea.fr) diff --git a/data/templates/CppSalome7/ChangeLog b/data/templates/CppSalome7/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/data/templates/CppSalome7/Makefile.am b/data/templates/CppSalome7/Makefile.am new file mode 100644 index 0000000..46e5489 --- /dev/null +++ b/data/templates/CppSalome7/Makefile.am @@ -0,0 +1,5 @@ + +SUBDIRS = src + +#install-exec-hook: +# cp -rf idl/* $(pythondir)/$(PACKAGE) diff --git a/data/templates/CppSalome7/NEWS b/data/templates/CppSalome7/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/data/templates/CppSalome7/README b/data/templates/CppSalome7/README new file mode 100644 index 0000000..c627afc --- /dev/null +++ b/data/templates/CppSalome7/README @@ -0,0 +1,16 @@ +This directory contains the tree directories to compile a C++ components linked with MED library. + + +Component is based on automake. + +To INSTALL it : source salome environement file (for MED), then + + mkdir ../:sat:{Cpp_Template_}CPP_BUILD + mkdir ../:sat:{Cpp_Template_}CPP_INSTALL + ./build_configure + cd ../:sat:{Cpp_Template_}CPP_BUILD + ../:sat:{Cpp_Template_}CPP_SRC/configure --prefix= + make + make install + + diff --git a/data/templates/CppSalome7/adm/unix/config_files/EMPTY b/data/templates/CppSalome7/adm/unix/config_files/EMPTY new file mode 100644 index 0000000..6b41c3e --- /dev/null +++ b/data/templates/CppSalome7/adm/unix/config_files/EMPTY @@ -0,0 +1 @@ +This directory is required do not remove this file diff --git a/data/templates/CppSalome7/adm/unix/make_begin.am b/data/templates/CppSalome7/adm/unix/make_begin.am new file mode 100644 index 0000000..e69de29 diff --git a/data/templates/CppSalome7/adm/unix/make_check.am b/data/templates/CppSalome7/adm/unix/make_check.am new file mode 100644 index 0000000..b4c35a0 --- /dev/null +++ b/data/templates/CppSalome7/adm/unix/make_check.am @@ -0,0 +1,15 @@ + +python_cmd = env \ + SELF_ROOT_DIR=$(prefix) \ + REP_TESTS=$(prefix)/tests \ + REP_MAIL=$(prefix)/tests/maillages \ + PATH=$(bindir)/$(PACKAGE):$(PATH) \ + PYTHONPATH=$(bindir)/$(PACKAGE):$(libdir)/$(PACKAGE):$(pythondir)/$(PACKAGE):$(PYTHONPATH) \ + python + +check-local: + for f in X $(scripts_SCRIPTS) ; do \ + if test $f != X ; then \ + ( cd $(scriptsdir) && $(python_cmd) $f ) || exit 1 ; \ + fi ; \ + done diff --git a/data/templates/CppSalome7/adm/unix/make_end.am b/data/templates/CppSalome7/adm/unix/make_end.am new file mode 100644 index 0000000..078a218 --- /dev/null +++ b/data/templates/CppSalome7/adm/unix/make_end.am @@ -0,0 +1,23 @@ +SUFFIXES = + +# -------------------------------------------- +# *.i --> *_wrap.cxx +# -------------------------------------------- + +SUFFIXES += .i _wrap.cxx + +.i_wrap.cxx : + $(SWIG) $(SWIG_FLAGS) $(SWIG_PYTHON_INCLUDES) -o $@ $< + + +#---------------------------------------------- +# Post-installation rules +#---------------------------------------------- + +install-exec-hook: install-swig + +install-swig: $(patsubst lib%.la, $(libdir)/_%.so, \ + $(filter lib%SWIG.la, $(lib_LTLIBRARIES))) + +$(libdir)/_%.so: $(libdir)/lib%.so + ln -s `basename $^` $@ diff --git a/data/templates/CppSalome7/archive b/data/templates/CppSalome7/archive new file mode 100755 index 0000000..be9d5d8 --- /dev/null +++ b/data/templates/CppSalome7/archive @@ -0,0 +1,34 @@ +#! /bin/bash + +# +DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${DIR} +DIR=`pwd` + +REP=`basename $DIR` + +if [ -z "$USER" ] +then + USER=`whoami 2> /dev/null` || true +fi + +mkdir -p /tmp/${USER} +\rm -rf /tmp/${USER}/${REP} + +cd ${DIR}/.. +cp -drf ${REP} /tmp/${USER}/${REP} + +cd /tmp/${USER}/${REP} +./root_clean +find . -name "CVS" -depth -exec \rm -rf {} \; +find . -type f -exec chmod u+rw {} \; + +cd /tmp/${USER} + +TAR_FILE=${REP}`date +_%d.%m.%Y_%H.%M`.tgz + +tar cvfz ${TAR_FILE} ${REP} + +cp ${TAR_FILE} ${DIR}/.. + +\rm -rf /tmp/${USER}/${REP} ${TAR_FILE} diff --git a/data/templates/CppSalome7/build_configure b/data/templates/CppSalome7/build_configure new file mode 100755 index 0000000..5356185 --- /dev/null +++ b/data/templates/CppSalome7/build_configure @@ -0,0 +1,50 @@ +#! /bin/bash + +run() { + local logfile=$ORIG_DIR/build_configure.log + printf "%-50s" "$1 ... " + eval $1 > $logfile 2>&1 + if test $? != 0 ; then + echo "[FAILED]" + echo "see file build_configure.log ..." + exit 1 + fi + echo "[ OK ]" +} + +# -- +ORIG_DIR=`pwd` + +######################################################################## +# Test if the KERNEL_ROOT_DIR and MED_ROOT_DIR are set correctly + +if test ! -d "${KERNEL_ROOT_DIR}"; then + echo "failed : KERNEL_ROOT_DIR variable is not correct !" + exit +fi +if test ! -d "${MED_ROOT_DIR}"; then + echo "failed : MED_ROOT_DIR variable is not correct !" + exit +fi + +# -- +# -- goto build_configure dir +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} +# -- +# -- list all Makefile.am in Makefile.am.list +./rfind . Makefile.am > Makefile.am.list +# -- +# -- configure.in construction +cp configure.in.base configure.in +chmod +w configure.in +echo "AC_OUTPUT([ \\" >> configure.in +sed -e 's,\.am, \\,' -e 's,\.\/,,' Makefile.am.list >> configure.in +echo "])" >> configure.in + +# -- +run "libtoolize" +run "aclocal -I adm/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files -I ${MED_ROOT_DIR}/adm_local/unix/config_files" +run "autoconf" +run "automake --add-missing --copy" + diff --git a/data/templates/CppSalome7/configure.in.base b/data/templates/CppSalome7/configure.in.base new file mode 100644 index 0000000..2b866a2 --- /dev/null +++ b/data/templates/CppSalome7/configure.in.base @@ -0,0 +1,23 @@ + +AC_INIT(salome, 0.1) +AC_CONFIG_SRCDIR(src) +AM_INIT_AUTOMAKE +AC_ENABLE_DEBUG(no) +AC_DISABLE_PRODUCTION + +AC_PROG_LIBTOOL +AC_PROG_CXX +AC_PROG_CXXCPP + +AC_LINKER_OPTIONS +CHECK_PYTHON +AM_PATH_PYTHON(2.2.1) +CHECK_SWIG + +CHECK_KERNEL +CHECK_MED + +AC_ENABLE_STATIC(no) + +CXXFLAGS="${CXXFLAGS} -g" +AC_SUBST(CXXFLAGS) diff --git a/data/templates/CppSalome7/resources/Cpp_Template_.png b/data/templates/CppSalome7/resources/Cpp_Template_.png new file mode 100644 index 0000000000000000000000000000000000000000..674f8fc979214b86889c9eb4361c23102aca4a02 GIT binary patch literal 1452 zcmbu<`#aQG7y$6E+crjHXLG4ROYIb8BU_6o8nMxX3QL1TWhIwtObvR-QtMuAcBP9* zuB)U_N-XAzF~hjdjLQf!826bma+^If{R#Vd&Uw#!&U2pg%lkej^_2T@1Y8deK@h^l z+0g^6M)C<$0nxEAjRF>xCp_t6#Z#_cPBNJc-2eX&2n2ZKYXk`jg{rEm zs;Q{~v9hxAYhGJhJ3BkOu(04tRCgo7PmwfFlaU@|El-lRH$@jqGQd*x{m6#?q#gd0 z9RakR=URRUYTX^wYJ8z(&&5{LOLU9NRLih-%kXxqNV@g4_9M79431$J({>_;>2kBf zHLla`P8T+r8IauLpVECcz4v@Zf6)E@kSqr7Df8Cz;rN1r7ezz2i+D-JgUKaBsipL+ zw?mJrdkfz4^4^a=tDh)p5R^1FHZ}pHl}!`n%>a?u%zxc1cts?Uh&>-jBodiSAq%P~ z0F_1sXf!IVh1R0b+Sb~pK$mN8Z)Y%>3>KXUbjWoAELNwG%wn;+y1Kf79=TqiPmaxI zb2uC>mpd>pFbE7O2-(BK!#o~uMDFwF&!ch@_So3iIA6f$^92(V6O#&4QJY)I&T`hgZrc5%dbMRS6)+?=(8 zwozqF5hK2?&NseVKj$`5n}vD%aa(77`pEOZ8D!$77mVwZx~e13J&P{F&)!yU@pGvIr7 zJaF@Y55KZXQtxtC_CO?r_;grymzm%Rp<%IT%|x&LWxkv4rZW0suVnaVALu}yMmFv4 zj#;{%mf_$PNKnP2iJ%z>%EzLgs^D@s7U+K%U9{hGDn6QrX5HfpD#U`>>KKe8=OA%w zYNl$bkXdN63x&$JK=0zYCym%gW|E7Y#e0|{<@|@0)j!s84YyL9?JTM0Rw>p8WaHBM z@W0^Y&YCI}!ZQ^~wb3x>SN&(pmAMZi_V&T47N$RQ$vuxR*=ZThKUhEa!gn9*@saPa zX8R)|rp7%cgV|yuO%MEbuM;ggw)!UH_EAycpTa+us$>XmaO~E4PvqskA%=}V`B(S* z?99DWM`6~+gUPU!JLe|_rg7Jr57K!#XD<1lYc1=2dAD!WyA$e2nHZzU&>^n&{bs0A z6&%OOD*KD>zTI`p_3wOLn2{)*{8_!wc>Y`0Kx}AYU0J4gx{iiYK3NNHTkdNSp_*{g hgrgSyPXE)ITK|^uzi(2WXvqIb7bkbe3WvbN{{X!x0IvW5 literal 0 HcmV?d00001 diff --git a/data/templates/CppSalome7/rfind b/data/templates/CppSalome7/rfind new file mode 100755 index 0000000..0fbfa3d --- /dev/null +++ b/data/templates/CppSalome7/rfind @@ -0,0 +1,46 @@ +#! /bin/bash + +# +# Usage : rfind dir suffix ... +# +# find all files *suffix in dir in a recursive way +# different of the usual command find ... +# + +if test $# != 2 ; then + echo "Usage : $0 dir suffix" + exit +fi + +local_find() { + # if the first argument is not a directory, returns + if test ! -d $1 ; then + # echo "$1 is not a directory" + return + fi + # dont look in the CVS directories + # dont look in the autom4te* directories + case "$1" in + */CVS) return ;; + */autom4te*) return ;; + *) ;; + esac + # for each regular file contained in the directory + # test if it's a *"$2" file + for i in $1/* + do + if test -f $i ; then + case `basename $i` in + *$2) echo " "$i ;; + *) ;; + esac + fi + done + # for each subdirectory of the first argument, proceeds recursively + for i in $1/* + do + local_find $i $2 + done +} + +local_find $1 $2 diff --git a/data/templates/CppSalome7/root_clean b/data/templates/CppSalome7/root_clean new file mode 100755 index 0000000..5cddf28 --- /dev/null +++ b/data/templates/CppSalome7/root_clean @@ -0,0 +1,32 @@ +#!/bin/bash + + +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} + +TO_CLEAN= +TO_CLEAN=${TO_CLEAN}' aclocal.m4' +TO_CLEAN=${TO_CLEAN}' autom4te*' +TO_CLEAN=${TO_CLEAN}' configure' +TO_CLEAN=${TO_CLEAN}' configure.in' +TO_CLEAN=${TO_CLEAN}' install-sh missing mkinstalldirs' +TO_CLEAN=${TO_CLEAN}' py-compile' +TO_CLEAN=${TO_CLEAN}' build_configure.log' +TO_CLEAN=${TO_CLEAN}' depcomp' +TO_CLEAN=${TO_CLEAN}' config.guess config.sub ltmain.sh' +TO_CLEAN=${TO_CLEAN}' Makefile.am.list' +# TO_CLEAN=${TO_CLEAN}' COPYING INSTALL' + +rm -rf $TO_CLEAN > /dev/null + +l=`find . -name "Makefile.in"` + +if test X"$l" != X ; then + rm -f $l +fi + +l=`find . -name "*~"` + +if test X"$l" != X ; then + rm -f $l +fi diff --git a/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx new file mode 100644 index 0000000..4bfe9b0 --- /dev/null +++ b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx @@ -0,0 +1,19 @@ +#include ":sat:{Cpp_Template_}.hxx" +// uncoment if the component uses MED +//#include "MEDCouplingUMesh.hxx" +//#include "MEDCouplingFieldDouble.hxx" +#include + +using namespace std; +//using namespace MED_EN; + +:sat:{Cpp_Template_}:::sat:{Cpp_Template_}() +{ +} + +// implement your methods +double :sat:{Cpp_Template_}::plus(double _x, double _y) +{ + return _x+_y; +} + diff --git a/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx new file mode 100644 index 0000000..12455c1 --- /dev/null +++ b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx @@ -0,0 +1,21 @@ +#ifndef _:sat:{Cpp_Template_}_HXX_ +#define _:sat:{Cpp_Template_}_HXX_ + +// Uncomment if the component uses MEDCoupling +// namespace ParaMEDMEM +// { +// class MEDCouplingUMesh; +// class MEDCouplingFieldDouble; +// } + +class :sat:{Cpp_Template_} +{ +// public methods +public: + :sat:{Cpp_Template_}(); + // fill your methods + double plus(double x, double y); +private: +}; + +#endif diff --git a/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am new file mode 100644 index 0000000..797b102 --- /dev/null +++ b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}CXX.la +lib:sat:{Cpp_Template_}CXX_la_SOURCES = :sat:{Cpp_Template_}.cxx +lib:sat:{Cpp_Template_}CXX_la_LIBADD = $(MED_LDFLAGS) $(MED3_LIBS) $(HDF5_LIBS) -lmedcoupling -linterpkernel + +# exported headers +library_includedir=$(includedir) +library_include_HEADERS = :sat:{Cpp_Template_}.hxx + +INCLUDES = $(MED_CXXFLAGS) $(MED3_INCLUDES) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) + +bin_PROGRAMS = :sat:{Cpp_Template_}_test +:sat:{Cpp_Template_}_test_SOURCES = main.cxx +:sat:{Cpp_Template_}_test_LDADD = lib:sat:{Cpp_Template_}CXX.la $(MED_LDFLAGS) -lmedcoupling -linterpkernel + + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am + + diff --git a/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/main.cxx b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/main.cxx new file mode 100644 index 0000000..d56714b --- /dev/null +++ b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__CXX/main.cxx @@ -0,0 +1,14 @@ +#include ":sat:{Cpp_Template_}.hxx" +// uncoment if the component uses MED +// #include "MEDCouplingUMesh.hxx" +// #include "MEDCouplingFieldDouble.hxx" +#include + +using namespace std; +int main(int argc, char ** argv) +{ + if (getenv("SALOME_trace") == NULL ) + setenv("SALOME_trace","local",0); + :sat:{Cpp_Template_} myCalc; + // test myCalc component ... +} diff --git a/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i new file mode 100644 index 0000000..f83dfd1 --- /dev/null +++ b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i @@ -0,0 +1,32 @@ +%module :sat:{Cpp_Template_}SWIG + +%{ +#include +#include ":sat:{Cpp_Template_}.hxx" +%} + +/* + Initialisation block due to the LocalTraceCollector mechanism + + */ + +/* %include "MEDCouplingCommon.i" */ + +%init %{ + if (getenv("SALOME_trace") == NULL ) + setenv("SALOME_trace","local",0); +%} + +%include "std_vector.i" +%include "std_string.i" + +namespace std { + %template(vectori) vector; + %template(vectord) vector; +}; + + +%include ":sat:{Cpp_Template_}.hxx" + + + diff --git a/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am new file mode 100644 index 0000000..785519e --- /dev/null +++ b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}SWIG.la +nodist_lib:sat:{Cpp_Template_}SWIG_la_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +BUILT_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +SWIG_PYTHON_INCLUDES = $(MED_CXXFLAGS) -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX + +INCLUDES = -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX $(PYTHON_INCLUDES) $(MED_CXXFLAGS) $(MED3_INCLUDES) $(KERNEL_CXXFLAGS) + +lib:sat:{Cpp_Template_}SWIG_la_LIBADD = -L../:sat:{Cpp_Template_}_CXX -l:sat:{Cpp_Template_}CXX $(MED_LDFLAGS) + + +bin_SCRIPTS = :sat:{Cpp_Template_}SWIG.py + +clean-local: + $(RM) :sat:{Cpp_Template_}SWIG.py :sat:{Cpp_Template_}_wrap.cxx + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am diff --git a/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py new file mode 100644 index 0000000..05414cb --- /dev/null +++ b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py @@ -0,0 +1,16 @@ +from os import getenv +if getenv("SALOMEPATH"): + import salome + import :sat:{Cpp_Template_}_ORB + my_:sat:{Cpp_Template_} = salome.lcc.FindOrLoadComponent("FactoryServer", ":sat:{Cpp_Template_}") + IN_SALOME_GUI = 1 +else: + import :sat:{Cpp_Template_}SWIG + my_:sat:{Cpp_Template_}=:sat:{Cpp_Template_}SWIG.:sat:{Cpp_Template_}() +pass +# +# +print "Test Program of :sat:{Cpp_Template_} component" + +# ... + diff --git a/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am new file mode 100644 index 0000000..ce76b47 --- /dev/null +++ b/data/templates/CppSalome7/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am @@ -0,0 +1,7 @@ +# data_DATA = +# datadir = + +scripts_SCRIPTS = :sat:{Cpp_Template_}_test.py +scriptsdir = $(prefix)/bin + +include $(top_srcdir)/adm/unix/make_check.am diff --git a/data/templates/CppSalome7/src/Cpp_Template_/Makefile.am b/data/templates/CppSalome7/src/Cpp_Template_/Makefile.am new file mode 100644 index 0000000..7aa8acb --- /dev/null +++ b/data/templates/CppSalome7/src/Cpp_Template_/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = :sat:{Cpp_Template_}_CXX :sat:{Cpp_Template_}_SWIG :sat:{Cpp_Template_}_TEST + + diff --git a/data/templates/CppSalome7/src/Makefile.am b/data/templates/CppSalome7/src/Makefile.am new file mode 100644 index 0000000..ad76b7a --- /dev/null +++ b/data/templates/CppSalome7/src/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = :sat:{Cpp_Template_} + diff --git a/data/templates/CppSalome7/template.info b/data/templates/CppSalome7/template.info new file mode 100644 index 0000000..d8b1eef --- /dev/null +++ b/data/templates/CppSalome7/template.info @@ -0,0 +1,64 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# description of the template to be displayed with option --info +info = """ +Author: CEA +Description: This template can be used to create c++ component. +Remark: + * The name of the module must be suffixed with 'CPP'. + * This module will compiled with med 3. + * Once the module is compiled use the generate command to create the SALOME module. + * The generate command requires a version of YACSGEN greater or equal to 6.5.0. +""" + +# code to subsitute with component name +file_subst = "Cpp_Template_" + +# delimiter used in the template (default is ':sat:') +#delimiter = ":sat:" + +# filter of files to ignore for substitution +# if not defined all files will be parsed +ignore_filters = '*.png' + +# list of parameters +# a string = parameter name +# a tuple = (parameter name, default value, prompt, validation method) +parameters = [ + (file_subst, "%(NAME)s"), + ("get_method", "archive", "get method for prepare", lambda l: l in ['cvs', 'git', 'archive']) + ] + +# configuration to use this component with sat +pyconf = """ + '%(NAME)sCPP': + '%(NAME)sCPP': + { + name : "%(NAME)sCPP" + component_name : "%(NAME)s" + get_sources : '%(get_method)s' + build_sources : 'autotools' + git_info: + { + repo : 'to be filled' + tag : 'to be filled' + } + archive_info: + { + archive_name : '%(target)s.tar.gz' + } + nb_proc : 1 + source_dir : $TOOLS.common.source_root + '/' + $name + build_dir : $TOOLS.common.build_root + '/' + $name + depend : [] + opt_depend : [] + properties : + { + is_cpp : "yes" + environment : "salome" + has_salome_gui : "yes" + logo : $source_dir + "/resources/%(NAME)s.png" + } + } +""" diff --git a/data/templates/Cpp_Template/AUTHORS b/data/templates/Cpp_Template/AUTHORS new file mode 100644 index 0000000..8f4939d --- /dev/null +++ b/data/templates/Cpp_Template/AUTHORS @@ -0,0 +1 @@ +Nicolas Crouzet (nicolas.crouzet@cea.fr) diff --git a/data/templates/Cpp_Template/ChangeLog b/data/templates/Cpp_Template/ChangeLog new file mode 100644 index 0000000..e69de29 diff --git a/data/templates/Cpp_Template/Makefile.am b/data/templates/Cpp_Template/Makefile.am new file mode 100644 index 0000000..46e5489 --- /dev/null +++ b/data/templates/Cpp_Template/Makefile.am @@ -0,0 +1,5 @@ + +SUBDIRS = src + +#install-exec-hook: +# cp -rf idl/* $(pythondir)/$(PACKAGE) diff --git a/data/templates/Cpp_Template/NEWS b/data/templates/Cpp_Template/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/data/templates/Cpp_Template/README b/data/templates/Cpp_Template/README new file mode 100644 index 0000000..c627afc --- /dev/null +++ b/data/templates/Cpp_Template/README @@ -0,0 +1,16 @@ +This directory contains the tree directories to compile a C++ components linked with MED library. + + +Component is based on automake. + +To INSTALL it : source salome environement file (for MED), then + + mkdir ../:sat:{Cpp_Template_}CPP_BUILD + mkdir ../:sat:{Cpp_Template_}CPP_INSTALL + ./build_configure + cd ../:sat:{Cpp_Template_}CPP_BUILD + ../:sat:{Cpp_Template_}CPP_SRC/configure --prefix= + make + make install + + diff --git a/data/templates/Cpp_Template/adm/unix/config_files/EMPTY b/data/templates/Cpp_Template/adm/unix/config_files/EMPTY new file mode 100644 index 0000000..6b41c3e --- /dev/null +++ b/data/templates/Cpp_Template/adm/unix/config_files/EMPTY @@ -0,0 +1 @@ +This directory is required do not remove this file diff --git a/data/templates/Cpp_Template/adm/unix/make_begin.am b/data/templates/Cpp_Template/adm/unix/make_begin.am new file mode 100644 index 0000000..e69de29 diff --git a/data/templates/Cpp_Template/adm/unix/make_check.am b/data/templates/Cpp_Template/adm/unix/make_check.am new file mode 100644 index 0000000..b4c35a0 --- /dev/null +++ b/data/templates/Cpp_Template/adm/unix/make_check.am @@ -0,0 +1,15 @@ + +python_cmd = env \ + SELF_ROOT_DIR=$(prefix) \ + REP_TESTS=$(prefix)/tests \ + REP_MAIL=$(prefix)/tests/maillages \ + PATH=$(bindir)/$(PACKAGE):$(PATH) \ + PYTHONPATH=$(bindir)/$(PACKAGE):$(libdir)/$(PACKAGE):$(pythondir)/$(PACKAGE):$(PYTHONPATH) \ + python + +check-local: + for f in X $(scripts_SCRIPTS) ; do \ + if test $f != X ; then \ + ( cd $(scriptsdir) && $(python_cmd) $f ) || exit 1 ; \ + fi ; \ + done diff --git a/data/templates/Cpp_Template/adm/unix/make_end.am b/data/templates/Cpp_Template/adm/unix/make_end.am new file mode 100644 index 0000000..078a218 --- /dev/null +++ b/data/templates/Cpp_Template/adm/unix/make_end.am @@ -0,0 +1,23 @@ +SUFFIXES = + +# -------------------------------------------- +# *.i --> *_wrap.cxx +# -------------------------------------------- + +SUFFIXES += .i _wrap.cxx + +.i_wrap.cxx : + $(SWIG) $(SWIG_FLAGS) $(SWIG_PYTHON_INCLUDES) -o $@ $< + + +#---------------------------------------------- +# Post-installation rules +#---------------------------------------------- + +install-exec-hook: install-swig + +install-swig: $(patsubst lib%.la, $(libdir)/_%.so, \ + $(filter lib%SWIG.la, $(lib_LTLIBRARIES))) + +$(libdir)/_%.so: $(libdir)/lib%.so + ln -s `basename $^` $@ diff --git a/data/templates/Cpp_Template/archive b/data/templates/Cpp_Template/archive new file mode 100755 index 0000000..be9d5d8 --- /dev/null +++ b/data/templates/Cpp_Template/archive @@ -0,0 +1,34 @@ +#! /bin/bash + +# +DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${DIR} +DIR=`pwd` + +REP=`basename $DIR` + +if [ -z "$USER" ] +then + USER=`whoami 2> /dev/null` || true +fi + +mkdir -p /tmp/${USER} +\rm -rf /tmp/${USER}/${REP} + +cd ${DIR}/.. +cp -drf ${REP} /tmp/${USER}/${REP} + +cd /tmp/${USER}/${REP} +./root_clean +find . -name "CVS" -depth -exec \rm -rf {} \; +find . -type f -exec chmod u+rw {} \; + +cd /tmp/${USER} + +TAR_FILE=${REP}`date +_%d.%m.%Y_%H.%M`.tgz + +tar cvfz ${TAR_FILE} ${REP} + +cp ${TAR_FILE} ${DIR}/.. + +\rm -rf /tmp/${USER}/${REP} ${TAR_FILE} diff --git a/data/templates/Cpp_Template/build_configure b/data/templates/Cpp_Template/build_configure new file mode 100755 index 0000000..366a504 --- /dev/null +++ b/data/templates/Cpp_Template/build_configure @@ -0,0 +1,50 @@ +#! /bin/bash + +run() { + local logfile=$ORIG_DIR/build_configure.log + printf "%-50s" "$1 ... " + eval $1 > $logfile 2>&1 + if test $? != 0 ; then + echo "[FAILED]" + echo "see file build_configure.log ..." + exit 1 + fi + echo "[ OK ]" +} + +# -- +ORIG_DIR=`pwd` + +######################################################################## +# Test if the KERNEL_ROOT_DIR and MEDCOUPLING_ROOT_DIR are set correctly + +if test ! -d "${KERNEL_ROOT_DIR}"; then + echo "failed : KERNEL_ROOT_DIR variable is not correct !" + exit +fi +if test ! -d "${MEDCOUPLING_ROOT_DIR}"; then + echo "failed : MEDCOUPLING_ROOT_DIR variable is not correct !" + exit +fi + +# -- +# -- goto build_configure dir +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} +# -- +# -- list all Makefile.am in Makefile.am.list +./rfind . Makefile.am > Makefile.am.list +# -- +# -- configure.in construction +cp configure.in.base configure.in +chmod +w configure.in +echo "AC_OUTPUT([ \\" >> configure.in +sed -e 's,\.am, \\,' -e 's,\.\/,,' Makefile.am.list >> configure.in +echo "])" >> configure.in + +# -- +run "libtoolize" +run "aclocal -I adm/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files -I ${MEDCOUPLING_ROOT_DIR}/adm_local/unix/config_files" +run "autoconf" +run "automake --add-missing --copy" + diff --git a/data/templates/Cpp_Template/configure.in.base b/data/templates/Cpp_Template/configure.in.base new file mode 100644 index 0000000..9006ceb --- /dev/null +++ b/data/templates/Cpp_Template/configure.in.base @@ -0,0 +1,23 @@ + +AC_INIT(salome, 0.1) +AC_CONFIG_SRCDIR(src) +AM_INIT_AUTOMAKE +AC_ENABLE_DEBUG(no) +AC_DISABLE_PRODUCTION + +AC_PROG_LIBTOOL +AC_PROG_CXX +AC_PROG_CXXCPP + +AC_LINKER_OPTIONS +CHECK_PYTHON +AM_PATH_PYTHON(2.2.1) +CHECK_SWIG + +CHECK_KERNEL +CHECK_MEDCOUPLING + +AC_ENABLE_STATIC(no) + +CXXFLAGS="${CXXFLAGS} -g" +AC_SUBST(CXXFLAGS) diff --git a/data/templates/Cpp_Template/resources/Cpp_Template_.png b/data/templates/Cpp_Template/resources/Cpp_Template_.png new file mode 100644 index 0000000000000000000000000000000000000000..674f8fc979214b86889c9eb4361c23102aca4a02 GIT binary patch literal 1452 zcmbu<`#aQG7y$6E+crjHXLG4ROYIb8BU_6o8nMxX3QL1TWhIwtObvR-QtMuAcBP9* zuB)U_N-XAzF~hjdjLQf!826bma+^If{R#Vd&Uw#!&U2pg%lkej^_2T@1Y8deK@h^l z+0g^6M)C<$0nxEAjRF>xCp_t6#Z#_cPBNJc-2eX&2n2ZKYXk`jg{rEm zs;Q{~v9hxAYhGJhJ3BkOu(04tRCgo7PmwfFlaU@|El-lRH$@jqGQd*x{m6#?q#gd0 z9RakR=URRUYTX^wYJ8z(&&5{LOLU9NRLih-%kXxqNV@g4_9M79431$J({>_;>2kBf zHLla`P8T+r8IauLpVECcz4v@Zf6)E@kSqr7Df8Cz;rN1r7ezz2i+D-JgUKaBsipL+ zw?mJrdkfz4^4^a=tDh)p5R^1FHZ}pHl}!`n%>a?u%zxc1cts?Uh&>-jBodiSAq%P~ z0F_1sXf!IVh1R0b+Sb~pK$mN8Z)Y%>3>KXUbjWoAELNwG%wn;+y1Kf79=TqiPmaxI zb2uC>mpd>pFbE7O2-(BK!#o~uMDFwF&!ch@_So3iIA6f$^92(V6O#&4QJY)I&T`hgZrc5%dbMRS6)+?=(8 zwozqF5hK2?&NseVKj$`5n}vD%aa(77`pEOZ8D!$77mVwZx~e13J&P{F&)!yU@pGvIr7 zJaF@Y55KZXQtxtC_CO?r_;grymzm%Rp<%IT%|x&LWxkv4rZW0suVnaVALu}yMmFv4 zj#;{%mf_$PNKnP2iJ%z>%EzLgs^D@s7U+K%U9{hGDn6QrX5HfpD#U`>>KKe8=OA%w zYNl$bkXdN63x&$JK=0zYCym%gW|E7Y#e0|{<@|@0)j!s84YyL9?JTM0Rw>p8WaHBM z@W0^Y&YCI}!ZQ^~wb3x>SN&(pmAMZi_V&T47N$RQ$vuxR*=ZThKUhEa!gn9*@saPa zX8R)|rp7%cgV|yuO%MEbuM;ggw)!UH_EAycpTa+us$>XmaO~E4PvqskA%=}V`B(S* z?99DWM`6~+gUPU!JLe|_rg7Jr57K!#XD<1lYc1=2dAD!WyA$e2nHZzU&>^n&{bs0A z6&%OOD*KD>zTI`p_3wOLn2{)*{8_!wc>Y`0Kx}AYU0J4gx{iiYK3NNHTkdNSp_*{g hgrgSyPXE)ITK|^uzi(2WXvqIb7bkbe3WvbN{{X!x0IvW5 literal 0 HcmV?d00001 diff --git a/data/templates/Cpp_Template/rfind b/data/templates/Cpp_Template/rfind new file mode 100755 index 0000000..0fbfa3d --- /dev/null +++ b/data/templates/Cpp_Template/rfind @@ -0,0 +1,46 @@ +#! /bin/bash + +# +# Usage : rfind dir suffix ... +# +# find all files *suffix in dir in a recursive way +# different of the usual command find ... +# + +if test $# != 2 ; then + echo "Usage : $0 dir suffix" + exit +fi + +local_find() { + # if the first argument is not a directory, returns + if test ! -d $1 ; then + # echo "$1 is not a directory" + return + fi + # dont look in the CVS directories + # dont look in the autom4te* directories + case "$1" in + */CVS) return ;; + */autom4te*) return ;; + *) ;; + esac + # for each regular file contained in the directory + # test if it's a *"$2" file + for i in $1/* + do + if test -f $i ; then + case `basename $i` in + *$2) echo " "$i ;; + *) ;; + esac + fi + done + # for each subdirectory of the first argument, proceeds recursively + for i in $1/* + do + local_find $i $2 + done +} + +local_find $1 $2 diff --git a/data/templates/Cpp_Template/root_clean b/data/templates/Cpp_Template/root_clean new file mode 100755 index 0000000..5cddf28 --- /dev/null +++ b/data/templates/Cpp_Template/root_clean @@ -0,0 +1,32 @@ +#!/bin/bash + + +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} + +TO_CLEAN= +TO_CLEAN=${TO_CLEAN}' aclocal.m4' +TO_CLEAN=${TO_CLEAN}' autom4te*' +TO_CLEAN=${TO_CLEAN}' configure' +TO_CLEAN=${TO_CLEAN}' configure.in' +TO_CLEAN=${TO_CLEAN}' install-sh missing mkinstalldirs' +TO_CLEAN=${TO_CLEAN}' py-compile' +TO_CLEAN=${TO_CLEAN}' build_configure.log' +TO_CLEAN=${TO_CLEAN}' depcomp' +TO_CLEAN=${TO_CLEAN}' config.guess config.sub ltmain.sh' +TO_CLEAN=${TO_CLEAN}' Makefile.am.list' +# TO_CLEAN=${TO_CLEAN}' COPYING INSTALL' + +rm -rf $TO_CLEAN > /dev/null + +l=`find . -name "Makefile.in"` + +if test X"$l" != X ; then + rm -f $l +fi + +l=`find . -name "*~"` + +if test X"$l" != X ; then + rm -f $l +fi diff --git a/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx new file mode 100644 index 0000000..4bfe9b0 --- /dev/null +++ b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx @@ -0,0 +1,19 @@ +#include ":sat:{Cpp_Template_}.hxx" +// uncoment if the component uses MED +//#include "MEDCouplingUMesh.hxx" +//#include "MEDCouplingFieldDouble.hxx" +#include + +using namespace std; +//using namespace MED_EN; + +:sat:{Cpp_Template_}:::sat:{Cpp_Template_}() +{ +} + +// implement your methods +double :sat:{Cpp_Template_}::plus(double _x, double _y) +{ + return _x+_y; +} + diff --git a/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx new file mode 100644 index 0000000..95d4c4b --- /dev/null +++ b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx @@ -0,0 +1,21 @@ +#ifndef _:sat:{Cpp_Template_}_HXX_ +#define _:sat:{Cpp_Template_}_HXX_ + +// Uncomment if the component uses MEDCoupling +// namespace MEDCoupling +// { +// class MEDCouplingUMesh; +// class MEDCouplingFieldDouble; +// } + +class :sat:{Cpp_Template_} +{ +// public methods +public: + :sat:{Cpp_Template_}(); + // fill your methods + double plus(double x, double y); +private: +}; + +#endif diff --git a/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am new file mode 100644 index 0000000..6b1270a --- /dev/null +++ b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}CXX.la +lib:sat:{Cpp_Template_}CXX_la_SOURCES = :sat:{Cpp_Template_}.cxx +lib:sat:{Cpp_Template_}CXX_la_LIBADD = $(MEDCOUPLING_LDFLAGS) $(MED3_LIBS) $(HDF5_LIBS) -lmedcoupling -linterpkernel + +# exported headers +library_includedir=$(includedir) +library_include_HEADERS = :sat:{Cpp_Template_}.hxx + +INCLUDES = $(MEDCOUPLING_CXXFLAGS) $(MED3_INCLUDES) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) + +bin_PROGRAMS = :sat:{Cpp_Template_}_test +:sat:{Cpp_Template_}_test_SOURCES = main.cxx +:sat:{Cpp_Template_}_test_LDADD = lib:sat:{Cpp_Template_}CXX.la $(MEDCOUPLING_LDFLAGS) -lmedcoupling -linterpkernel + + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am + + diff --git a/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/main.cxx b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/main.cxx new file mode 100644 index 0000000..d56714b --- /dev/null +++ b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__CXX/main.cxx @@ -0,0 +1,14 @@ +#include ":sat:{Cpp_Template_}.hxx" +// uncoment if the component uses MED +// #include "MEDCouplingUMesh.hxx" +// #include "MEDCouplingFieldDouble.hxx" +#include + +using namespace std; +int main(int argc, char ** argv) +{ + if (getenv("SALOME_trace") == NULL ) + setenv("SALOME_trace","local",0); + :sat:{Cpp_Template_} myCalc; + // test myCalc component ... +} diff --git a/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i new file mode 100644 index 0000000..f83dfd1 --- /dev/null +++ b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i @@ -0,0 +1,32 @@ +%module :sat:{Cpp_Template_}SWIG + +%{ +#include +#include ":sat:{Cpp_Template_}.hxx" +%} + +/* + Initialisation block due to the LocalTraceCollector mechanism + + */ + +/* %include "MEDCouplingCommon.i" */ + +%init %{ + if (getenv("SALOME_trace") == NULL ) + setenv("SALOME_trace","local",0); +%} + +%include "std_vector.i" +%include "std_string.i" + +namespace std { + %template(vectori) vector; + %template(vectord) vector; +}; + + +%include ":sat:{Cpp_Template_}.hxx" + + + diff --git a/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am new file mode 100644 index 0000000..8c75b5e --- /dev/null +++ b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}SWIG.la +nodist_lib:sat:{Cpp_Template_}SWIG_la_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +BUILT_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +SWIG_PYTHON_INCLUDES = $(MEDCOUPLING_CXXFLAGS) -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX + +INCLUDES = -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX $(PYTHON_INCLUDES) $(MEDCOUPLING_CXXFLAGS) $(MED3_INCLUDES) $(KERNEL_CXXFLAGS) + +lib:sat:{Cpp_Template_}SWIG_la_LIBADD = -L../:sat:{Cpp_Template_}_CXX -l:sat:{Cpp_Template_}CXX $(MEDCOUPLING_LDFLAGS) + + +bin_SCRIPTS = :sat:{Cpp_Template_}SWIG.py + +clean-local: + $(RM) :sat:{Cpp_Template_}SWIG.py :sat:{Cpp_Template_}_wrap.cxx + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am diff --git a/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py new file mode 100644 index 0000000..05414cb --- /dev/null +++ b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py @@ -0,0 +1,16 @@ +from os import getenv +if getenv("SALOMEPATH"): + import salome + import :sat:{Cpp_Template_}_ORB + my_:sat:{Cpp_Template_} = salome.lcc.FindOrLoadComponent("FactoryServer", ":sat:{Cpp_Template_}") + IN_SALOME_GUI = 1 +else: + import :sat:{Cpp_Template_}SWIG + my_:sat:{Cpp_Template_}=:sat:{Cpp_Template_}SWIG.:sat:{Cpp_Template_}() +pass +# +# +print "Test Program of :sat:{Cpp_Template_} component" + +# ... + diff --git a/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am new file mode 100644 index 0000000..ce76b47 --- /dev/null +++ b/data/templates/Cpp_Template/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am @@ -0,0 +1,7 @@ +# data_DATA = +# datadir = + +scripts_SCRIPTS = :sat:{Cpp_Template_}_test.py +scriptsdir = $(prefix)/bin + +include $(top_srcdir)/adm/unix/make_check.am diff --git a/data/templates/Cpp_Template/src/Cpp_Template_/Makefile.am b/data/templates/Cpp_Template/src/Cpp_Template_/Makefile.am new file mode 100644 index 0000000..7aa8acb --- /dev/null +++ b/data/templates/Cpp_Template/src/Cpp_Template_/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = :sat:{Cpp_Template_}_CXX :sat:{Cpp_Template_}_SWIG :sat:{Cpp_Template_}_TEST + + diff --git a/data/templates/Cpp_Template/src/Makefile.am b/data/templates/Cpp_Template/src/Makefile.am new file mode 100644 index 0000000..ad76b7a --- /dev/null +++ b/data/templates/Cpp_Template/src/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = :sat:{Cpp_Template_} + diff --git a/data/templates/Cpp_Template/template.info b/data/templates/Cpp_Template/template.info new file mode 100644 index 0000000..a586f36 --- /dev/null +++ b/data/templates/Cpp_Template/template.info @@ -0,0 +1,74 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# description of the template to be displayed with option --info +info = """ +Author: CEA +Description: This template can be used to create c++ component. +Remark: + * The name of the module must be suffixed with 'CPP'. + * This module will compiled with med 3. + * Once the module is compiled use the generate command to create the SALOME module. + * The generate command requires a version of YACSGEN greater or equal to 6.5.0. +""" + +# code to subsitute with component name +file_subst = "Cpp_Template_" + +# delimiter used in the template (default is ':sat:') +#delimiter = ":sat:" + +# filter of files to ignore for substitution +# if not defined all files will be parsed +ignore_filters = '*.png' + +# list of parameters +# a string = parameter name +# a tuple = (parameter name, default value, prompt, validation method) +parameters = [ + (file_subst, "%(NAME)s"), + ("get_method", "archive", "get method for prepare", lambda l: l in ['cvs', 'git', 'archive']) + ] + +# configuration to use this component with sat +pyconf = """ + default : + { + name : "%(NAME)sCPP" + component_name : "%(NAME)s" + get_sources : '%(get_method)s' + build_sources : 'autotools' + git_info: + { + repo : 'to be filled' + tag : 'to be filled' + } + archive_info: + { + archive_name : '%(target)s.tar.gz' + } + nb_proc : 1 + source_dir : $TOOLS.common.source_root + '/' + $name + build_dir : $TOOLS.common.build_root + '/' + $name + depend : [ + 'hdf5', + 'med', + 'qt', + 'Python', + 'omniORB', + 'omniORBpy', + 'boost' , + 'KERNEL', + 'GUI', + 'MED' + ] + opt_depend : [] + properties : + { + is_cpp : "yes" + environment : "salome" + has_salome_gui : "yes" + logo : $source_dir + "/resources/%(NAME)s.png" + } + } +""" diff --git a/data/templates/Cpp_Template_med2/AUTHORS b/data/templates/Cpp_Template_med2/AUTHORS new file mode 100755 index 0000000..8f4939d --- /dev/null +++ b/data/templates/Cpp_Template_med2/AUTHORS @@ -0,0 +1 @@ +Nicolas Crouzet (nicolas.crouzet@cea.fr) diff --git a/data/templates/Cpp_Template_med2/ChangeLog b/data/templates/Cpp_Template_med2/ChangeLog new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/Cpp_Template_med2/Makefile.am b/data/templates/Cpp_Template_med2/Makefile.am new file mode 100755 index 0000000..46e5489 --- /dev/null +++ b/data/templates/Cpp_Template_med2/Makefile.am @@ -0,0 +1,5 @@ + +SUBDIRS = src + +#install-exec-hook: +# cp -rf idl/* $(pythondir)/$(PACKAGE) diff --git a/data/templates/Cpp_Template_med2/NEWS b/data/templates/Cpp_Template_med2/NEWS new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/Cpp_Template_med2/README b/data/templates/Cpp_Template_med2/README new file mode 100755 index 0000000..c627afc --- /dev/null +++ b/data/templates/Cpp_Template_med2/README @@ -0,0 +1,16 @@ +This directory contains the tree directories to compile a C++ components linked with MED library. + + +Component is based on automake. + +To INSTALL it : source salome environement file (for MED), then + + mkdir ../:sat:{Cpp_Template_}CPP_BUILD + mkdir ../:sat:{Cpp_Template_}CPP_INSTALL + ./build_configure + cd ../:sat:{Cpp_Template_}CPP_BUILD + ../:sat:{Cpp_Template_}CPP_SRC/configure --prefix= + make + make install + + diff --git a/data/templates/Cpp_Template_med2/adm/unix/make_begin.am b/data/templates/Cpp_Template_med2/adm/unix/make_begin.am new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/Cpp_Template_med2/adm/unix/make_check.am b/data/templates/Cpp_Template_med2/adm/unix/make_check.am new file mode 100755 index 0000000..b4c35a0 --- /dev/null +++ b/data/templates/Cpp_Template_med2/adm/unix/make_check.am @@ -0,0 +1,15 @@ + +python_cmd = env \ + SELF_ROOT_DIR=$(prefix) \ + REP_TESTS=$(prefix)/tests \ + REP_MAIL=$(prefix)/tests/maillages \ + PATH=$(bindir)/$(PACKAGE):$(PATH) \ + PYTHONPATH=$(bindir)/$(PACKAGE):$(libdir)/$(PACKAGE):$(pythondir)/$(PACKAGE):$(PYTHONPATH) \ + python + +check-local: + for f in X $(scripts_SCRIPTS) ; do \ + if test $f != X ; then \ + ( cd $(scriptsdir) && $(python_cmd) $f ) || exit 1 ; \ + fi ; \ + done diff --git a/data/templates/Cpp_Template_med2/adm/unix/make_end.am b/data/templates/Cpp_Template_med2/adm/unix/make_end.am new file mode 100755 index 0000000..078a218 --- /dev/null +++ b/data/templates/Cpp_Template_med2/adm/unix/make_end.am @@ -0,0 +1,23 @@ +SUFFIXES = + +# -------------------------------------------- +# *.i --> *_wrap.cxx +# -------------------------------------------- + +SUFFIXES += .i _wrap.cxx + +.i_wrap.cxx : + $(SWIG) $(SWIG_FLAGS) $(SWIG_PYTHON_INCLUDES) -o $@ $< + + +#---------------------------------------------- +# Post-installation rules +#---------------------------------------------- + +install-exec-hook: install-swig + +install-swig: $(patsubst lib%.la, $(libdir)/_%.so, \ + $(filter lib%SWIG.la, $(lib_LTLIBRARIES))) + +$(libdir)/_%.so: $(libdir)/lib%.so + ln -s `basename $^` $@ diff --git a/data/templates/Cpp_Template_med2/archive b/data/templates/Cpp_Template_med2/archive new file mode 100755 index 0000000..be9d5d8 --- /dev/null +++ b/data/templates/Cpp_Template_med2/archive @@ -0,0 +1,34 @@ +#! /bin/bash + +# +DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${DIR} +DIR=`pwd` + +REP=`basename $DIR` + +if [ -z "$USER" ] +then + USER=`whoami 2> /dev/null` || true +fi + +mkdir -p /tmp/${USER} +\rm -rf /tmp/${USER}/${REP} + +cd ${DIR}/.. +cp -drf ${REP} /tmp/${USER}/${REP} + +cd /tmp/${USER}/${REP} +./root_clean +find . -name "CVS" -depth -exec \rm -rf {} \; +find . -type f -exec chmod u+rw {} \; + +cd /tmp/${USER} + +TAR_FILE=${REP}`date +_%d.%m.%Y_%H.%M`.tgz + +tar cvfz ${TAR_FILE} ${REP} + +cp ${TAR_FILE} ${DIR}/.. + +\rm -rf /tmp/${USER}/${REP} ${TAR_FILE} diff --git a/data/templates/Cpp_Template_med2/build_configure b/data/templates/Cpp_Template_med2/build_configure new file mode 100755 index 0000000..5356185 --- /dev/null +++ b/data/templates/Cpp_Template_med2/build_configure @@ -0,0 +1,50 @@ +#! /bin/bash + +run() { + local logfile=$ORIG_DIR/build_configure.log + printf "%-50s" "$1 ... " + eval $1 > $logfile 2>&1 + if test $? != 0 ; then + echo "[FAILED]" + echo "see file build_configure.log ..." + exit 1 + fi + echo "[ OK ]" +} + +# -- +ORIG_DIR=`pwd` + +######################################################################## +# Test if the KERNEL_ROOT_DIR and MED_ROOT_DIR are set correctly + +if test ! -d "${KERNEL_ROOT_DIR}"; then + echo "failed : KERNEL_ROOT_DIR variable is not correct !" + exit +fi +if test ! -d "${MED_ROOT_DIR}"; then + echo "failed : MED_ROOT_DIR variable is not correct !" + exit +fi + +# -- +# -- goto build_configure dir +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} +# -- +# -- list all Makefile.am in Makefile.am.list +./rfind . Makefile.am > Makefile.am.list +# -- +# -- configure.in construction +cp configure.in.base configure.in +chmod +w configure.in +echo "AC_OUTPUT([ \\" >> configure.in +sed -e 's,\.am, \\,' -e 's,\.\/,,' Makefile.am.list >> configure.in +echo "])" >> configure.in + +# -- +run "libtoolize" +run "aclocal -I adm/unix/config_files -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files -I ${MED_ROOT_DIR}/adm_local/unix/config_files" +run "autoconf" +run "automake --add-missing --copy" + diff --git a/data/templates/Cpp_Template_med2/configure.in.base b/data/templates/Cpp_Template_med2/configure.in.base new file mode 100755 index 0000000..2b866a2 --- /dev/null +++ b/data/templates/Cpp_Template_med2/configure.in.base @@ -0,0 +1,23 @@ + +AC_INIT(salome, 0.1) +AC_CONFIG_SRCDIR(src) +AM_INIT_AUTOMAKE +AC_ENABLE_DEBUG(no) +AC_DISABLE_PRODUCTION + +AC_PROG_LIBTOOL +AC_PROG_CXX +AC_PROG_CXXCPP + +AC_LINKER_OPTIONS +CHECK_PYTHON +AM_PATH_PYTHON(2.2.1) +CHECK_SWIG + +CHECK_KERNEL +CHECK_MED + +AC_ENABLE_STATIC(no) + +CXXFLAGS="${CXXFLAGS} -g" +AC_SUBST(CXXFLAGS) diff --git a/data/templates/Cpp_Template_med2/resources/Cpp_Template_.png b/data/templates/Cpp_Template_med2/resources/Cpp_Template_.png new file mode 100755 index 0000000000000000000000000000000000000000..674f8fc979214b86889c9eb4361c23102aca4a02 GIT binary patch literal 1452 zcmbu<`#aQG7y$6E+crjHXLG4ROYIb8BU_6o8nMxX3QL1TWhIwtObvR-QtMuAcBP9* zuB)U_N-XAzF~hjdjLQf!826bma+^If{R#Vd&Uw#!&U2pg%lkej^_2T@1Y8deK@h^l z+0g^6M)C<$0nxEAjRF>xCp_t6#Z#_cPBNJc-2eX&2n2ZKYXk`jg{rEm zs;Q{~v9hxAYhGJhJ3BkOu(04tRCgo7PmwfFlaU@|El-lRH$@jqGQd*x{m6#?q#gd0 z9RakR=URRUYTX^wYJ8z(&&5{LOLU9NRLih-%kXxqNV@g4_9M79431$J({>_;>2kBf zHLla`P8T+r8IauLpVECcz4v@Zf6)E@kSqr7Df8Cz;rN1r7ezz2i+D-JgUKaBsipL+ zw?mJrdkfz4^4^a=tDh)p5R^1FHZ}pHl}!`n%>a?u%zxc1cts?Uh&>-jBodiSAq%P~ z0F_1sXf!IVh1R0b+Sb~pK$mN8Z)Y%>3>KXUbjWoAELNwG%wn;+y1Kf79=TqiPmaxI zb2uC>mpd>pFbE7O2-(BK!#o~uMDFwF&!ch@_So3iIA6f$^92(V6O#&4QJY)I&T`hgZrc5%dbMRS6)+?=(8 zwozqF5hK2?&NseVKj$`5n}vD%aa(77`pEOZ8D!$77mVwZx~e13J&P{F&)!yU@pGvIr7 zJaF@Y55KZXQtxtC_CO?r_;grymzm%Rp<%IT%|x&LWxkv4rZW0suVnaVALu}yMmFv4 zj#;{%mf_$PNKnP2iJ%z>%EzLgs^D@s7U+K%U9{hGDn6QrX5HfpD#U`>>KKe8=OA%w zYNl$bkXdN63x&$JK=0zYCym%gW|E7Y#e0|{<@|@0)j!s84YyL9?JTM0Rw>p8WaHBM z@W0^Y&YCI}!ZQ^~wb3x>SN&(pmAMZi_V&T47N$RQ$vuxR*=ZThKUhEa!gn9*@saPa zX8R)|rp7%cgV|yuO%MEbuM;ggw)!UH_EAycpTa+us$>XmaO~E4PvqskA%=}V`B(S* z?99DWM`6~+gUPU!JLe|_rg7Jr57K!#XD<1lYc1=2dAD!WyA$e2nHZzU&>^n&{bs0A z6&%OOD*KD>zTI`p_3wOLn2{)*{8_!wc>Y`0Kx}AYU0J4gx{iiYK3NNHTkdNSp_*{g hgrgSyPXE)ITK|^uzi(2WXvqIb7bkbe3WvbN{{X!x0IvW5 literal 0 HcmV?d00001 diff --git a/data/templates/Cpp_Template_med2/rfind b/data/templates/Cpp_Template_med2/rfind new file mode 100755 index 0000000..0fbfa3d --- /dev/null +++ b/data/templates/Cpp_Template_med2/rfind @@ -0,0 +1,46 @@ +#! /bin/bash + +# +# Usage : rfind dir suffix ... +# +# find all files *suffix in dir in a recursive way +# different of the usual command find ... +# + +if test $# != 2 ; then + echo "Usage : $0 dir suffix" + exit +fi + +local_find() { + # if the first argument is not a directory, returns + if test ! -d $1 ; then + # echo "$1 is not a directory" + return + fi + # dont look in the CVS directories + # dont look in the autom4te* directories + case "$1" in + */CVS) return ;; + */autom4te*) return ;; + *) ;; + esac + # for each regular file contained in the directory + # test if it's a *"$2" file + for i in $1/* + do + if test -f $i ; then + case `basename $i` in + *$2) echo " "$i ;; + *) ;; + esac + fi + done + # for each subdirectory of the first argument, proceeds recursively + for i in $1/* + do + local_find $i $2 + done +} + +local_find $1 $2 diff --git a/data/templates/Cpp_Template_med2/root_clean b/data/templates/Cpp_Template_med2/root_clean new file mode 100755 index 0000000..5cddf28 --- /dev/null +++ b/data/templates/Cpp_Template_med2/root_clean @@ -0,0 +1,32 @@ +#!/bin/bash + + +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} + +TO_CLEAN= +TO_CLEAN=${TO_CLEAN}' aclocal.m4' +TO_CLEAN=${TO_CLEAN}' autom4te*' +TO_CLEAN=${TO_CLEAN}' configure' +TO_CLEAN=${TO_CLEAN}' configure.in' +TO_CLEAN=${TO_CLEAN}' install-sh missing mkinstalldirs' +TO_CLEAN=${TO_CLEAN}' py-compile' +TO_CLEAN=${TO_CLEAN}' build_configure.log' +TO_CLEAN=${TO_CLEAN}' depcomp' +TO_CLEAN=${TO_CLEAN}' config.guess config.sub ltmain.sh' +TO_CLEAN=${TO_CLEAN}' Makefile.am.list' +# TO_CLEAN=${TO_CLEAN}' COPYING INSTALL' + +rm -rf $TO_CLEAN > /dev/null + +l=`find . -name "Makefile.in"` + +if test X"$l" != X ; then + rm -f $l +fi + +l=`find . -name "*~"` + +if test X"$l" != X ; then + rm -f $l +fi diff --git a/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx new file mode 100755 index 0000000..6b9d347 --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx @@ -0,0 +1,19 @@ +#include ":sat:{Cpp_Template_}.hxx" +// uncoment if the component uses MED +//#include "MEDMEM_Field.hxx" +//#include "MEDMEM_Mesh.hxx" +#include + +using namespace std; +//using namespace MED_EN; + +:sat:{Cpp_Template_}:::sat:{Cpp_Template_}() +{ +} + +// implement your methods +double :sat:{Cpp_Template_}::plus(double _x, double _y) +{ + return _x+_y; +} + diff --git a/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx new file mode 100755 index 0000000..83a4ff4 --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx @@ -0,0 +1,20 @@ +#ifndef _:sat:{Cpp_Template_}_HXX_ +#define _:sat:{Cpp_Template_}_HXX_ + +// MED forward declaration (uncoment if the component uses MED) +//#include "MEDMEM_FieldForward.hxx" +//namespace MEDMEM { +// class MESH; +//} + +class :sat:{Cpp_Template_} +{ +// public methods +public: + :sat:{Cpp_Template_}(); + // fill your methods + double plus(double x, double y); +private: +}; + +#endif diff --git a/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am new file mode 100755 index 0000000..b213d99 --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}CXX.la +lib:sat:{Cpp_Template_}CXX_la_SOURCES = :sat:{Cpp_Template_}.cxx +lib:sat:{Cpp_Template_}CXX_la_LIBADD = $(MED_LDFLAGS) -lmedmem $(MED2_LIBS) $(HDF5_LIBS) -lmedcoupling + +# exported headers +library_includedir=$(includedir) +library_include_HEADERS = :sat:{Cpp_Template_}.hxx + +INCLUDES = $(MED_CXXFLAGS) $(MED2_INCLUDES) $(HDF5_INCLUDES) $(KERNEL_CXXFLAGS) + +bin_PROGRAMS = :sat:{Cpp_Template_}_test +:sat:{Cpp_Template_}_test_SOURCES = main.cxx +:sat:{Cpp_Template_}_test_LDADD = lib:sat:{Cpp_Template_}CXX.la + + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am + + diff --git a/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/main.cxx b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/main.cxx new file mode 100755 index 0000000..fd0325c --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__CXX/main.cxx @@ -0,0 +1,12 @@ +#include ":sat:{Cpp_Template_}.hxx" +#include "MEDMEM_Field.hxx" +#include + +using namespace std; +int main(int argc, char ** argv) +{ + if (getenv("SALOME_trace") == NULL ) + setenv("SALOME_trace","local",0); + :sat:{Cpp_Template_} myCalc; + // test myCalc component ... +} diff --git a/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i new file mode 100755 index 0000000..8d231d5 --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i @@ -0,0 +1,42 @@ +%module :sat:{Cpp_Template_}SWIG + +%{ +#include +#include ":sat:{Cpp_Template_}.hxx" +%} + +/* + Initialisation block due to the LocalTraceCollector mechanism + + */ + +%include "libMEDMEM_Swig.i" + +%init %{ + if (getenv("SALOME_trace") == NULL ) + setenv("SALOME_trace","local",0); +%} + +%include "std_vector.i" +%include "std_string.i" + +namespace std { + %template(vectori) vector; + %template(vectord) vector; +}; + +/* + SWIG needs the use of the typedefs done in libMEDMEM_Swig.i to get the correct wrapping + ( ie instance at _d0709808_p_FIELDDOUBLE>, in state of + which has no attributes + -> replace in the declaration of methods containing fields : + FIELD by FIELDDOUBLE + FIELD by FIELDINT + FIELD by FIELDDOUBLENOINTERLACE + FIELD by FIELDINTNOINTERLACE +*/ + +%include ":sat:{Cpp_Template_}.hxx" + + + diff --git a/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am new file mode 100755 index 0000000..130d160 --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}SWIG.la +nodist_lib:sat:{Cpp_Template_}SWIG_la_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +BUILT_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +SWIG_PYTHON_INCLUDES = $(MED_CXXFLAGS) -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX + +INCLUDES = -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX $(PYTHON_INCLUDES) $(MED_CXXFLAGS) $(MED2_INCLUDES) $(KERNEL_CXXFLAGS) + +lib:sat:{Cpp_Template_}SWIG_la_LIBADD = -L../:sat:{Cpp_Template_}_CXX -l:sat:{Cpp_Template_}CXX $(MED_LDFLAGS) -lmedmem + + +bin_SCRIPTS = :sat:{Cpp_Template_}SWIG.py + +clean-local: + $(RM) :sat:{Cpp_Template_}SWIG.py :sat:{Cpp_Template_}_wrap.cxx + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am diff --git a/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py new file mode 100755 index 0000000..05414cb --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py @@ -0,0 +1,16 @@ +from os import getenv +if getenv("SALOMEPATH"): + import salome + import :sat:{Cpp_Template_}_ORB + my_:sat:{Cpp_Template_} = salome.lcc.FindOrLoadComponent("FactoryServer", ":sat:{Cpp_Template_}") + IN_SALOME_GUI = 1 +else: + import :sat:{Cpp_Template_}SWIG + my_:sat:{Cpp_Template_}=:sat:{Cpp_Template_}SWIG.:sat:{Cpp_Template_}() +pass +# +# +print "Test Program of :sat:{Cpp_Template_} component" + +# ... + diff --git a/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am new file mode 100755 index 0000000..ce76b47 --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am @@ -0,0 +1,7 @@ +# data_DATA = +# datadir = + +scripts_SCRIPTS = :sat:{Cpp_Template_}_test.py +scriptsdir = $(prefix)/bin + +include $(top_srcdir)/adm/unix/make_check.am diff --git a/data/templates/Cpp_Template_med2/src/Cpp_Template_/Makefile.am b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Makefile.am new file mode 100755 index 0000000..7aa8acb --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Cpp_Template_/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = :sat:{Cpp_Template_}_CXX :sat:{Cpp_Template_}_SWIG :sat:{Cpp_Template_}_TEST + + diff --git a/data/templates/Cpp_Template_med2/src/Makefile.am b/data/templates/Cpp_Template_med2/src/Makefile.am new file mode 100755 index 0000000..ad76b7a --- /dev/null +++ b/data/templates/Cpp_Template_med2/src/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = :sat:{Cpp_Template_} + diff --git a/data/templates/Cpp_Template_med2/template.info b/data/templates/Cpp_Template_med2/template.info new file mode 100644 index 0000000..d987552 --- /dev/null +++ b/data/templates/Cpp_Template_med2/template.info @@ -0,0 +1,74 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# description of the template to be displayed with option --info +info = """ +Author: CEA +Description: This template can be used to create c++ component. +Remark: + * The name of the module must be suffixed with 'CPP'. + * This module will compiled with med 2. + * Once the module is compiled use the generate command to create the SALOME module. + * The generate command requires a version of YACSGEN greater or equal to 6.5.0. +""" + +# code to subsitute with component name +file_subst = "Cpp_Template_" + +# delimiter used in the template (default is ':sat:') +#delimiter = ":sat:" + +# filter of files to ignore for substitution +# if not defined all files will be parsed +ignore_filters = '*.png' + +# list of parameters +# a string = parameter name +# a tuple = (parameter name, default value, prompt, validation method) +parameters = [ + (file_subst, "%(NAME)s"), + ("get_method", "archive", "get method for prepare", lambda l: l in ['cvs', 'git', 'archive']) + ] + +# configuration to use this component with sat +pyconf = """ + '%(NAME)sCPP': + { + name : "%(NAME)sCPP" + component_name : "%(NAME)s" + get_sources : '%(get_method)s' + build_sources : 'autotools' + git_info: + { + repo : 'to be filled' + tag : 'to be filled' + } + archive_info: + { + archive_name : '%(target)s.tar.gz' + } + nb_proc : 1 + source_dir : $TOOLS.common.source_root + '/' + $name + build_dir : $TOOLS.common.build_root + '/' + $name + depend : [ + 'hdf5', + 'med', + 'qt', + 'Python', + 'omniORB', + 'omniORBpy', + 'boost' , + 'KERNEL', + 'GUI', + 'MED' + ] + opt_depend : [] + properties : + { + is_cpp : "yes" + environment : "salome" + has_salome_gui : "yes" + logo : $source_dir + "/resources/%(NAME)s.png" + } + } +""" diff --git a/data/templates/Cpp_Template_stda/AUTHORS b/data/templates/Cpp_Template_stda/AUTHORS new file mode 100755 index 0000000..8f4939d --- /dev/null +++ b/data/templates/Cpp_Template_stda/AUTHORS @@ -0,0 +1 @@ +Nicolas Crouzet (nicolas.crouzet@cea.fr) diff --git a/data/templates/Cpp_Template_stda/ChangeLog b/data/templates/Cpp_Template_stda/ChangeLog new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/Cpp_Template_stda/Makefile.am b/data/templates/Cpp_Template_stda/Makefile.am new file mode 100755 index 0000000..46e5489 --- /dev/null +++ b/data/templates/Cpp_Template_stda/Makefile.am @@ -0,0 +1,5 @@ + +SUBDIRS = src + +#install-exec-hook: +# cp -rf idl/* $(pythondir)/$(PACKAGE) diff --git a/data/templates/Cpp_Template_stda/NEWS b/data/templates/Cpp_Template_stda/NEWS new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/Cpp_Template_stda/README b/data/templates/Cpp_Template_stda/README new file mode 100755 index 0000000..4930e12 --- /dev/null +++ b/data/templates/Cpp_Template_stda/README @@ -0,0 +1,15 @@ +This directory contains the tree directories to compile a C++ components. + + +Component is based on automake. + +To INSTALL it : + + mkdir ../:sat:{Cpp_Template_}CPP_BUILD + mkdir ../:sat:{Cpp_Template_}CPP_INSTALL + ./build_configure + cd ../:sat:{Cpp_Template_}CPP_BUILD + ../:sat:{Cpp_Template_}CPP_SRC/configure --prefix= + make + make install + diff --git a/data/templates/Cpp_Template_stda/adm/unix/config_files/ac_cxx_option.m4 b/data/templates/Cpp_Template_stda/adm/unix/config_files/ac_cxx_option.m4 new file mode 100755 index 0000000..68e413d --- /dev/null +++ b/data/templates/Cpp_Template_stda/adm/unix/config_files/ac_cxx_option.m4 @@ -0,0 +1,45 @@ +dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +dnl @synopsis AC_CXX_OPTION(-option,variable where we add option if ok,action if ok; action if not ok) +dnl Check options for C++ compiler +dnl @author Bernard Secher - 15/01/2004 +dnl +AC_DEFUN([AC_CXX_OPTION], [ + AC_MSG_CHECKING(wether $CXX accepts $1) + cat > conftest.cxx < conftest.log 2>&1 + var=`echo $1 | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + AC_MSG_RESULT(no) + eval $4 + else + AC_MSG_RESULT(yes) + $2="${$2} $1" + eval $3 + fi +]) + + diff --git a/data/templates/Cpp_Template_stda/adm/unix/config_files/ac_linker_options.m4 b/data/templates/Cpp_Template_stda/adm/unix/config_files/ac_linker_options.m4 new file mode 100755 index 0000000..cd46f8d --- /dev/null +++ b/data/templates/Cpp_Template_stda/adm/unix/config_files/ac_linker_options.m4 @@ -0,0 +1,56 @@ +dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +dnl @synopsis AC_LINKER_OPTIONS +dnl Check warning flags for C++ compiler to control warning messages +dnl +AC_DEFUN([AC_LINKER_OPTIONS],[ + + AC_CHECKING(for LIB_LOCATION_SUFFIX) + LIB_LOCATION_SUFFIX="" + AC_SUBST(LIB_LOCATION_SUFFIX) + AC_MSG_RESULT(LIB_LOCATION_SUFFIX is $LIB_LOCATION_SUFFIX) + + for opt in "-Xlinker -export-dynamic" -transitive_link; do + AC_CXX_OPTION($opt,LDEXPDYNFLAGS,flag=yes,flag=no) + if test "$flag" = "yes"; then + break + fi + done + AC_SUBST(LDEXPDYNFLAGS) + + for opt in "-Xlinker -enable-new-dtags" ; do + AC_CXX_OPTION($opt,LDFLAGS) + done + AC_SUBST(LDFLAGS) + +dnl + case $host_os in + osf*) + STDLIB="-lcxxstd" + ;; + *) + STDLIB="-lstdc++" + ;; + esac + AC_SUBST(STDLIB) +]) diff --git a/data/templates/Cpp_Template_stda/adm/unix/config_files/check_swig.m4 b/data/templates/Cpp_Template_stda/adm/unix/config_files/check_swig.m4 new file mode 100755 index 0000000..988b0b1 --- /dev/null +++ b/data/templates/Cpp_Template_stda/adm/unix/config_files/check_swig.m4 @@ -0,0 +1,75 @@ +dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +AC_DEFUN([CHECK_SWIG],[ +AC_REQUIRE([CHECK_PYTHON])dnl + +swig_ok=yes +numpy_ok=no + +AC_ARG_WITH(swig, + [AC_HELP_STRING([--with-swig=EXEC],[swig executable])], + [SWIG="$withval" + AC_MSG_RESULT("select $withval as swig executable") + ], [ + AC_PATH_PROG(SWIG, swig) + ]) + +if test "x$SWIG" = "x" +then + swig_ok=no + AC_MSG_RESULT(swig not in PATH variable) +fi + +if test "x$swig_ok" = "xyes" +then + AC_MSG_CHECKING(python wrapper generation with swig) + cat > conftest.h << EOF +int f(double); +EOF + + $SWIG -module conftest -python conftest.h >/dev/null 2>&1 + if test -f conftest_wrap.c + then + SWIG_FLAGS="-c++ -python -shadow" + else + swig_ok=no + fi + rm -f conftest* + AC_MSG_RESULT($swig_ok) +fi + +numpydir=`$PYTHON -c "import numpy;print numpy.get_include()" 2>/dev/null` +if test -d "$numpydir"; then + numpy_ok=yes + PYTHON_INCLUDES="$PYTHON_INCLUDES -I$numpydir" + SWIG_FLAGS="$SWIG_FLAGS -DWITH_NUMPY=WITH_NUMPY " + AC_DEFINE([WITH_NUMPY], [], [Python has numpy extension]) +fi + +AC_SUBST(SWIG_FLAGS) +AC_SUBST(SWIG) + +AC_MSG_RESULT(for swig: $swig_ok) + +])dnl +dnl diff --git a/data/templates/Cpp_Template_stda/adm/unix/config_files/production.m4 b/data/templates/Cpp_Template_stda/adm/unix/config_files/production.m4 new file mode 100755 index 0000000..00d62f7 --- /dev/null +++ b/data/templates/Cpp_Template_stda/adm/unix/config_files/production.m4 @@ -0,0 +1,105 @@ +dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +dnl define macros : +dnl AC_ENABLE_PRODUCTION AC_DISABLE_PRODUCTION +dnl AC_ENABLE_DEBUG AC_DISABLE_DEBUG +dnl version $Id$ +dnl author Patrick GOLDBRONN +dnl AC_ENABLE_PRODUCTION +dnl This macro enables production build : optimized + no debugging information (-g) +dnl default = not enabled +dnl +AC_DEFUN([AC_ENABLE_PRODUCTION], +[define([AC_ENABLE_PRODUCTION_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([production], + [AC_HELP_STRING([--enable-production], + [compile in optimized mode @<:@default=]AC_ENABLE_PRODUCTION_DEFAULT[@:>@])], + [ + enable_production=$enableval + ], + [enable_production=]AC_ENABLE_PRODUCTION_DEFAULT) + +AC_CXX_OPTION(-Wparentheses,CXXFLAGS) +AC_CXX_OPTION(-Wreturn-type,CXXFLAGS) +AC_CXX_OPTION(-fmessage-length=0,CXXFLAGS) +AC_CXX_OPTION(-Wunused,CXXFLAGS) +AC_CXX_OPTION(-pipe,CXXFLAGS) + +if test "X$enable_production" = "Xyes"; then + CFLAGS="$CFLAGS -O" + AC_CXX_OPTION(-Wuninitialized,CXXFLAGS) + CXXFLAGS="$CXXFLAGS -O " +else + CFLAGS="$CFLAGS -g" + CXXFLAGS="$CXXFLAGS -g" +fi +]) + +# AC_DISABLE_PRODUCTION - set the default flag to --disable-production +AC_DEFUN([AC_DISABLE_PRODUCTION], [AC_ENABLE_PRODUCTION(no)]) + +dnl AC_ENABLE_DEBUG +dnl +dnl This macro enables debugging build : debug + trace +dnl default = not enabled +dnl +AC_DEFUN([AC_ENABLE_DEBUG], + [define([AC_ENABLE_DEBUG_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE([debug], + [AC_HELP_STRING([--enable-debug], + [build with debug and trace information @<:@default=]AC_ENABLE_DEBUG_DEFAULT[@:>@])], + [ + enable_debug=$enableval + ], + [enable_debug=]AC_ENABLE_DEBUG_DEFAULT) + +if test "X$enable_debug" = "Xyes"; then + CFLAGS="$CFLAGS -g -D_DEBUG_ " + CXXFLAGS="$CXXFLAGS -g -D_DEBUG_ " +fi +]) + +# AC_DISABLE_DEBUG - set the default flag to --disable-debug +AC_DEFUN([AC_DISABLE_DEBUG], [AC_ENABLE_DEBUG(no)]) + +dnl AC_ENABLE_MPI_SEQ_CONTAINER +dnl +dnl This macro enables mpi into the sequential container +dnl default = not enabled +dnl +AC_DEFUN([AC_ENABLE_MPI_SEQ_CONTAINER], + [define([AC_ENABLE_MPI_SEQ_CONTAINER_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE([mpi-seq-container], + [AC_HELP_STRING([--enable-mpi-seq-container], + [enable mpi into seq container @<:@default=]AC_ENABLE_MPI_SEQ_CONTAINER_DEFAULT[@:>@])], + [ + enable_mpi_seq_container=$enableval + ], + [enable_mpi_seq_container=]AC_ENABLE_MPI_SEQ_CONTAINER_DEFAULT) + +if test "X$enable_mpi_seq_container" = "Xyes"; then + CFLAGS="$CFLAGS -D_MPI_SEQ_CONTAINER_ " + CXXFLAGS="$CXXFLAGS -D_MPI_SEQ_CONTAINER_ " +fi +AM_CONDITIONAL([WITH_MPI_SEQ_CONTAINER], [test "x$enable_mpi_seq_container" = "xyes"]) +]) diff --git a/data/templates/Cpp_Template_stda/adm/unix/config_files/python.m4 b/data/templates/Cpp_Template_stda/adm/unix/config_files/python.m4 new file mode 100755 index 0000000..72396bd --- /dev/null +++ b/data/templates/Cpp_Template_stda/adm/unix/config_files/python.m4 @@ -0,0 +1,184 @@ +dnl Copyright (C) 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +## ------------------------ +## Python file handling +## From Andrew Dalke +## Modified by Marc Tajchman (06/2001) +## ------------------------ + +dnl CHECK_PYTHON([module, classes]) +dnl +dnl Adds support for distributing Python modules or classes. +dnl Python library files distributed as a `module' are installed +dnl under PYTHON_SITE_PACKAGE (eg, ./python1.5/site-package/package-name) +dnl while those distributed as `classes' are installed under PYTHON_SITE +dnl (eg, ./python1.5/site-packages). The default is to install as +dnl a `module'. + +AC_DEFUN([CHECK_PYTHON], + [ + python_ok=yes + + AC_ARG_WITH(python, + [AC_HELP_STRING([--with-python=DIR],[root directory path of python installation])], + [PYTHON="$withval/bin/python" + AC_MSG_RESULT("select python distribution in $withval") + ], [ + AC_PATH_PROG(PYTHON, python) + ]) + + AC_CHECKING([local Python configuration]) + + AC_REQUIRE([AC_LINKER_OPTIONS])dnl + + PYTHON_PREFIX=`echo $PYTHON | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + PYTHON_PREFIX=`echo $PYTHON_PREFIX | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + PYTHONHOME=$PYTHON_PREFIX + + AC_SUBST(PYTHON_PREFIX) + AC_SUBST(PYTHONHOME) + + changequote(<<, >>)dnl + PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` + changequote([, ])dnl + AC_SUBST(PYTHON_VERSION) + + PY_MAKEFILE=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/Makefile + if test ! -f "$PY_MAKEFILE"; then + if test "${build_cpu::6}" = "x86_64" ; then + PY_MAKEFILE=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile + fi + fi + if test ! -f "$PY_MAKEFILE"; then + AC_MSG_WARN([*** Couldn't find ${PY_MAKEFILE}. Maybe you are +*** missing the development portion of the python installation]) + python_ok=no + fi + + AC_SUBST(PYTHON_INCLUDES) + AC_SUBST(PYTHON_LIBS) + + PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION + PYTHON_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" + PYTHON_LIB=$PYTHON_LIBS + PYTHON_LIBA=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a + if test "${build_cpu::6}" = "x86_64" ; then + if test "$PY_MAKEFILE" = "${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile" ; then + PYTHON_LIBS="-L${PYTHON_PREFIX}/lib64/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" + PYTHON_LIB=$PYTHON_LIBS + PYTHON_LIBA=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a + fi + fi + + dnl At times (like when building shared libraries) you may want + dnl to know which OS Python thinks this is. + + AC_SUBST(PYTHON_PLATFORM) + PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` + + AC_SUBST(PYTHON_SITE) + AC_ARG_WITH(python-site, + [AC_HELP_STRING([--with-python-site=DIR], + [Use DIR for installing platform independent Python site-packages])], + +dnl modification : by default, we install python script in salome root tree + +dnl [PYTHON_SITE="$withval" +dnl python_site_given=yes], +dnl [PYTHON_SITE=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages +dnl python_site_given=no] + + [PYTHON_SITE="$withval" + python_site_given=yes], + [PYTHON_SITE=${prefix}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages + python_site_given=no]) + + AC_SUBST(PYTHON_SITE_PACKAGE) + PYTHON_SITE_PACKAGE=$PYTHON_SITE/$PACKAGE + + + dnl Get PYTHON_SITE from --with-python-site-exec or from + dnl --with-python-site or from running Python + + AC_SUBST(PYTHON_SITE_EXEC) + AC_ARG_WITH(python-site-exec, + [AC_HELP_STRING([--with-python-site-exec=DIR], + [Use DIR for installing platform dependent Python site-packages])], + [PYTHON_SITE_EXEC="$withval"], + [if test "$python_site_given" = yes; then + PYTHON_SITE_EXEC=$PYTHON_SITE + else + PYTHON_SITE_EXEC=${PYTHON_EXEC_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages + fi]) + + dnl Set up the install directory + ifelse($1, classes, +[PYTHON_SITE_INSTALL=$PYTHON_SITE], +[PYTHON_SITE_INSTALL=$PYTHON_SITE_PACKAGE]) + AC_SUBST(PYTHON_SITE_INSTALL) + + dnl Also lets automake think PYTHON means something. + + pythondir=${PYTHON_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/ + AC_SUBST(pythondir) + + AC_MSG_CHECKING([if we need libdb]) + PY_NEEDOPENDB=`nm $PYTHON_LIBA | grep dbopen | grep U` + if test "x$PY_NEEDOPENDB" != "x"; then + AC_MSG_RESULT(yes) + AC_CHECK_LIB(db,dbopen,PYTHON_LIBS="$PYTHON_LIBS -ldb",db_ok=no) + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if we need libdl]) + PY_NEEDOPENDL=`nm $PYTHON_LIBA | grep dlopen | grep U` + if test "x$PY_NEEDOPENDL" != "x"; then + AC_MSG_RESULT(yes) + AC_CHECK_LIB(dl,dlopen,PYTHON_LIBS="$PYTHON_LIBS -ldl",dl_ok=no) + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if we need libutil]) + PY_NEEDOPENPTY=`nm $PYTHON_LIBA | grep openpty | grep U` + if test "x$PY_NEEDOPENPTY" != "x"; then + AC_MSG_RESULT(yes) + AC_CHECK_LIB(util,openpty,PYTHON_LIBS="$PYTHON_LIBS -lutil",openpty_ok=no) + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if we need tcltk]) + PY_NEEDTCLTK=`nm $PYTHON_LIBA | grep Tcl_Init | grep U` + if test "x$PY_NEEDTCLTK" != "x"; then + AC_MSG_RESULT(yes) + AC_CHECK_LIB(tcl,Tcl_Init,PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk",tclinit_ok=no) + else + AC_MSG_RESULT(no) + fi + + if test "$python_ok" == "yes"; then + AC_MSG_RESULT(looks good) + fi +]) diff --git a/data/templates/Cpp_Template_stda/adm/unix/make_begin.am b/data/templates/Cpp_Template_stda/adm/unix/make_begin.am new file mode 100755 index 0000000..e69de29 diff --git a/data/templates/Cpp_Template_stda/adm/unix/make_check.am b/data/templates/Cpp_Template_stda/adm/unix/make_check.am new file mode 100755 index 0000000..b4c35a0 --- /dev/null +++ b/data/templates/Cpp_Template_stda/adm/unix/make_check.am @@ -0,0 +1,15 @@ + +python_cmd = env \ + SELF_ROOT_DIR=$(prefix) \ + REP_TESTS=$(prefix)/tests \ + REP_MAIL=$(prefix)/tests/maillages \ + PATH=$(bindir)/$(PACKAGE):$(PATH) \ + PYTHONPATH=$(bindir)/$(PACKAGE):$(libdir)/$(PACKAGE):$(pythondir)/$(PACKAGE):$(PYTHONPATH) \ + python + +check-local: + for f in X $(scripts_SCRIPTS) ; do \ + if test $f != X ; then \ + ( cd $(scriptsdir) && $(python_cmd) $f ) || exit 1 ; \ + fi ; \ + done diff --git a/data/templates/Cpp_Template_stda/adm/unix/make_end.am b/data/templates/Cpp_Template_stda/adm/unix/make_end.am new file mode 100755 index 0000000..078a218 --- /dev/null +++ b/data/templates/Cpp_Template_stda/adm/unix/make_end.am @@ -0,0 +1,23 @@ +SUFFIXES = + +# -------------------------------------------- +# *.i --> *_wrap.cxx +# -------------------------------------------- + +SUFFIXES += .i _wrap.cxx + +.i_wrap.cxx : + $(SWIG) $(SWIG_FLAGS) $(SWIG_PYTHON_INCLUDES) -o $@ $< + + +#---------------------------------------------- +# Post-installation rules +#---------------------------------------------- + +install-exec-hook: install-swig + +install-swig: $(patsubst lib%.la, $(libdir)/_%.so, \ + $(filter lib%SWIG.la, $(lib_LTLIBRARIES))) + +$(libdir)/_%.so: $(libdir)/lib%.so + ln -s `basename $^` $@ diff --git a/data/templates/Cpp_Template_stda/archive b/data/templates/Cpp_Template_stda/archive new file mode 100755 index 0000000..be9d5d8 --- /dev/null +++ b/data/templates/Cpp_Template_stda/archive @@ -0,0 +1,34 @@ +#! /bin/bash + +# +DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${DIR} +DIR=`pwd` + +REP=`basename $DIR` + +if [ -z "$USER" ] +then + USER=`whoami 2> /dev/null` || true +fi + +mkdir -p /tmp/${USER} +\rm -rf /tmp/${USER}/${REP} + +cd ${DIR}/.. +cp -drf ${REP} /tmp/${USER}/${REP} + +cd /tmp/${USER}/${REP} +./root_clean +find . -name "CVS" -depth -exec \rm -rf {} \; +find . -type f -exec chmod u+rw {} \; + +cd /tmp/${USER} + +TAR_FILE=${REP}`date +_%d.%m.%Y_%H.%M`.tgz + +tar cvfz ${TAR_FILE} ${REP} + +cp ${TAR_FILE} ${DIR}/.. + +\rm -rf /tmp/${USER}/${REP} ${TAR_FILE} diff --git a/data/templates/Cpp_Template_stda/build_configure b/data/templates/Cpp_Template_stda/build_configure new file mode 100755 index 0000000..8f7d19a --- /dev/null +++ b/data/templates/Cpp_Template_stda/build_configure @@ -0,0 +1,38 @@ +#! /bin/bash + +run() { + local logfile=$ORIG_DIR/build_configure.log + printf "%-50s" "$1 ... " + eval $1 > $logfile 2>&1 + if test $? != 0 ; then + echo "[FAILED]" + echo "see file build_configure.log ..." + exit 1 + fi + echo "[ OK ]" +} + +# -- +ORIG_DIR=`pwd` + +######################################################################## +# +# -- goto build_configure dir +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} +# -- +# -- list all Makefile.am in Makefile.am.list +./rfind . Makefile.am > Makefile.am.list +# -- +# -- configure.in construction +cp configure.in.base configure.in +chmod +w configure.in +echo "AC_OUTPUT([ \\" >> configure.in +sed -e 's,\.am, \\,' -e 's,\.\/,,' Makefile.am.list >> configure.in +echo "])" >> configure.in + +# -- +run "libtoolize" +run "aclocal -I adm/unix/config_files" +run "autoconf" +run "automake --add-missing --copy" diff --git a/data/templates/Cpp_Template_stda/configure.in.base b/data/templates/Cpp_Template_stda/configure.in.base new file mode 100755 index 0000000..2a53452 --- /dev/null +++ b/data/templates/Cpp_Template_stda/configure.in.base @@ -0,0 +1,21 @@ + +AC_INIT(salome, 0.1) +AC_CONFIG_SRCDIR(src) +AM_INIT_AUTOMAKE +AC_ENABLE_DEBUG(no) +AC_DISABLE_PRODUCTION + +AC_PROG_LIBTOOL +AC_PROG_CXX +AC_PROG_CXXCPP + +AC_LINKER_OPTIONS +CHECK_PYTHON +AM_PATH_PYTHON(2.2.1) +CHECK_SWIG + + +AC_ENABLE_STATIC(no) + +CXXFLAGS="${CXXFLAGS} -g" +AC_SUBST(CXXFLAGS) diff --git a/data/templates/Cpp_Template_stda/resources/Cpp_Template_.png b/data/templates/Cpp_Template_stda/resources/Cpp_Template_.png new file mode 100755 index 0000000000000000000000000000000000000000..674f8fc979214b86889c9eb4361c23102aca4a02 GIT binary patch literal 1452 zcmbu<`#aQG7y$6E+crjHXLG4ROYIb8BU_6o8nMxX3QL1TWhIwtObvR-QtMuAcBP9* zuB)U_N-XAzF~hjdjLQf!826bma+^If{R#Vd&Uw#!&U2pg%lkej^_2T@1Y8deK@h^l z+0g^6M)C<$0nxEAjRF>xCp_t6#Z#_cPBNJc-2eX&2n2ZKYXk`jg{rEm zs;Q{~v9hxAYhGJhJ3BkOu(04tRCgo7PmwfFlaU@|El-lRH$@jqGQd*x{m6#?q#gd0 z9RakR=URRUYTX^wYJ8z(&&5{LOLU9NRLih-%kXxqNV@g4_9M79431$J({>_;>2kBf zHLla`P8T+r8IauLpVECcz4v@Zf6)E@kSqr7Df8Cz;rN1r7ezz2i+D-JgUKaBsipL+ zw?mJrdkfz4^4^a=tDh)p5R^1FHZ}pHl}!`n%>a?u%zxc1cts?Uh&>-jBodiSAq%P~ z0F_1sXf!IVh1R0b+Sb~pK$mN8Z)Y%>3>KXUbjWoAELNwG%wn;+y1Kf79=TqiPmaxI zb2uC>mpd>pFbE7O2-(BK!#o~uMDFwF&!ch@_So3iIA6f$^92(V6O#&4QJY)I&T`hgZrc5%dbMRS6)+?=(8 zwozqF5hK2?&NseVKj$`5n}vD%aa(77`pEOZ8D!$77mVwZx~e13J&P{F&)!yU@pGvIr7 zJaF@Y55KZXQtxtC_CO?r_;grymzm%Rp<%IT%|x&LWxkv4rZW0suVnaVALu}yMmFv4 zj#;{%mf_$PNKnP2iJ%z>%EzLgs^D@s7U+K%U9{hGDn6QrX5HfpD#U`>>KKe8=OA%w zYNl$bkXdN63x&$JK=0zYCym%gW|E7Y#e0|{<@|@0)j!s84YyL9?JTM0Rw>p8WaHBM z@W0^Y&YCI}!ZQ^~wb3x>SN&(pmAMZi_V&T47N$RQ$vuxR*=ZThKUhEa!gn9*@saPa zX8R)|rp7%cgV|yuO%MEbuM;ggw)!UH_EAycpTa+us$>XmaO~E4PvqskA%=}V`B(S* z?99DWM`6~+gUPU!JLe|_rg7Jr57K!#XD<1lYc1=2dAD!WyA$e2nHZzU&>^n&{bs0A z6&%OOD*KD>zTI`p_3wOLn2{)*{8_!wc>Y`0Kx}AYU0J4gx{iiYK3NNHTkdNSp_*{g hgrgSyPXE)ITK|^uzi(2WXvqIb7bkbe3WvbN{{X!x0IvW5 literal 0 HcmV?d00001 diff --git a/data/templates/Cpp_Template_stda/rfind b/data/templates/Cpp_Template_stda/rfind new file mode 100755 index 0000000..0fbfa3d --- /dev/null +++ b/data/templates/Cpp_Template_stda/rfind @@ -0,0 +1,46 @@ +#! /bin/bash + +# +# Usage : rfind dir suffix ... +# +# find all files *suffix in dir in a recursive way +# different of the usual command find ... +# + +if test $# != 2 ; then + echo "Usage : $0 dir suffix" + exit +fi + +local_find() { + # if the first argument is not a directory, returns + if test ! -d $1 ; then + # echo "$1 is not a directory" + return + fi + # dont look in the CVS directories + # dont look in the autom4te* directories + case "$1" in + */CVS) return ;; + */autom4te*) return ;; + *) ;; + esac + # for each regular file contained in the directory + # test if it's a *"$2" file + for i in $1/* + do + if test -f $i ; then + case `basename $i` in + *$2) echo " "$i ;; + *) ;; + esac + fi + done + # for each subdirectory of the first argument, proceeds recursively + for i in $1/* + do + local_find $i $2 + done +} + +local_find $1 $2 diff --git a/data/templates/Cpp_Template_stda/root_clean b/data/templates/Cpp_Template_stda/root_clean new file mode 100755 index 0000000..5cddf28 --- /dev/null +++ b/data/templates/Cpp_Template_stda/root_clean @@ -0,0 +1,32 @@ +#!/bin/bash + + +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} + +TO_CLEAN= +TO_CLEAN=${TO_CLEAN}' aclocal.m4' +TO_CLEAN=${TO_CLEAN}' autom4te*' +TO_CLEAN=${TO_CLEAN}' configure' +TO_CLEAN=${TO_CLEAN}' configure.in' +TO_CLEAN=${TO_CLEAN}' install-sh missing mkinstalldirs' +TO_CLEAN=${TO_CLEAN}' py-compile' +TO_CLEAN=${TO_CLEAN}' build_configure.log' +TO_CLEAN=${TO_CLEAN}' depcomp' +TO_CLEAN=${TO_CLEAN}' config.guess config.sub ltmain.sh' +TO_CLEAN=${TO_CLEAN}' Makefile.am.list' +# TO_CLEAN=${TO_CLEAN}' COPYING INSTALL' + +rm -rf $TO_CLEAN > /dev/null + +l=`find . -name "Makefile.in"` + +if test X"$l" != X ; then + rm -f $l +fi + +l=`find . -name "*~"` + +if test X"$l" != X ; then + rm -f $l +fi diff --git a/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx new file mode 100755 index 0000000..1ff3127 --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.cxx @@ -0,0 +1,15 @@ +#include ":sat:{Cpp_Template_}.hxx" +#include + +using namespace std; + +:sat:{Cpp_Template_}:::sat:{Cpp_Template_}() +{ +} + +// implement your methods +double :sat:{Cpp_Template_}::plus(double _x, double _y) +{ + return _x+_y; +} + diff --git a/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx new file mode 100755 index 0000000..527e318 --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Cpp_Template_.hxx @@ -0,0 +1,14 @@ +#ifndef _:sat:{Cpp_Template_}_HXX_ +#define _:sat:{Cpp_Template_}_HXX_ + +class :sat:{Cpp_Template_} +{ +// public methods +public: + :sat:{Cpp_Template_}(); + // fill your methods + double plus(double x, double y); +private: +}; + +#endif diff --git a/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am new file mode 100755 index 0000000..2d5f67e --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}CXX.la +lib:sat:{Cpp_Template_}CXX_la_SOURCES = :sat:{Cpp_Template_}.cxx +lib:sat:{Cpp_Template_}CXX_la_LIBADD = + +# exported headers +library_includedir=$(includedir) +library_include_HEADERS = :sat:{Cpp_Template_}.hxx + +INCLUDES = + +bin_PROGRAMS = :sat:{Cpp_Template_}_test +:sat:{Cpp_Template_}_test_SOURCES = main.cxx +:sat:{Cpp_Template_}_test_LDADD = lib:sat:{Cpp_Template_}CXX.la + + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am + + diff --git a/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/main.cxx b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/main.cxx new file mode 100755 index 0000000..b5b306d --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__CXX/main.cxx @@ -0,0 +1,9 @@ +#include ":sat:{Cpp_Template_}.hxx" +#include + +using namespace std; +int main(int argc, char ** argv) +{ + :sat:{Cpp_Template_} myCalc; + // test myCalc component ... +} diff --git a/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i new file mode 100755 index 0000000..2c45f20 --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__SWIG/Cpp_Template_.i @@ -0,0 +1,35 @@ +%module :sat:{Cpp_Template_}SWIG + +%{ +#include +#include ":sat:{Cpp_Template_}.hxx" +%} + +/* + Initialisation block due to the LocalTraceCollector mechanism + + */ + +%include "std_vector.i" +%include "std_string.i" + +namespace std { + %template(vectori) vector; + %template(vectord) vector; +}; + +/* + SWIG needs the use of the typedefs done in libMEDMEM_Swig.i to get the correct wrapping + ( ie instance at _d0709808_p_FIELDDOUBLE>, in state of + which has no attributes + -> replace in the declaration of methods containing fields : + FIELD by FIELDDOUBLE + FIELD by FIELDINT + FIELD by FIELDDOUBLENOINTERLACE + FIELD by FIELDINTNOINTERLACE +*/ + +%include ":sat:{Cpp_Template_}.hxx" + + + diff --git a/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am new file mode 100755 index 0000000..ad9b97f --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__SWIG/Makefile.am @@ -0,0 +1,32 @@ +# +# Common begin part +# + +include $(top_srcdir)/adm/unix/make_begin.am + +# +# Developper part +# + +lib_LTLIBRARIES = lib:sat:{Cpp_Template_}SWIG.la +nodist_lib:sat:{Cpp_Template_}SWIG_la_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +BUILT_SOURCES = :sat:{Cpp_Template_}_wrap.cxx + +SWIG_PYTHON_INCLUDES = -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX + +INCLUDES = -I$(top_srcdir)/src/:sat:{Cpp_Template_}/:sat:{Cpp_Template_}_CXX $(PYTHON_INCLUDES) + +lib:sat:{Cpp_Template_}SWIG_la_LIBADD = -L../:sat:{Cpp_Template_}_CXX -l:sat:{Cpp_Template_}CXX + + +bin_SCRIPTS = :sat:{Cpp_Template_}SWIG.py + +clean-local: + $(RM) :sat:{Cpp_Template_}SWIG.py :sat:{Cpp_Template_}_wrap.cxx + +# +# Common end part +# + +include $(top_srcdir)/adm/unix/make_end.am diff --git a/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py new file mode 100755 index 0000000..05414cb --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__TEST/Cpp_Template__test.py @@ -0,0 +1,16 @@ +from os import getenv +if getenv("SALOMEPATH"): + import salome + import :sat:{Cpp_Template_}_ORB + my_:sat:{Cpp_Template_} = salome.lcc.FindOrLoadComponent("FactoryServer", ":sat:{Cpp_Template_}") + IN_SALOME_GUI = 1 +else: + import :sat:{Cpp_Template_}SWIG + my_:sat:{Cpp_Template_}=:sat:{Cpp_Template_}SWIG.:sat:{Cpp_Template_}() +pass +# +# +print "Test Program of :sat:{Cpp_Template_} component" + +# ... + diff --git a/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am new file mode 100755 index 0000000..ce76b47 --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Cpp_Template__TEST/Makefile.am @@ -0,0 +1,7 @@ +# data_DATA = +# datadir = + +scripts_SCRIPTS = :sat:{Cpp_Template_}_test.py +scriptsdir = $(prefix)/bin + +include $(top_srcdir)/adm/unix/make_check.am diff --git a/data/templates/Cpp_Template_stda/src/Cpp_Template_/Makefile.am b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Makefile.am new file mode 100755 index 0000000..7aa8acb --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Cpp_Template_/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = :sat:{Cpp_Template_}_CXX :sat:{Cpp_Template_}_SWIG :sat:{Cpp_Template_}_TEST + + diff --git a/data/templates/Cpp_Template_stda/src/Makefile.am b/data/templates/Cpp_Template_stda/src/Makefile.am new file mode 100755 index 0000000..ad76b7a --- /dev/null +++ b/data/templates/Cpp_Template_stda/src/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = :sat:{Cpp_Template_} + diff --git a/data/templates/Cpp_Template_stda/template.info b/data/templates/Cpp_Template_stda/template.info new file mode 100644 index 0000000..2c8cd39 --- /dev/null +++ b/data/templates/Cpp_Template_stda/template.info @@ -0,0 +1,63 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# description of the template to be displayed with option --info +info = """ +Author: CEA +Description: This template can be used to create c++ component. +Remark: + * The name of the module must be suffixed with 'CPP'. + * Once the module is compiled use the generate command to create the SALOME module. + * The generate command requires a version of YACSGEN greater or equal to 6.5.0. +""" + +# code to subsitute with component name +file_subst = "Cpp_Template_" + +# delimiter used in the template (default is ':sat:') +#delimiter = ":sat:" + +# filter of files to ignore for substitution +# if not defined all files will be parsed +ignore_filters = '*.png' + +# list of parameters +# a string = parameter name +# a tuple = (parameter name, default value, prompt, validation method) +parameters = [ + (file_subst, "%(NAME)s"), + ("get_method", "archive", "get method for prepare", lambda l: l in ['cvs', 'git', 'archive']) + ] + +# configuration to use this component with sat +pyconf = """ + '%(NAME)sCPP': + '%(NAME)sCPP': + { + name : "%(NAME)sCPP" + component_name : "%(NAME)s" + get_sources : '%(get_method)s' + build_sources : 'autotools' + git_info: + { + repo : 'to be filled' + tag : 'to be filled' + } + archive_info: + { + archive_name : '%(target)s.tar.gz' + } + nb_proc : 1 + source_dir : $TOOLS.common.source_root + '/' + $name + build_dir : $TOOLS.common.build_root + '/' + $name + depend : [] + opt_depend : [] + properties : + { + is_cpp : "yes" + environment : "salome" + has_salome_gui : "yes" + logo : $source_dir + "/resources/%(NAME)s.png" + } + } +""" diff --git a/data/templates/PythonComponent/AUTHORS b/data/templates/PythonComponent/AUTHORS new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/data/templates/PythonComponent/AUTHORS @@ -0,0 +1 @@ + diff --git a/data/templates/PythonComponent/COPYING b/data/templates/PythonComponent/COPYING new file mode 100755 index 0000000..b1e3f5a --- /dev/null +++ b/data/templates/PythonComponent/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/data/templates/PythonComponent/ChangeLog b/data/templates/PythonComponent/ChangeLog new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/data/templates/PythonComponent/ChangeLog @@ -0,0 +1 @@ + diff --git a/data/templates/PythonComponent/INSTALL b/data/templates/PythonComponent/INSTALL new file mode 100755 index 0000000..2ceb17d --- /dev/null +++ b/data/templates/PythonComponent/INSTALL @@ -0,0 +1 @@ +SALOME2 : :sat:{PYCMP} module (sample) diff --git a/data/templates/PythonComponent/Makefile.am b/data/templates/PythonComponent/Makefile.am new file mode 100755 index 0000000..25b3a82 --- /dev/null +++ b/data/templates/PythonComponent/Makefile.am @@ -0,0 +1,51 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# -* 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 + +ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \ + -I ${GUI_ROOT_DIR}/adm_local/unix/config_files + +SUBDIRS = idl adm_local resources src bin doc + +DISTCLEANFILES = a.out aclocal.m4 configure local-install.sh hack_libtool + +EXTRA_DIST += \ + build_configure \ + clean_configure + +dist-hook: + rm -rf `find $(distdir) -name CVS` + +usr_docs: + (cd doc && $(MAKE) $(AM_MAKEFLAGS) usr_docs) + +docs: usr_docs + +dev_docs: + (cd doc && $(MAKE) $(AM_MAKEFLAGS) dev_docs) + + diff --git a/data/templates/PythonComponent/Makefile.in b/data/templates/PythonComponent/Makefile.in new file mode 100755 index 0000000..3132630 --- /dev/null +++ b/data/templates/PythonComponent/Makefile.in @@ -0,0 +1,852 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="${_dollar}{ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am \ + $(top_srcdir)/configure \ + $(top_srcdir)/doc/static/header.html.in AUTHORS COPYING \ + ChangeLog INSTALL NEWS +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = doc/static/header.html +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) \ + build_configure clean_configure + +# -* Makefile *- +# Author : Patrick GOLDBRONN (CEA) +# Date : 28/06/2001 +# Modified by : Alexander BORODIN (OCN) - autotools usage +# $Header: +# +ACLOCAL_AMFLAGS = -I adm_local/unix/config_files \ + -I ${KERNEL_ROOT_DIR}/salome_adm/unix/config_files \ + -I ${GUI_ROOT_DIR}/adm_local/unix/config_files + +SUBDIRS = idl adm_local resources src bin doc +DISTCLEANFILES = a.out aclocal.m4 configure local-install.sh hack_libtool +all: all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *${_dollar}dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ + cd $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +doc/static/header.html: $(top_builddir)/config.status $(top_srcdir)/doc/static/header.html.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x ${_dollar}MAKEFLAGS; do \ + case ${_dollar}f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + echo "Making ${_dollar}target in ${_dollar}subdir"; \ + if test "${_dollar}subdir" = "."; then \ + dot_seen=yes; \ + local_target="${_dollar}target-am"; \ + else \ + local_target="${_dollar}target"; \ + fi; \ + (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) ${_dollar}local_target) \ + || eval ${_dollar}failcom; \ + done; \ + if test "${_dollar}dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "${_dollar}target-am" || exit 1; \ + fi; test -z "${_dollar}fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x ${_dollar}MAKEFLAGS; do \ + case ${_dollar}f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in ${_dollar}list; do \ + if test "${_dollar}subdir" = "."; then :; else \ + rev="${_dollar}subdir ${_dollar}rev"; \ + fi; \ + done; \ + rev="${_dollar}rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in ${_dollar}rev; do \ + echo "Making ${_dollar}target in ${_dollar}subdir"; \ + if test "${_dollar}subdir" = "."; then \ + local_target="${_dollar}target-am"; \ + else \ + local_target="${_dollar}target"; \ + fi; \ + (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) ${_dollar}local_target) \ + || eval ${_dollar}failcom; \ + done && test -z "${_dollar}fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + test "${_dollar}subdir" = . || (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + test "${_dollar}subdir" = . || (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in ${_dollar}list; do \ + if test -f "${_dollar}i"; then echo ${_dollar}i; else echo $(srcdir)/${_dollar}i; fi; \ + done | \ + $(AWK) ' { files[${_dollar}0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID ${_dollar}unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + if test "${_dollar}subdir" = .; then :; else \ + test ! -f ${_dollar}subdir/TAGS || \ + tags="${_dollar}tags ${_dollar}include_option=${_dollar}here/${_dollar}subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in ${_dollar}list; do \ + if test -f "${_dollar}i"; then echo ${_dollar}i; else echo $(srcdir)/${_dollar}i; fi; \ + done | \ + $(AWK) ' { files[${_dollar}0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)${_dollar}tags${_dollar}unique"; then :; else \ + test -n "${_dollar}unique" || unique=${_dollar}empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + ${_dollar}tags ${_dollar}unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in ${_dollar}list; do \ + if test -f "${_dollar}i"; then echo ${_dollar}i; else echo $(srcdir)/${_dollar}i; fi; \ + done | \ + $(AWK) ' { files[${_dollar}0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)${_dollar}tags${_dollar}unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + ${_dollar}tags ${_dollar}unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) ${_dollar}here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^${_dollar}\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^${_dollar}\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in ${_dollar}list; do echo ${_dollar}file; done | \ + sed -e "s|^${_dollar}srcdirstrip/||;t" \ + -e "s|^${_dollar}topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case ${_dollar}dist_files in \ + */*) $(MKDIR_P) `echo "${_dollar}dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*${_dollar},,' | \ + sort -u` ;; \ + esac; \ + for file in ${_dollar}dist_files; do \ + if test -f ${_dollar}file || test -d ${_dollar}file; then d=.; else d=$(srcdir); fi; \ + if test -d ${_dollar}d/${_dollar}file; then \ + dir=`echo "/${_dollar}file" | sed -e 's,/[^/]*${_dollar},,'`; \ + if test -d $(srcdir)/${_dollar}file && test ${_dollar}d != $(srcdir); then \ + cp -pR $(srcdir)/${_dollar}file $(distdir)${_dollar}dir || exit 1; \ + fi; \ + cp -pR ${_dollar}d/${_dollar}file $(distdir)${_dollar}dir || exit 1; \ + else \ + test -f $(distdir)/${_dollar}file \ + || cp -p ${_dollar}d/${_dollar}file $(distdir)/${_dollar}file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in ${_dollar}list; do \ + if test "${_dollar}subdir" = .; then :; else \ + test -d "$(distdir)/${_dollar}subdir" \ + || $(MKDIR_P) "$(distdir)/${_dollar}subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd ${_dollar}subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="${_dollar}top_distdir" \ + distdir="${_dollar}distdir/${_dollar}subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="${_dollar}{TMPDIR-/tmp}/am-dc-${_dollar}${_dollar}/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="${_dollar}dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="${_dollar}dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "${_dollar}dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "${_dollar}dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="${_dollar}dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="${_dollar}dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="${_dollar}dc_destdir" \ + distuninstallcheck_dir="${_dollar}dc_destdir" distuninstallcheck; \ + } || { rm -rf "${_dollar}dc_destdir"; exit 1; }) \ + && rm -rf "${_dollar}dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in ${_dollar}list; do echo ${_dollar}i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '${_dollar}p' -e '${_dollar}x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am clean clean-generic \ + clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ + dist-gzip dist-hook dist-shar dist-tarZ dist-zip distcheck \ + distclean distclean-generic distclean-libtool distclean-tags \ + distcleancheck distdir distuninstallcheck dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; + +dist-hook: + rm -rf `find $(distdir) -name CVS` + +usr_docs: + (cd doc && $(MAKE) $(AM_MAKEFLAGS) usr_docs) + +docs: usr_docs + +dev_docs: + (cd doc && $(MAKE) $(AM_MAKEFLAGS) dev_docs) +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/NEWS b/data/templates/PythonComponent/NEWS new file mode 100755 index 0000000..8b13789 --- /dev/null +++ b/data/templates/PythonComponent/NEWS @@ -0,0 +1 @@ + diff --git a/data/templates/PythonComponent/README b/data/templates/PythonComponent/README new file mode 100755 index 0000000..d13fa47 --- /dev/null +++ b/data/templates/PythonComponent/README @@ -0,0 +1,12 @@ +This module is a Salome example of a module implemented in Python with PyQt GUI + +Installation and compilation is like every Salome modules : + src_dir/build_configure + mkdir build_dir + mkdir instal_dir + cd build_dir + src_dir/configure --prefix=instal_dir + make + make install + +Documentation can be found in /doc directory. diff --git a/data/templates/PythonComponent/aclocal.m4 b/data/templates/PythonComponent/aclocal.m4 new file mode 100644 index 0000000..b4a2b63 --- /dev/null +++ b/data/templates/PythonComponent/aclocal.m4 @@ -0,0 +1,9668 @@ +# generated automatically by aclocal 1.10 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_if(m4_PACKAGE_VERSION, [2.61],, +[m4_fatal([this file was generated for autoconf 2.61. +You have another version of autoconf. If you want to use that, +you should regenerate the build system entirely.], [63])]) + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- + +# serial 48 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] + +# Same as above, but do not quote variable references. +[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +AC_DEFUN([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` +]) + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +AC_DEFUN([_LT_COMPILER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +AC_DEFUN([_LT_LINKER_BOILERPLATE], +[ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* +])# _LT_LINKER_BOILERPLATE + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/bash} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/bash} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/bash}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + SHELL=${SHELL-${CONFIG_SHELL-/bin/bash}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# ------------------ +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# --------------------------------------------------------------------- +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +}] +EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ---------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_AC_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +])# AC_LIBTOOL_DLOPEN_SELF + + +# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_MSG_CHECKING([dynamic linker characteristics]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[123]]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # find out which ABI we are using + libsuff= + case "$host_cpu" in + x86_64*|s390x*|powerpc64*) + echo '[#]line __oline__ "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *64-bit*) + libsuff=64 + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + ;; + esac + fi + rm -rf conftest* + ;; + esac + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 DLLs +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +# set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="ifelse([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix3*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +])# AC_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# it is assumed to be `libltdl'. LIBLTDL will be prefixed with +# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' +# (note the single quotes!). If your package is not flat and you're not +# using automake, define top_builddir and top_srcdir appropriately in +# the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl installable library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-install to the configure arguments. Note that +# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, +# and an installed libltdl is not found, it is assumed to be `libltdl'. +# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and top_srcdir +# appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + +# _LT_AC_PROG_CXXCPP +# ------------------ +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +fi +])# _LT_AC_PROG_CXXCPP + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# ------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF + +# Report which library types will actually be built +AC_MSG_CHECKING([if libtool supports shared libraries]) +AC_MSG_RESULT([$can_build_shared]) + +AC_MSG_CHECKING([whether to build shared libraries]) +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +AC_MSG_RESULT([$enable_shared]) + +AC_MSG_CHECKING([whether to build static libraries]) +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +AC_MSG_RESULT([$enable_static]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + $as_unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + $as_unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +_LT_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[[12]]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + ;; + *) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; + osf3*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ + $rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. We must also pass each convience library through + # to the system linker between allextract/defaultextract. + # The C++ compiler will combine linker options so we + # cannot just pass the convience library names through + # without $wl. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_TAGVAR(LD, $1)="$LD" + +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) +# ------------------------------------ +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux*) + case $cc_basename in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + _LT_CC_BASENAME([$compiler]) + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + interix3*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi[[45]]*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' + _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; + *) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_MSG_RESULT([$SED]) +]) + +# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10])dnl +_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/bash. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 3 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 12 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $1 | $1:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# --------------------------------------------------------------------------- +# Adds support for distributing Python modules and packages. To +# install modules, copy them to $(pythondir), using the python_PYTHON +# automake variable. To install a package with the same name as the +# automake package, install to $(pkgpythondir), or use the +# pkgpython_PYTHON automake variable. +# +# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as +# locations to install python extension modules (shared libraries). +# Another macro is required to find the appropriate flags to compile +# extension modules. +# +# If your package is configured with a different prefix to python, +# users will have to add the install directory to the PYTHONPATH +# environment variable, or create a .pth file (see the python +# documentation for details). +# +# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will +# cause an error if the version of python installed on the system +# doesn't meet the requirement. MINIMUM-VERSION should consist of +# numbers and dots only. +AC_DEFUN([AM_PATH_PYTHON], + [ + dnl Find a Python interpreter. Python versions prior to 1.5 are not + dnl supported because the default installation locations changed from + dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages + dnl in 1.5. + m4_define_default([_AM_PYTHON_INTERPRETER_LIST], + [python python2 python2.5 python2.4 python2.3 python2.2 dnl +python2.1 python2.0 python1.6 python1.5]) + + m4_if([$1],[],[ + dnl No version check is needed. + # Find any Python interpreter. + if test -z "$PYTHON"; then + AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :) + fi + am_display_PYTHON=python + ], [ + dnl A version check is needed. + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + AC_MSG_CHECKING([whether $PYTHON version >= $1]) + AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], + [AC_MSG_RESULT(yes)], + [AC_MSG_ERROR(too old)]) + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + AC_CACHE_CHECK([for a Python interpreter with version >= $1], + [am_cv_pathless_PYTHON],[ + for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do + test "$am_cv_pathless_PYTHON" = none && break + AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) + done]) + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi + ]) + + if test "$PYTHON" = :; then + dnl Run any user-specified action, or abort. + m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) + else + + dnl Query Python for its version number. Getting [:3] seems to be + dnl the best way to do this; it's what "site.py" does in the standard + dnl library. + + AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], + [am_cv_python_version=`$PYTHON -c "import sys; print sys.version[[:3]]"`]) + AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) + + dnl Use the values of $prefix and $exec_prefix for the corresponding + dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made + dnl distinct variables so they can be overridden if need be. However, + dnl general consensus is that you shouldn't need this ability. + + AC_SUBST([PYTHON_PREFIX], ['${prefix}']) + AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) + + dnl At times (like when building shared libraries) you may want + dnl to know which OS platform Python thinks this is. + + AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], + [am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`]) + AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) + + + dnl Set up 4 directories: + + dnl pythondir -- where to install python scripts. This is the + dnl site-packages directory, not the python standard library + dnl directory like in previous automake betas. This behavior + dnl is more consistent with lispdir.m4 for example. + dnl Query distutils for this directory. distutils does not exist in + dnl Python 1.5, so we fall back to the hardcoded directory if it + dnl doesn't work. + AC_CACHE_CHECK([for $am_display_PYTHON script directory], + [am_cv_python_pythondir], + [am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || + echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`]) + AC_SUBST([pythondir], [$am_cv_python_pythondir]) + + dnl pkgpythondir -- $PACKAGE directory under pythondir. Was + dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is + dnl more consistent with the rest of automake. + + AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) + + dnl pyexecdir -- directory for installing python extension modules + dnl (shared libraries) + dnl Query distutils for this directory. distutils does not exist in + dnl Python 1.5, so we fall back to the hardcoded directory if it + dnl doesn't work. + AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], + [am_cv_python_pyexecdir], + [am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || + echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`]) + AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) + + dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) + + AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) + + dnl Run any user-specified action. + $2 + fi + +]) + + +# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +# --------------------------------------------------------------------------- +# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. +# Run ACTION-IF-FALSE otherwise. +# This test uses sys.hexversion instead of the string equivalent (first +# word of sys.version), in order to cope with versions such as 2.2c1. +# hexversion has been introduced in Python 1.5.2; it's probably not +# worth to support older versions (1.5.1 was released on October 31, 1998). +AC_DEFUN([AM_PYTHON_CHECK_VERSION], + [prog="import sys, string +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +minver = map(int, string.split('$2', '.')) + [[0, 0, 0]] +minverhex = 0 +for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[[i]] +sys.exit(sys.hexversion < minverhex)" + AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +# Check availability of Salome binary distribution +# +# Author : Marc Tajchman (CEA, 2002) +#------------------------------------------------------------ + +AC_DEFUN([CHECK_GUI_MODULE],[ +AC_REQUIRE([AC_LINKER_OPTIONS])dnl + +LightGUI_ok=no +FullGUI_ok=no + +GUI_LDFLAGS="" +GUI_CXXFLAGS="" + +SALOME_GUI_DIR="" + +AC_ARG_WITH(gui, + [--with-gui=DIR root directory path of SALOME GUI installation], + [], + [with_gui=auto]) + +if test "${with_gui}" = "no"; then + SalomeGUI_need=no +else + # define SALOME_GUI_DIR + if test "${with_gui}" = "yes" -o "${with_gui}" = "auto"; then + SalomeGUI_need="$with_gui" + AC_MSG_RESULT(try \${GUI_ROOT_DIR}: ${GUI_ROOT_DIR}) + if test "x${GUI_ROOT_DIR}" != "x" ; then + # GUI_ROOT_DIR environment variable defined + SALOME_GUI_DIR=${GUI_ROOT_DIR} + else + # search Salome binaries in PATH variable + AC_PATH_PROG(TEMP, SUITApp) + if test "x${TEMP}" != "x" ; then + AC_MSG_RESULT(SUITApp was found at : ${TEMP}) + SALOME_BIN_DIR=`dirname ${TEMP}` + SALOME_GUI_DIR=`cd ${SALOME_BIN_DIR}/../..; pwd` + fi + fi + else + # GUI directory defined by user + SalomeGUI_need=yes + SALOME_GUI_DIR="$with_gui" + fi + + # check GUI installation + AC_CHECKING(for light GUI) + if test -f ${SALOME_GUI_DIR}/bin/salome/SUITApp ; then + LightGUI_ok=yes + AC_MSG_RESULT(Using SALOME GUI distribution in ${SALOME_GUI_DIR}) + + GUI_ROOT_DIR=${SALOME_GUI_DIR} + + GUI_LDFLAGS=-L${SALOME_GUI_DIR}/lib${LIB_LOCATION_SUFFIX}/salome + GUI_CXXFLAGS=-I${SALOME_GUI_DIR}/include/salome + + AC_CHECKING(for full GUI) + if test -f ${SALOME_GUI_DIR}/bin/salome/SALOME_Session_Server ; then + FullGUI_ok=yes + fi + else + AC_MSG_WARN("Cannot find compiled SALOME GUI distribution") + fi + AC_MSG_RESULT(for light GUI: ${LightGUI_ok}) + AC_MSG_RESULT(for full GUI: ${FullGUI_ok}) +fi + +AC_SUBST(GUI_LDFLAGS) +AC_SUBST(GUI_CXXFLAGS) +AC_SUBST(GUI_ROOT_DIR) + +])dnl + +AC_DEFUN([CHECK_SALOME_GUI],[ + CHECK_GUI_MODULE() + SalomeGUI_ok=${LightGUI_ok} +])dnl + +AC_DEFUN([CHECK_CORBA_IN_GUI],[ + CHECK_GUI_MODULE() + CORBA_IN_GUI=${FullGUI_ok} + AC_SUBST(CORBA_IN_GUI) +])dnl + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +AC_DEFUN([CHECK_OPENGL],[ +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_CPP])dnl +AC_REQUIRE([AC_LINKER_OPTIONS])dnl + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +AC_ARG_WITH(opengl, + [AC_HELP_STRING([--with-opengl=DIR],[root directory path of OpenGL installation])], + [opengl_dir="$withval"], + [dirs="/usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/graphics/OpenGL/lib64 /opt/graphics/OpenGL/lib /usr/openwin/lib64 /usr/openwin/lib /usr/X11R6/lib64 /usr/X11R6/lib"])dnl + +AC_CHECKING(for OpenGL) +AC_CHECKING(for OpenGL headers) + +OGL_INCLUDES="" +OGL_LIBS="" + +GL_LIB_PATH="" +GLU_LIB_PATH="" + +OpenGL_ok=no +OpenGL_libs_ok=no +OpenGL_headers_ok=no + +dnl openGL headers +# by default +if test "x${opengl_dir}" != "x" ; then + AC_MSG_RESULT(for opengl_dir: $opengl_dir) + AC_CHECK_HEADER([${opengl_dir}/include/GL/gl.h], + [OpenGL_headers_ok=yes; OGL_INCLUDES="-I${opengl_dir}/include"], + [OpenGL_headers_ok=no]) + if test "x${OpenGL_headers_ok}" = "xyes" ; then + AC_CHECKING(for default OpenGL library) + if test "x${opengl_dir}" = "x/usr" ; then + OGL_LIBS="" + else + OGL_LIBS="-L${opengl_dir}/lib" + fi + LDFLAGS_old="$LDFLAGS" + LDFLAGS="$LDFLAGS $OGL_LIBS" + AC_CHECK_LIB([GL], + [glBegin], + [OpenGL_libs_ok=yes], + [OpenGL_libs_ok=no]) + if test "x${OpenGL_libs_ok}" = "xyes" ; then + AC_TRY_LINK([], + [], + [OpenGL_libs_ok=yes ; OpenGL_ok=yes; OGL_LIBS="$OGL_LIBS -lGL"], + [OpenGL_libs_ok=no]) + fi + LDFLAGS="$LDFLAGS_old" + fi +fi + +if test "x${OpenGL_headers_ok}" = "xno" ; then + AC_CHECK_HEADER(GL/gl.h, + [OpenGL_headers_ok=yes], + [OpenGL_headers_ok=no]) +fi + +# under SunOS ? +if test "x${OpenGL_headers_ok}" = "xno" ; then + AC_CHECK_HEADERS(/usr/openwin/share/include/GL/glxmd.h, + [OpenGL_headers_ok=yes; OGL_INCLUDES="-I/usr/openwin/share/include/"], + [OpenGL_headers_ok=no]) +fi + +# under IRIX ? +if test "x${OpenGL_headers_ok}" = "xno" ; then + AC_CHECK_HEADERS(/opt/graphics/OpenGL/include/GL/glxmd.h, + [OpenGL_headers_ok=yes; OGL_INCLUDES="-I/opt/graphics/OpenGL/include"], + [OpenGL_headers_ok=no]) +fi + +# some linux OpenGL servers hide the includes in /usr/X11R6/include/GL +if test "x${OpenGL_headers_ok}" = "xno" ; then + AC_CHECK_HEADERS(/usr/X11R6/include/GL/gl.h, + [OpenGL_headers_ok=yes; OGL_INCLUDES="-I/usr/X11R6/include"], + [OpenGL_headers_ok=no]) +fi + +if test "x${OpenGL_headers_ok}" = "xyes" ; then + AC_CHECKING(for OpenGL library) + for idir in $dirs; do + if test -r "${idir}/libGL.so"; then + AC_MSG_RESULT(in ${idir}) + if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then + GL_LIB_PATH="" + else + GL_LIB_PATH="-L${idir}" + fi + break + fi + # under IRIX ? + if test -r "${idir}/libGL.sl"; then + AC_MSG_RESULT(in ${idir}) + if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then + GL_LIB_PATH="" + else + GL_LIB_PATH="-L${idir}" + fi + break + fi + done + LDFLAGS_old="${LDFLAGS}" + LDFLAGS="${LDFLAGS} ${GL_LIB_PATH}" + AC_CHECK_LIB([GL], + [glBegin], + [OpenGL_libs_ok=yes], + [OpenGL_libs_ok=no]) + if test "x${OpenGL_libs_ok}" = "xyes" ; then + AC_TRY_LINK([], + [], + [OpenGL_libs_ok=yes ; OGL_LIBS="${OGL_LIBS} ${GL_LIB_PATH} -lGL"], + [OpenGL_libs_ok=no]) + fi + LDFLAGS="$LDFLAGS_old" +fi + +if test "x${OpenGL_libs_ok}" = "xyes" ; then + for idir in $dirs; do + if test -r "${idir}/libGLU.so"; then + AC_MSG_RESULT(in ${idir}) + if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then + GLU_LIB_PATH="" + else + GLU_LIB_PATH="-L${idir}" + fi + break + fi + # under IRIX ? + if test -r "${idir}/libGLU.sl"; then + AC_MSG_RESULT(in ${idir}) + if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then + GLU_LIB_PATH="" + else + GLU_LIB_PATH="-L${idir}" + fi + break + fi + done + + # workaround a problem with libGL library location + for idir in $dirs; do + if test -r "${idir}/libGLU.la"; then + GLU_LA_PATH="${idir}/libGLU.la" + GL_LA_PATH_TO_CHECK=`cat ${GLU_LA_PATH} | awk '{ for(i=1;i0) print $i } }'` + if test -z ${GL_LA_PATH_TO_CHECK} || test -r ${GL_LA_PATH_TO_CHECK}; then + # nothing to do + break + fi + for jdir in $dirs; do + if test -r "${jdir}/libGL.la"; then + GL_LA_PATH="${jdir}/libGL.la" + # copy the libGLU.la file and set correct libGL.la path in it + NEW_GLU_LA_PATH=${ROOT_BUILDDIR} + NEW_GLU_LA_FILE="${NEW_GLU_LA_PATH}/libGLU.la" + sed -e "s%${GL_LA_PATH_TO_CHECK}%${GL_LA_PATH}%" ${GLU_LA_PATH} > "${NEW_GLU_LA_FILE}" + chmod -f --reference=${GLU_LA_PATH} "${NEW_GLU_LA_FILE}" + # set a new libGLU.la path + GLU_LIB_PATH="-L${NEW_GLU_LA_PATH}" + # create a simbolic link to libGLU.so + for kdir in $dirs; do + if test -r "${kdir}/libGLU.so"; then + cp -fs "${kdir}/libGLU.so" "${NEW_GLU_LA_PATH}/libGLU.so" + break + fi + done + break + fi + done + break + fi + done + + LDFLAGS_old="${LDFLAGS}" + LDFLAGS="${LDFLAGS} ${OGL_LIBS} ${GLU_LIB_PATH}" + AC_CHECK_LIB([GLU], + [gluBeginSurface], + [OpenGL_libs_ok=yes], + [OpenGL_libs_ok=no]) + if test "x${OpenGL_libs_ok}" = "xyes" ; then + AC_TRY_LINK([], + [], + [OpenGL_libs_ok=yes ; OGL_LIBS="${OGL_LIBS} ${GLU_LIB_PATH} -lGLU"], + [OpenGL_libs_ok=no]) + fi + LDFLAGS="$LDFLAGS_old" +fi + +if test "x${OpenGL_headers_ok}" = "xyes" ; then + if test "x${OpenGL_libs_ok}" = "xyes" ; then + OpenGL_ok=yes + fi +fi + +AC_MSG_RESULT(for OpenGL_headers_ok: $OpenGL_headers_ok) +AC_MSG_RESULT(for OpenGL_libs_ok: $OpenGL_libs_ok) +AC_MSG_RESULT(for OpenGL_ok: $OpenGL_ok) + +AC_SUBST(OGL_INCLUDES) +AC_SUBST(OGL_LIBS) + +AC_LANG_RESTORE + +])dnl + + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +dnl OPTIONS_QT +dnl ------------------------------------------------------------------------ +dnl Adds the --with-qt=path +dnl +AC_DEFUN([OPTIONS_QT], [ + AC_ARG_WITH([qt], + [AC_HELP_STRING([--with-qt], [Possible usage: + "Qt_Install_Path" - prefix to path where Qt was installd; + "" or "yes" or "auto" - means seaching installed Qt product in the system (checking $QTDIR and then - standard system paths ); + "no" - not use Qt product (is not supported) + By default "" option is used)])], + [with_qt=$withval], [with_qt=""]) +]) + +AC_DEFUN([CHECK_QT],[ +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_CXX])dnl +AC_REQUIRE([AC_PROG_CPP])dnl +AC_REQUIRE([AC_PROG_CXXCPP])dnl +AC_REQUIRE([CHECK_OPENGL])dnl +AC_REQUIRE([AC_LINKER_OPTIONS])dnl + +AC_REQUIRE([OPTIONS_QT])dnl + +AC_CHECKING(for Qt) + +if test "x$OpenGL_ok" != "xyes" ; then + AC_MSG_WARN(Qt needs OpenGL correct configuration, check configure output) +fi + +qt_ok=yes + +QTDIR=$(echo $QTDIR | sed 's%[/]\+$%%') + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +dnl QT install dir +if test -z $with_qt ; then + with_qt="" +fi +if test "x$with_qt" = "xyes" ; then + dnl in case user wrote --with-qt=yes + with_qt="" +fi +if test "x$with_qt" = "xauto" ; then + dnl in case user wrote --with-qt=auto + with_qt="" +fi +if test "x$with_qt" = "xno" ; then + dnl in case user wrote --with-qt=no + with_qt="" + AC_MSG_WARN(Value no, specified for option --with-qt, is not supported) +fi + +if test "x$with_qt" != "x" ; then + dnl Using "--with-qt" prefix path + QTDIR="$with_qt" +elif test "$QTDIR" = "/usr/lib/qt3" ; then + dnl Using QTDIR environment variable + AC_MSG_RESULT(current QTDIR is $QTDIR) + dnl + if test -d /usr/lib/qt4 ; then + AC_MSG_RESULT(it is strange for a qt4 installation !) + AC_MSG_RESULT(/usr/lib/qt4 is present) + AC_MSG_RESULT(replacing QTDIR by /usr/lib/qt4) + QTDIR=/usr/lib/qt4 + fi +elif test -z $QTDIR ; then + AC_MSG_WARN(undefined QTDIR variable which specify where Qt product was installed) + for d in /usr/local/lib/qt4 /usr/lib/qt4 /usr ; do + if test -f ${d}/lib/libQtCore.so ; then + AC_MSG_RESULT(trying ${d}) + QTDIR="${d}" + break + elif test -f ${d}/lib64/libQtCore.so ; then + AC_MSG_RESULT(trying ${d}) + QTDIR="${d}" + break + elif test -f ${d}/libQtCore.so ; then + AC_MSG_RESULT(trying ${d}) + QTDIR="${d}" + break + fi + done +fi + +# +# check QTDIR environment variable +# +if test "x$QTDIR" = "x" +then + AC_MSG_RESULT(Please define correct path in "--with-qt" option or use correct $QTDIR variable) + qt_ok=no +fi + +# +# check Qt version +# +if test "x$qt_ok" = "xyes" +then + qt_inc_ok=no + QTINC="" + AC_CHECK_FILE(${QTDIR}/include/qt4/QtCore/qglobal.h,QTINC="/qt4",QTINC="") + if test "x$QTINC" = "x" + then + AC_CHECK_FILE(${QTDIR}/include${QTINC}/QtCore/qglobal.h,qt_inc_ok=yes,qt_inc_ok=no) + else + qt_inc_ok=yes + fi + if test "x$qt_inc_ok" = "xyes" + then + AC_MSG_CHECKING(whether Qt version >= 4.0) + QT_VERSION=`grep "QT_VERSION_STR" ${QTDIR}/include${QTINC}/QtCore/qglobal.h | sed -e 's%^#define QT_VERSION_STR[[:space:]]*\"\([[:digit:]\.]*\)\"%\1%g'` + QT_VERSION_ID=`echo $QT_VERSION | awk -F. '{v=$[1]*10000+$[2]*100+$[3];print v}'` + if test $QT_VERSION_ID -ge 40000 + then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + qt_ok=no + fi + AC_MSG_CHECKING(Qt version) + AC_MSG_RESULT($QT_VERSION) + else + qt_ok=no + fi +fi + +# +# check moc presence (meta-object compiler) +# +qt_add=no + +if test "x$qt_ok" = "xyes" +then + if test -f ${QTDIR}/bin/moc + then + MOC=${QTDIR}/bin/moc + else + AC_PATH_PROG(MOC, moc) + fi + if test "x$MOC" = "x" + then + qt_ok=no + AC_MSG_RESULT(moc (Qt meta-object compiler) is not in the PATH variable) + else + qt_ok=yes + AC_MSG_RESULT(moc (Qt meta-object compiler) is found) + fi + + if test "x$qt_ok" = "xyes" + then + dnl check moc version + AC_MSG_CHECKING( equality Qt and moc tool version) + MOC_VERSION=`$MOC -v 2>&1 | awk 'BEGIN{FS="[[ ()]]"};{print $(NF-1)}'` + if test "x$QT_VERSION" = "x$MOC_VERSION" + then + AC_MSG_RESULT(yes) + qt_ok=yes + else + AC_MSG_RESULT(moc tool and Qt product are incompatible $MOC_VERSION) + QT_VERSION_MAJ=`echo $QT_VERSION | awk -F. '{v=$[1];print v}'` + AC_MSG_CHECKING(for moc-qt$QT_VERSION_MAJ compatible version) + if test -f ${QTDIR}/bin/moc-qt$QT_VERSION_MAJ + then + MOC=${QTDIR}/bin/moc-qt$QT_VERSION_MAJ + qt_ok=yes + qt_add=$QT_VERSION_MAJ + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + qt_ok=no + fi + fi + fi +fi +AC_MSG_CHECKING(moc tool and Qt product done) +AC_MSG_RESULT(yes) + +# +# check uic presence (user interface compiler) +# +if test "x$qt_ok" = "xyes" +then + if test "x$qt_add" = "xno" + then + AC_MSG_CHECKING(uic) + if test -f ${QTDIR}/bin/uic + then + UIC=${QTDIR}/bin/uic + else + AC_PATH_PROG(UIC, uic) + fi + AC_MSG_RESULT(yes) + else + AC_MSG_CHECKING(uic-qt$qt_add) + if test -f ${QTDIR}/bin/uic-qt$qt_add + then + UIC=${QTDIR}/bin/uic-qt$qt_add + else + AC_PATH_PROG(UIC, uic) + fi + AC_MSG_RESULT(yes) + fi + + if test "x$UIC" = "x" + then + qt_ok=no + AC_MSG_RESULT(uic (Qt user interface compiler) is not in the PATH variable) + else + qt_ok=yes + AC_MSG_RESULT(uic (Qt user interface compiler) is found) + fi + + if test "x$qt_ok" = "xyes" + then + dnl check uic version + AC_MSG_CHECKING(cheching equality Qt and uic tool version) + UIC_VERSION=`$UIC -version 2>&1 | awk '{print $NF}'` + if test "x$QT_VERSION" = "x$UIC_VERSION" + then + AC_MSG_RESULT(yes) + qt_ok=yes + else + AC_MSG_RESULT(uic tool and Qt product are incompatible) + qt_ok=no + fi + fi +fi + +# +# check rcc presence (resources compiler) +# +if test "x$qt_ok" = "xyes" +then + if test "x$qt_add" = "xno" + then + if test -f ${QTDIR}/bin/rcc + then + QRCC=${QTDIR}/bin/rcc + else + AC_PATH_PROG(QRCC, rcc) + fi + else + if test -f ${QTDIR}/bin/rcc-qt$qt_add + then + QRCC=${QTDIR}/bin/rcc-qt$qt_add + else + AC_PATH_PROG(QRCC, rcc) + fi + fi + if test "x$QRCC" = "x" + then + qt_ok=no + AC_MSG_RESULT(rcc (Qt resources compiler) is not in the PATH variable) + else + qt_ok=yes + AC_MSG_RESULT(rcc (Qt resources compiler) is found) + fi + + if test "x$qt_ok" = "xyes" + then + dnl check rcc version + AC_MSG_CHECKING(cheching equality Qt and rcc tool version) + QRCC_VERSION=`$QRCC -v 2>&1 | awk '{print $NF}'` + if test "x$QT_VERSION" = "x$QRCC_VERSION" + then + AC_MSG_RESULT(yes) + qt_ok=yes + else + AC_MSG_RESULT(rcc tool and Qt product are incompatible) + qt_ok=no + fi + fi +fi + +# +# check lrelease presence (translation files compiler) +# +if test "x$qt_ok" = "xyes" +then + if test "x$qt_add" = "xno" + then + if test -f ${QTDIR}/bin/lrelease + then + LRELEASE=${QTDIR}/bin/lrelease + else + AC_PATH_PROG(LRELEASE, lrelease) + fi + else + if test -f ${QTDIR}/bin/lrelease-qt$qt_add + then + LRELEASE=${QTDIR}/bin/lrelease-qt$qt_add + else + AC_PATH_PROG(LRELEASE, lrelease) + fi + fi + if test "x$LRELEASE" = "x" + then + qt_ok=no + AC_MSG_RESULT(lrelease (Qt translation files compiler) is not in the PATH variable) + else + qt_ok=yes + AC_MSG_RESULT(lrelease (Qt translation files compiler) is found) + fi + + if test "x$qt_ok" = "xyes" + then + dnl check lrelease version + AC_MSG_CHECKING( equality of Qt and lrelease tool version) + LRELEASE_VERSION=`$LRELEASE -version 2>&1 | awk '{print $NF}'` + if test "x$QT_VERSION" = "x$LRELEASE_VERSION" + then + AC_MSG_RESULT(yes) + qt_ok=yes + else + AC_MSG_RESULT(lrelease tool and Qt product are incompatible) + qt_ok=no + fi + fi +fi + +QT_ROOT=$QTDIR + +# +# check Qt header files +# +if test "x$qt_ok" = "xyes" +then + AC_CHECKING(include Qt header files) + + CPPFLAGS_old=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I${QTDIR}/include${QTINC} -I${QTDIR}/include${QTINC}/QtCore" + AC_CHECK_HEADER(QObject,qt_ok=yes,qt_ok=no) + CPPFLAGS=$CPPFLAGS_old + + if test "x$qt_ok" = "xno" + then + AC_MSG_RESULT(qt header files are not found in $QTDIR/include${QTINC}/QtCore) + AC_MSG_RESULT(QTDIR environment variable may be wrong (probably too old Qt version)) + else + AC_MSG_RESULT(qt header files seem to be OK) + QT_INCLUDES="-I${QTDIR}/include${QTINC}" + # user header files + QT_INCLUDES="${QT_INCLUDES} -I${QTDIR}/include${QTINC}/QtCore" + QT_INCLUDES="${QT_INCLUDES} -I${QTDIR}/include${QTINC}/QtGui" + QT_INCLUDES="${QT_INCLUDES} -I${QTDIR}/include${QTINC}/QtOpenGL" + QT_INCLUDES="${QT_INCLUDES} -I${QTDIR}/include${QTINC}/QtXml" + # not used currently header files (uncomment if required) + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtAssistant" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtDBus" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtDesigner" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtNetwork" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtSql" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtSvg" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtTest" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtUiTools" + + QT_ASSISTANT_INCLUDES="${QT_ASSISTANT_INCLUDES} -I${QTDIR}/include${QTINC}/QtAssistant" + QT_ASSISTANT_INCLUDES="${QT_ASSISTANT_INCLUDES} -I${QTDIR}/include${QTINC}/QtNetwork" + + # this flag is obsolete with Qt 4 + QT_MT_INCLUDES="$QT_INCLUDES" + fi +fi + +# +# test Qt libraries +# +if test "x$qt_ok" = "xyes" +then + AC_MSG_CHECKING(linking against Qt library) + + CXXFLAGS_old=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $QT_INCLUDES" + + LIBS_old=$LIBS + if test "x$QTDIR" = "x/usr" ; then + QT_LIB_DIR="" + elif test -d ${QTDIR}/lib; then + QT_LIB_DIR="-L$QTDIR/lib" + elif test -d ${QTDIR}/lib64; then + QT_LIB_DIR="-L$QTDIR/lib64" + elif test "x$QTDIR" = "x/usr/lib/qt4" ; then + QT_LIB_DIR="" + else + AC_MSG_ERROR(Can't detect of Qt library directory ) + qt_ok=no + fi + LIBS="$LIBS $QT_LIB_DIR -lQtCore" + + AC_CACHE_VAL(salome_cv_lib_qt,[ + AC_TRY_LINK( +#include +, int n; + char **s; + QCoreApplication a(n, s); + a.exec();, + eval "salome_cv_lib_qt=yes",eval "salome_cv_lib_qt=no") + ]) + qt_ok="$salome_cv_lib_qt" + + # BEGIN: for CCRT (installation of qt have only a "lib" directory) + if test "x$qt_ok" = "xno" + then + QT_LIB_DIR="-L$QTDIR/lib" + LIBS="$LIBS_old $QT_LIB_DIR -lQtCore" + + AC_CACHE_VAL(salome_cv_lib_qt,[ + AC_TRY_LINK( +#include +, int n; + char **s; + QCoreApplication a(n, s); + a.exec();, + eval "salome_cv_lib_qt=yes",eval "salome_cv_lib_qt=no") + ]) + qt_ok="$salome_cv_lib_qt" + fi + # END: for CCRT + + if test "x$qt_ok" = "xno" + then + AC_MSG_RESULT(no) + AC_MSG_RESULT(unable to link with qt library) + AC_MSG_RESULT(QTDIR environment variable may be wrong (probably too old Qt version)) + else + AC_MSG_RESULT(yes) + # core libs + QT_CORE_LIBS="$QT_LIB_DIR -lQtCore -lQtXml" + # gui libs + QT_GUI_LIBS="$QT_LIB_DIR -lQtGui -lQtOpenGL" + # other libs (currently not used) + QT_OTHER_LIBS="$QT_LIB_DIR" + # other libs (can be used if necessary) + #QT_OTHER_LIBS="$QT_LIB_DIR -lQt3Support -lQtAssistantClient -lQtDesigner -lQtNetwork -lQtSql -lQtSvg -lQtTest -ltQtUiTools" + QT_ASSISTANT_LIBS="$QT_LIB_DIR -lQtAssistantClient -lQtNetwork" + # all libs + QT_LIBS="$QT_CORE_LIBS $QT_GUI_LIBS $QT_OTHER_LIBS" + # this flag is obsolete with Qt 4 + QT_MT_LIBS="$QT_LIBS" + fi + LIBS=$LIBS_old + CXXFLAGS=$CXXFLAGS_old +fi + +AC_SUBST(QTDIR) +AC_SUBST(MOC) +AC_SUBST(UIC) +AC_SUBST(QRCC) +AC_SUBST(LRELEASE) + +AC_SUBST(QT_ROOT) +AC_SUBST(QT_INCLUDES) +AC_SUBST(QT_MT_INCLUDES) +AC_SUBST(QT_ASSISTANT_INCLUDES) +AC_SUBST(QT_LIB_DIR) +AC_SUBST(QT_CORE_LIBS) +AC_SUBST(QT_GUI_LIBS) +AC_SUBST(QT_OTHER_LIBS) +AC_SUBST(QT_LIBS) +AC_SUBST(QT_MT_LIBS) +AC_SUBST(QT_ASSISTANT_LIBS) +AC_SUBST(QT_VERSION) +AC_SUBST(QT_VERSION_ID) + +AC_LANG_RESTORE + +AC_MSG_RESULT(for Qt: $qt_ok) + +# Save cache +AC_CACHE_SAVE + +])dnl +dnl + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +dnl @synopsis AC_CXX_OPTION(-option,variable where we add option if ok,action if ok; action if not ok) +dnl Check options for C++ compiler +dnl @author Bernard Secher - 15/01/2004 +dnl +AC_DEFUN([AC_CXX_OPTION], [ + AC_MSG_CHECKING(wether $CXX accepts $1) + cat > conftest.cxx < conftest.log 2>&1 + var=`echo $1 | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + AC_MSG_RESULT(no) + eval $4 + else + AC_MSG_RESULT(yes) + $2="${$2} $1" + eval $3 + fi +]) + + + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +dnl @synopsis AC_LINKER_OPTIONS +dnl Check warning flags for C++ compiler to control warning messages +dnl +AC_DEFUN([AC_LINKER_OPTIONS],[ + + AC_CHECKING(for LIB_LOCATION_SUFFIX) + LIB_LOCATION_SUFFIX="" + AC_SUBST(LIB_LOCATION_SUFFIX) + AC_MSG_RESULT(LIB_LOCATION_SUFFIX is $LIB_LOCATION_SUFFIX) + + for opt in "-Xlinker -export-dynamic" -transitive_link; do + AC_CXX_OPTION($opt,LDEXPDYNFLAGS,flag=yes,flag=no) + if test "$flag" = "yes"; then + break + fi + done + AC_SUBST(LDEXPDYNFLAGS) + + for opt in "-Xlinker -enable-new-dtags" ; do + AC_CXX_OPTION($opt,LDFLAGS) + done + AC_SUBST(LDFLAGS) + +dnl + case $host_os in + osf*) + STDLIB="-lcxxstd" + ;; + *) + STDLIB="-lstdc++" + ;; + esac + AC_SUBST(STDLIB) +]) + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +dnl Paul RASCLE: modification for Linux: -pthread required by boost... +dnl Available from the GNU Autoconf Macro Archive at: +dnl +AC_DEFUN([ACX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_LANG_SAVE +AC_LANG_C +acx_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) + AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) + AC_MSG_RESULT($acx_pthread_ok) + if test x"$acx_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case "${host_cpu}-${host_os}" in + *linux*) + + # On linux "none" works, but boost requires -pthread, so, try first "-pthread" +acx_pthread_flags="-pthread pthreads none -Kthread -kthread lthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + ;; + + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthread or + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags" + ;; +esac + +if test x"$acx_pthread_ok" = xno; then +for flag in $acx_pthread_flags; do + + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) + if test x"$acx_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + AC_TRY_LINK([#include ], + [pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); ], + [acx_pthread_ok=yes]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT($acx_pthread_ok) + if test "x$acx_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$acx_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: threads are created detached by default + # and the JOINABLE attribute has a nonstandard name (UNDETACHED). + AC_MSG_CHECKING([for joinable pthread attribute]) + AC_TRY_LINK([#include ], + [int attr=PTHREAD_CREATE_JOINABLE;], + ok=PTHREAD_CREATE_JOINABLE, ok=unknown) + if test x"$ok" = xunknown; then + AC_TRY_LINK([#include ], + [int attr=PTHREAD_CREATE_UNDETACHED;], + ok=PTHREAD_CREATE_UNDETACHED, ok=unknown) + fi + if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then + AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok, + [Define to the necessary symbol if this constant + uses a non-standard name on your system.]) + fi + AC_MSG_RESULT(${ok}) + if test x"$ok" = xunknown; then + AC_MSG_WARN([we do not know how to create joinable pthreads]) + fi + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; + *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; + esac + AC_MSG_RESULT(${flag}) + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: must compile with cc_r + AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC}) +else + PTHREAD_CC="$CC" +fi + +AC_SUBST(PTHREAD_LIBS) +AC_SUBST(PTHREAD_CFLAGS) +AC_SUBST(PTHREAD_CC) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$acx_pthread_ok" = xyes; then + ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) + : +else + acx_pthread_ok=no + $2 +fi +AC_LANG_RESTORE +])dnl ACX_PTHREAD + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +# Check availability of Salome's KERNEL binary distribution +# +# Author : Jerome Roy (CEA, 2003) +# + +AC_DEFUN([CHECK_KERNEL],[ +AC_REQUIRE([AC_LINKER_OPTIONS])dnl + +AC_CHECKING(for Kernel) + +Kernel_ok=no + +KERNEL_LDFLAGS="" +KERNEL_CXXFLAGS="" + +AC_ARG_WITH(kernel, + [--with-kernel=DIR root directory path of KERNEL build or installation], + [KERNEL_DIR="$withval"], + [KERNEL_DIR=""]) + +if test "x${KERNEL_DIR}" = "x" ; then + AC_MSG_RESULT(for \${KERNEL_ROOT_DIR}: ${KERNEL_ROOT_DIR}) + # no --with-kernel-dir option used + if test "x${KERNEL_ROOT_DIR}" != "x" ; then + # KERNEL_ROOT_DIR environment variable defined + KERNEL_DIR=${KERNEL_ROOT_DIR} + else + # search Kernel binaries in PATH variable + AC_PATH_PROG(TEMP,runSalome) + if test "x${TEMP}" != "x" ; then + AC_MSG_RESULT(runSalome was found at : ${TEMP}) + KERNEL_BIN_DIR=`dirname ${TEMP}` + KERNEL_DIR=`cd ${KERNEL_BIN_DIR}/../..; pwd` + fi + fi +fi + +if test -f ${KERNEL_DIR}/bin/salome/runSalome ; then + AC_MSG_RESULT(Using Kernel module distribution in ${KERNEL_DIR}) + Kernel_ok=yes + + if test "x${KERNEL_ROOT_DIR}" = "x" ; then + KERNEL_ROOT_DIR=${KERNEL_DIR} + fi + + if test "x${KERNEL_SITE_DIR}" = "x" ; then + KERNEL_SITE_DIR=${KERNEL_ROOT_DIR} + fi + + AC_SUBST(KERNEL_ROOT_DIR) + AC_SUBST(KERNEL_SITE_DIR) + + KERNEL_LDFLAGS=-L${KERNEL_DIR}/lib${LIB_LOCATION_SUFFIX}/salome + KERNEL_CXXFLAGS=-I${KERNEL_DIR}/include/salome + + AC_SUBST(KERNEL_LDFLAGS) + AC_SUBST(KERNEL_CXXFLAGS) +else + AC_MSG_WARN("Cannot find compiled Kernel module distribution") +fi + +AC_MSG_RESULT(for Kernel: $Kernel_ok) + +])dnl + + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +AC_DEFUN([CHECK_CORBA],[ + +if test x"$DEFAULT_ORB" = x"omniORB" +then + + # Contient le nom de l'ORB + ORB=omniorb + + AC_MSG_RESULT(default orb : omniORB) + IDL=$OMNIORB_IDL + AC_SUBST(IDL) + + CORBA_ROOT=$OMNIORB_ROOT + CORBA_INCLUDES=$OMNIORB_INCLUDES + CORBA_CXXFLAGS=$OMNIORB_CXXFLAGS + CORBA_LIBS=$OMNIORB_LIBS + IDLCXXFLAGS=$OMNIORB_IDLCXXFLAGS + PACOIDLCXXFLAGS=$OMNIORB_PACOIDLCXXFLAGS + IDLPYFLAGS=$OMNIORB_IDLPYFLAGS + + AC_SUBST(CORBA_ROOT) + AC_SUBST(CORBA_INCLUDES) + AC_SUBST(CORBA_CXXFLAGS) + AC_SUBST(CORBA_LIBS) + AC_SUBST(IDLCXXFLAGS) + AC_SUBST(PACOIDLCXXFLAGS) + AC_SUBST(IDLPYFLAGS) + + IDL_CLN_H=$OMNIORB_IDL_CLN_H + IDL_CLN_CXX=$OMNIORB_IDL_CLN_CXX + IDL_CLN_OBJ=$OMNIORB_IDL_CLN_OBJ + + AC_SUBST(IDL_CLN_H) + AC_SUBST(IDL_CLN_CXX) + AC_SUBST(IDL_CLN_OBJ) + + IDL_SRV_H=$OMNIORB_IDL_SRV_H + IDL_SRV_CXX=$OMNIORB_IDL_SRV_CXX + IDL_SRV_OBJ=$OMNIORB_IDL_SRV_OBJ + + AC_SUBST(IDL_SRV_H) + AC_SUBST(IDL_SRV_CXX) + AC_SUBST(IDL_SRV_OBJ) + +else + AC_MSG_RESULT($DEFAULT_ORB unknown orb) + +fi + +])dnl +dnl + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +AC_DEFUN([CHECK_HTML_GENERATORS],[ + +#AC_CHECKING(for html generators) + +doxygen_ok=yes +dnl were is doxygen ? +AC_PATH_PROG(DOXYGEN,doxygen) +if test "x$DOXYGEN" = "x" +then + AC_MSG_WARN(doxygen not found) + doxygen_ok=no +fi +if test "x$doxygen_ok" = "xyes" +then + version=`$DOXYGEN --version` + AC_MSG_RESULT(doxygen version $version) + case "$version" in + 1.4.4*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=no + ;; + 1.4.5*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + 1.4.6*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + 1.4.7*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + 1.4.8*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + 1.4.9*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + [[1-9]].[[5-9]]*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + *) + DOXYGEN_WITH_PYTHON=no + DOXYGEN_WITH_STL=no + ;; + esac + AC_MSG_RESULT(doxygen with support STL - $DOXYGEN_WITH_STL) + AC_MSG_RESULT(doxygen with support PYTHON - $DOXYGEN_WITH_PYTHON) + if test "$DOXYGEN_WITH_PYTHON" == "yes" ; then + DOXYGEN_PYTHON_EXTENSION="*.py" + else + DOXYGEN_PYTHON_EXTENSION="" + fi + if test "$DOXYGEN_WITH_STL" == "yes" ; then + DOXYGEN_SUPPORT_STL="YES" + else + DOXYGEN_SUPPORT_STL="NO" + fi + AC_SUBST(DOXYGEN_WITH_PYTHON) + AC_SUBST(DOXYGEN_PYTHON_EXTENSION) + AC_SUBST(DOXYGEN_WITH_STL) + AC_SUBST(DOXYGEN_SUPPORT_STL) +fi +dnl AC_SUBST(DOXYGEN) + +graphviz_ok=yes +dnl were is graphviz ? +AC_PATH_PROG(DOT,dot) +if test "x$DOT" = "x" ; then + AC_MSG_WARN(graphviz not found) + graphviz_ok=no +fi +dnl AC_SUBST(DOT) + +AC_PATH_PROG(LATEX,latex) +if test "x$LATEX" = "x" ; then + AC_MSG_WARN(latex not found) +fi +AC_SUBST(LATEX) + +AC_PATH_PROG(DVIPS,dvips) +if test "x$DVIPS" = "x" ; then + AC_MSG_WARN(dvips not found) +fi +AC_SUBST(DVIPS) + +AC_PATH_PROG(PDFLATEX,pdflatex) +if test "x$PDFLATEX" = "x" ; then + AC_MSG_WARN(pdflatex not found) +fi +AC_SUBST(PDFLATEX) + +rst2html_ok=yes +dnl were is rst2html ? +AC_PATH_PROG(RST2HTML,rst2html) +if test "x$RST2HTML" = "x"; then + AC_PATH_PROG(RST2HTML,rst2html.py) +fi + +if test "x$RST2HTML" = "x"; then + AC_MSG_WARN(rst2html not found) + rst2html_ok=no +fi +AC_SUBST(RST2HTML) + +AM_CONDITIONAL(RST2HTML_IS_OK, [test x"$rst2html_ok" = xyes]) + +])dnl +dnl + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +AC_DEFUN([CHECK_OMNIORB],[ +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_CXX])dnl +AC_REQUIRE([AC_PROG_CPP])dnl +AC_REQUIRE([AC_PROG_CXXCPP])dnl + +AC_CHECKING(for omniORB) +omniORB_ok=yes + +if test "x$PYTHON" = "x" +then + CHECK_PYTHON +fi + +AC_LANG_SAVE +AC_LANG_CPLUSPLUS + +AC_PATH_PROG(OMNIORB_IDL, omniidl) +if test "x$OMNIORB_IDL" = "x" +then + omniORB_ok=no + AC_MSG_RESULT(omniORB binaries not in PATH variable) +else + omniORB_ok=yes +fi + +if test "x$omniORB_ok" = "xyes" +then + AC_SUBST(OMNIORB_IDL) + + OMNIORB_BIN=`echo ${OMNIORB_IDL} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + OMNIORB_ROOT=${OMNIORB_BIN} + # one-level up + OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + # + # + if test -d $OMNIORB_ROOT/include ; then + # if $OMNIORB_ROOT/include exists, there are a lot of chance that + # this is omniORB4.x installed via configure && make && make install + OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin\$,lib,"` + OMNIORB_VERSION=4 + else + # omniORB has been installed old way + OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin/,lib/,"` + # one-level up again + OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + if test -d $OMNIORB_ROOT/include/omniORB4 ; then + OMNIORB_VERSION=4 + else + OMNIORB_VERSION=3 + fi + fi + AC_SUBST(OMNIORB_ROOT) + + OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB${OMNIORB_VERSION} -I$OMNIORB_ROOT/include/COS" + AC_SUBST(OMNIORB_INCLUDES) + + ENABLE_PTHREADS + + OMNIORB_CXXFLAGS="-DOMNIORB_VERSION=$OMNIORB_VERSION" + case $build_cpu in + sparc*) + # AC_DEFINE(__sparc__) + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sparc__" + ;; + *86*) + # AC_DEFINE(__x86__) + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__x86__" + ;; + esac + case $build_os in + osf*) + # AC_DEFINE(__osf1__) + __OSVERSION__=5 + AC_DEFINE([__OSVERSION__], [5], [Description]) + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__osf1__" + ;; + solaris*) + # AC_DEFINE(__sunos__) + __OSVERSION__=5 + AC_DEFINE([__OSVERSION__], [5], [Description]) + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sunos__" + ;; + linux*) + # AC_DEFINE(__linux__) + __OSVERSION__=2 + AC_DEFINE([__OSVERSION__], [2], [Description]) + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__linux__" + ;; + esac + AC_SUBST(OMNIORB_CXXFLAGS) + + CPPFLAGS_old=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" + + AC_LANG_CPLUSPLUS + AC_CHECK_HEADER(CORBA.h,omniORB_ok="yes",omniORB_ok="no") + + CPPFLAGS=$CPPFLAGS_old + +fi + +if test "x$omniORB_ok" = "xyes" +then + if test "x$OMNIORB_LIB" = "x/usr/lib" + then + OMNIORB_LDFLAGS="" + OMNIORB_RFLAGS="" + else + OMNIORB_LDFLAGS="-L$OMNIORB_LIB" + OMNIORB_RFLAGS="-Wl,-R$OMNIORB_LIB" + fi + + LIBS_old=$LIBS + LIBS="$LIBS $OMNIORB_LDFLAGS -lomnithread" + + CXXFLAGS_old=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" + + AC_MSG_CHECKING(whether we can link with omnithreads) + AC_CACHE_VAL(salome_cv_lib_omnithreads,[ + AC_TRY_LINK( +#include +, omni_mutex my_mutex, + eval "salome_cv_lib_omnithreads=yes",eval "salome_cv_lib_omnithreads=no") + ]) + + omniORB_ok="$salome_cv_lib_omnithreads" + if test "x$omniORB_ok" = "xno" + then + AC_MSG_RESULT(omnithreads not found) + else + AC_MSG_RESULT(yes) + fi + + LIBS=$LIBS_old + CXXFLAGS=$CXXFLAGS_old +fi + + +dnl omniORB_ok=yes +if test "x$omniORB_ok" = "xyes" +then + + AC_CHECK_LIB(socket,socket, LIBS="-lsocket $LIBS",,) + AC_CHECK_LIB(nsl,gethostbyname, LIBS="-lnsl $LIBS",,) + + LIBS_old=$LIBS + OMNIORB_LIBS="$OMNIORB_LDFLAGS" + OMNIORB_LIBS="$OMNIORB_LIBS -lomniORB${OMNIORB_VERSION}" + OMNIORB_LIBS="$OMNIORB_LIBS -lomniDynamic${OMNIORB_VERSION}" + OMNIORB_LIBS="$OMNIORB_LIBS -lCOS${OMNIORB_VERSION}" + OMNIORB_LIBS="$OMNIORB_LIBS -lCOSDynamic${OMNIORB_VERSION}" + OMNIORB_LIBS="$OMNIORB_LIBS -lomnithread" + OMNIORB_LIBS="$OMNIORB_LIBS ${OMNIORB_RFLAGS}" + if test $OMNIORB_VERSION = 3 ; then + OMNIORB_LIBS="$OMNIORB_LIBS -ltcpwrapGK" + fi + AC_SUBST(OMNIORB_LIBS) + + LIBS="$OMNIORB_LIBS $LIBS" + CXXFLAGS_old=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" + + AC_MSG_CHECKING(whether we can link with omniORB) + AC_CACHE_VAL(salome_cv_lib_omniorb,[ + AC_TRY_LINK( +#include +, CORBA::ORB_var orb, + eval "salome_cv_lib_omniorb3=yes",eval "salome_cv_lib_omniorb3=no") + ]) + omniORB_ok="$salome_cv_lib_omniorb3" + + omniORB_ok=yes + if test "x$omniORB_ok" = "xno" + then + AC_MSG_RESULT(omniORB library linking failed) + omniORB_ok=no + else + AC_MSG_RESULT(yes) + fi + LIBS="$LIBS_old" + CXXFLAGS=$CXXFLAGS_old +fi + + +if test "x$omniORB_ok" = "xyes" +then + + OMNIORB_IDLCXXFLAGS="-Wba -nf -I${OMNIORB_ROOT}/idl" + OMNIORB_PACOIDLCXXFLAGS="-nf -I${OMNIORB_ROOT}/idl" + OMNIORB_IDLPYFLAGS_1='-bpython -nf ' + OMNIORB_IDLPYFLAGS_2=" -I${OMNIORB_ROOT}/idl" + OMNIORB_IDLPYFLAGS=${OMNIORB_IDLPYFLAGS_1}${OMNIORB_IDLPYFLAGS_2} + + AC_SUBST(OMNIORB_IDLCXXFLAGS) + AC_SUBST(OMNIORB_PACOIDLCXXFLAGS) + AC_SUBST(OMNIORB_IDLPYFLAGS) + + OMNIORB_IDL_CLN_H=.hh + OMNIORB_IDL_CLN_CXX=SK.cc + OMNIORB_IDL_CLN_OBJ=SK.o + AC_SUBST(OMNIORB_IDL_CLN_H) + AC_SUBST(OMNIORB_IDL_CLN_CXX) + AC_SUBST(OMNIORB_IDL_CLN_OBJ) + + OMNIORB_IDL_SRV_H=.hh + OMNIORB_IDL_SRV_CXX=SK.cc + OMNIORB_IDL_SRV_OBJ=SK.o + AC_SUBST(OMNIORB_IDL_SRV_H) + AC_SUBST(OMNIORB_IDL_SRV_CXX) + AC_SUBST(OMNIORB_IDL_SRV_OBJ) + + OMNIORB_IDL_TIE_H= + OMNIORB_IDL_TIE_CXX= + AC_SUBST(OMNIORB_IDL_TIE_H) + AC_SUBST(OMNIORB_IDL_TIE_CXX) + + AC_DEFINE([OMNIORB], [], [Description]) + + CORBA_HAVE_POA=1 + AC_DEFINE([CORBA_HAVE_POA], [], [Description]) + + CORBA_ORB_INIT_HAVE_3_ARGS=1 + AC_DEFINE([CORBA_ORB_INIT_HAVE_3_ARGS], [], [Description]) + CORBA_ORB_INIT_THIRD_ARG='"omniORB"' + AC_DEFINE([CORBA_ORB_INIT_THIRD_ARG], [], [omniORB]) + +fi + +omniORBpy_ok=no +if test "x$omniORB_ok" = "xyes" +then + AC_MSG_CHECKING(omniORBpy) + $PYTHON -c "import omniORB" &> /dev/null + if test $? = 0 ; then + AC_MSG_RESULT(yes) + omniORBpy_ok=yes + else + AC_MSG_RESULT(no, check your installation of omniORBpy) + omniORBpy_ok=no + fi +fi + +dnl AC_LANG_RESTORE + +AC_MSG_RESULT(for omniORBpy: $omniORBpy_ok) +AC_MSG_RESULT(for omniORB: $omniORB_ok) + +# Save cache +AC_CACHE_SAVE + +dnl AC_LANG_CPLUSPLUS + +CXXFLAGS_old=$CXXFLAGS +CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" +LIBS_old=$LIBS +LIBS="$LIBS $OMNIORB_LDFLAGS $OMNIORB_LIBS" +AC_MSG_CHECKING(whether we have double and CORBA::Double compatibility) +AC_TRY_RUN( +#include +#include +int main () +{ + CORBA::Double *a=new CORBA::Double(2.5); + double c=2.5; + double *b; + b=(double *)a; + + if( (c==*b) && (sizeof(double)==sizeof(CORBA::Double)) ){ + delete a; + exit(0); + } + else{ + delete a; + exit(1); + } +} +,DOUBLECOMP="yes",DOUBLECOMP="no") +if test "$DOUBLECOMP" = yes; then + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_DOUBLE" + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) +fi +AC_MSG_CHECKING(whether we have int and CORBA::Long compatibility) +AC_TRY_RUN( +#include +#include +int main () +{ + CORBA::Long *a=new CORBA::Long(2); + int c=2; + int *b; + b=(int *)a; + + if( (c==*b) && (sizeof(int)==sizeof(CORBA::Long)) ) + exit(0); + else + exit(1); +} +,LONGCOMP="yes",LONGCOMP="no") +if test "$LONGCOMP" = yes; then + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_LONG" + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) +fi +CXXFLAGS=$CXXFLAGS_old +LIBS=$LIBS_old + +AC_LANG_RESTORE + +AC_SUBST(OMNIORB_CXXFLAGS) + +])dnl +dnl + +dnl modify CFLAGS, CXXFLAGS and LIBS for compiling pthread-based programs. +dnl@author (C) Ruslan Shevchenko , 1998, 2000 +dnl@id $Id: enable_pthreads.m4,v 1.6.32.1 2010-05-14 12:57:09 vsr Exp $ +dnl Modified to use acx_pthread.m4 from GNU Autoconf Macro Archive +dnl +AC_DEFUN([ENABLE_PTHREADS],[ +AC_REQUIRE([ACX_PTHREAD]) + +if test x"$enable_pthreads_done" != xyes; then + if test x"$acx_pthread_ok" = xyes; then + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" + LIBS="$LIBS $PTHREAD_LIBS" + threads_ok=yes + else + threads_ok=no + fi + enable_pthreads_done=yes +fi +])dnl +dnl + +dnl Copyright (C) 2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +dnl --- +dnl File : hack_libtool.m4 +dnl Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +dnl --- +dnl +dnl The purpose of below autoconf macro is to workaround very annoying problem +dnl of the GNU libtool program. The problem leads to the incorrect linking +dnl to the native libraries (installed in /usr/lib[64]) instead of those supplied +dnl with specific -Ldir options. + +AC_DEFUN([AC_HACK_LIBTOOL],[ +cat > hack_libtool < ${INSTALL} << EOF +#!/bin/bash + +nb_args=\$[#] +args=\$[*] +if test \$nb_args -gt 1 ; then + nb=\$(expr \$nb_args - 2) + shift \$nb + target=\$[2] + if test -f \$target ; then + orig=\$[1] + if test -f \$orig ; then + diff \$orig \$target > /dev/null 2>&1 + if test \$[?] = 0 ; then + echo \$orig and \$target are identical + exit 0 + fi + fi + fi +fi +${GLOBAL_INSTALL} \$args +EOF +chmod +x ${INSTALL} +AC_SUBST(INSTALL) +AC_SUBST(GLOBAL_INSTALL) +])dnl + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +dnl define macros : +dnl AC_ENABLE_PRODUCTION AC_DISABLE_PRODUCTION +dnl AC_ENABLE_DEBUG AC_DISABLE_DEBUG +dnl version $Id: production.m4,v 1.13.2.2.18.2 2011-02-28 11:43:04 adam Exp $ +dnl author Patrick GOLDBRONN +dnl AC_ENABLE_PRODUCTION +dnl This macro enables production build : optimized + no debugging information (-g) +dnl default = not enabled +dnl +AC_DEFUN([AC_ENABLE_PRODUCTION], +[define([AC_ENABLE_PRODUCTION_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([production], + [AC_HELP_STRING([--enable-production], + [compile in optimized mode @<:@default=]AC_ENABLE_PRODUCTION_DEFAULT[@:>@])], + [ + enable_production=$enableval + ], + [enable_production=]AC_ENABLE_PRODUCTION_DEFAULT) + +AC_CXX_OPTION(-Wparentheses,CXXFLAGS) +AC_CXX_OPTION(-Wreturn-type,CXXFLAGS) +AC_CXX_OPTION(-fmessage-length=0,CXXFLAGS) +AC_CXX_OPTION(-Wunused,CXXFLAGS) +AC_CXX_OPTION(-pipe,CXXFLAGS) + +if test "X$enable_production" = "Xyes"; then + CFLAGS="$CFLAGS -O" + AC_CXX_OPTION(-Wuninitialized,CXXFLAGS) + CXXFLAGS="$CXXFLAGS -O " +else + CFLAGS="$CFLAGS -g" + CXXFLAGS="$CXXFLAGS -g" +fi +]) + +# AC_DISABLE_PRODUCTION - set the default flag to --disable-production +AC_DEFUN([AC_DISABLE_PRODUCTION], [AC_ENABLE_PRODUCTION(no)]) + +dnl AC_ENABLE_DEBUG +dnl +dnl This macro enables debugging build : debug + trace +dnl default = not enabled +dnl +AC_DEFUN([AC_ENABLE_DEBUG], + [define([AC_ENABLE_DEBUG_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE([debug], + [AC_HELP_STRING([--enable-debug], + [build with debug and trace information @<:@default=]AC_ENABLE_DEBUG_DEFAULT[@:>@])], + [ + enable_debug=$enableval + ], + [enable_debug=]AC_ENABLE_DEBUG_DEFAULT) + +if test "X$enable_debug" = "Xyes"; then + CFLAGS="$CFLAGS -g -D_DEBUG_ " + CXXFLAGS="$CXXFLAGS -g -D_DEBUG_ " +fi +]) + +# AC_DISABLE_DEBUG - set the default flag to --disable-debug +AC_DEFUN([AC_DISABLE_DEBUG], [AC_ENABLE_DEBUG(no)]) + +dnl AC_ENABLE_MPI_SEQ_CONTAINER +dnl +dnl This macro enables mpi into the sequential container +dnl default = not enabled +dnl +AC_DEFUN([AC_ENABLE_MPI_SEQ_CONTAINER], + [define([AC_ENABLE_MPI_SEQ_CONTAINER_DEFAULT], ifelse($1, no, no, yes))dnl + AC_ARG_ENABLE([mpi-seq-container], + [AC_HELP_STRING([--enable-mpi-seq-container], + [enable mpi into seq container @<:@default=]AC_ENABLE_MPI_SEQ_CONTAINER_DEFAULT[@:>@])], + [ + enable_mpi_seq_container=$enableval + ], + [enable_mpi_seq_container=]AC_ENABLE_MPI_SEQ_CONTAINER_DEFAULT) + +if test "X$enable_mpi_seq_container" = "Xyes"; then + CFLAGS="$CFLAGS -D_MPI_SEQ_CONTAINER_ " + CXXFLAGS="$CXXFLAGS -D_MPI_SEQ_CONTAINER_ " +fi +AM_CONDITIONAL([WITH_MPI_SEQ_CONTAINER], [test "x$enable_mpi_seq_container" = "xyes"]) +]) + +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + + +dnl CHECK_PYTHON([module, classes]) +dnl +dnl Adds support for distributing Python modules or classes. +dnl Python library files distributed as a `module' are installed +dnl under PYTHON_SITE_PACKAGE (eg, ./python1.5/site-package/package-name) +dnl while those distributed as `classes' are installed under PYTHON_SITE +dnl (eg, ./python1.5/site-packages). The default is to install as +dnl a `module'. + +AC_DEFUN([CHECK_PYTHON], + [ + python_ok=yes + + AC_ARG_WITH(python, + [AC_HELP_STRING([--with-python=DIR],[root directory path of python installation])], + [PYTHON="$withval/bin/python" + AC_MSG_RESULT("select python distribution in $withval") + ], [ + AC_PATH_PROG(PYTHON, python) + ]) + + AC_CHECKING([local Python configuration]) + + AC_REQUIRE([AC_LINKER_OPTIONS])dnl + + PYTHON_PREFIX=`echo $PYTHON | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + PYTHON_PREFIX=`echo $PYTHON_PREFIX | sed -e "s,[[^/]]*$,,;s,/$,,;s,^$,.,"` + PYTHONHOME=$PYTHON_PREFIX + + AC_SUBST(PYTHON_PREFIX) + AC_SUBST(PYTHONHOME) + + changequote(<<, >>)dnl + PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` + changequote([, ])dnl + AC_SUBST(PYTHON_VERSION) + + PY_MAKEFILE=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/Makefile + if test ! -f "$PY_MAKEFILE"; then + if test "${build_cpu::6}" = "x86_64" ; then + PY_MAKEFILE=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile + fi + fi + if test ! -f "$PY_MAKEFILE"; then + AC_MSG_WARN([*** Couldn't find ${PY_MAKEFILE}. Maybe you are +*** missing the development portion of the python installation]) + python_ok=no + fi + + AC_SUBST(PYTHON_INCLUDES) + AC_SUBST(PYTHON_LIBS) + + PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION + PYTHON_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" + PYTHON_LIB=$PYTHON_LIBS + PYTHON_LIBA=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a + if test "${build_cpu::6}" = "x86_64" ; then + if test "$PY_MAKEFILE" = "${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile" ; then + PYTHON_LIBS="-L${PYTHON_PREFIX}/lib64/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" + PYTHON_LIB=$PYTHON_LIBS + PYTHON_LIBA=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a + fi + fi + + dnl At times (like when building shared libraries) you may want + dnl to know which OS Python thinks this is. + + AC_SUBST(PYTHON_PLATFORM) + PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` + + AC_SUBST(PYTHON_SITE) + AC_ARG_WITH(python-site, + [AC_HELP_STRING([--with-python-site=DIR], + [Use DIR for installing platform independent Python site-packages])], + +dnl modification : by default, we install python script in salome root tree + +dnl [PYTHON_SITE="$withval" +dnl python_site_given=yes], +dnl [PYTHON_SITE=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages +dnl python_site_given=no] + + [PYTHON_SITE="$withval" + python_site_given=yes], + [PYTHON_SITE=${prefix}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages + python_site_given=no]) + + AC_SUBST(PYTHON_SITE_PACKAGE) + PYTHON_SITE_PACKAGE=$PYTHON_SITE/$PACKAGE + + + dnl Get PYTHON_SITE from --with-python-site-exec or from + dnl --with-python-site or from running Python + + AC_SUBST(PYTHON_SITE_EXEC) + AC_ARG_WITH(python-site-exec, + [AC_HELP_STRING([--with-python-site-exec=DIR], + [Use DIR for installing platform dependent Python site-packages])], + [PYTHON_SITE_EXEC="$withval"], + [if test "$python_site_given" = yes; then + PYTHON_SITE_EXEC=$PYTHON_SITE + else + PYTHON_SITE_EXEC=${PYTHON_EXEC_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages + fi]) + + dnl Set up the install directory + ifelse($1, classes, +[PYTHON_SITE_INSTALL=$PYTHON_SITE], +[PYTHON_SITE_INSTALL=$PYTHON_SITE_PACKAGE]) + AC_SUBST(PYTHON_SITE_INSTALL) + + dnl Also lets automake think PYTHON means something. + + pythondir=${PYTHON_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/ + AC_SUBST(pythondir) + + AC_MSG_CHECKING([if we need libdb]) + PY_NEEDOPENDB=`nm $PYTHON_LIBA | grep dbopen | grep U` + if test "x$PY_NEEDOPENDB" != "x"; then + AC_MSG_RESULT(yes) + AC_CHECK_LIB(db,dbopen,PYTHON_LIBS="$PYTHON_LIBS -ldb",db_ok=no) + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if we need libdl]) + PY_NEEDOPENDL=`nm $PYTHON_LIBA | grep dlopen | grep U` + if test "x$PY_NEEDOPENDL" != "x"; then + AC_MSG_RESULT(yes) + AC_CHECK_LIB(dl,dlopen,PYTHON_LIBS="$PYTHON_LIBS -ldl",dl_ok=no) + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if we need libutil]) + PY_NEEDOPENPTY=`nm $PYTHON_LIBA | grep openpty | grep U` + if test "x$PY_NEEDOPENPTY" != "x"; then + AC_MSG_RESULT(yes) + AC_CHECK_LIB(util,openpty,PYTHON_LIBS="$PYTHON_LIBS -lutil",openpty_ok=no) + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if we need tcltk]) + PY_NEEDTCLTK=`nm $PYTHON_LIBA | grep Tcl_Init | grep U` + if test "x$PY_NEEDTCLTK" != "x"; then + AC_MSG_RESULT(yes) + AC_CHECK_LIB(tcl,Tcl_Init,PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk",tclinit_ok=no) + else + AC_MSG_RESULT(no) + fi + + if test "$python_ok" == "yes"; then + AC_MSG_RESULT(looks good) + fi +]) + diff --git a/data/templates/PythonComponent/adm_local/Makefile.am b/data/templates/PythonComponent/adm_local/Makefile.am new file mode 100755 index 0000000..a04c819 --- /dev/null +++ b/data/templates/PythonComponent/adm_local/Makefile.am @@ -0,0 +1,22 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = unix diff --git a/data/templates/PythonComponent/adm_local/Makefile.in b/data/templates/PythonComponent/adm_local/Makefile.in new file mode 100755 index 0000000..988ed4f --- /dev/null +++ b/data/templates/PythonComponent/adm_local/Makefile.in @@ -0,0 +1,695 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="${_dollar}{ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am +subdir = adm_local +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + +SUBDIRS = unix +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *${_dollar}dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu adm_local/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu adm_local/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x ${_dollar}MAKEFLAGS; do \ + case ${_dollar}f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + echo "Making ${_dollar}target in ${_dollar}subdir"; \ + if test "${_dollar}subdir" = "."; then \ + dot_seen=yes; \ + local_target="${_dollar}target-am"; \ + else \ + local_target="${_dollar}target"; \ + fi; \ + (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) ${_dollar}local_target) \ + || eval ${_dollar}failcom; \ + done; \ + if test "${_dollar}dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "${_dollar}target-am" || exit 1; \ + fi; test -z "${_dollar}fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x ${_dollar}MAKEFLAGS; do \ + case ${_dollar}f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in ${_dollar}list; do \ + if test "${_dollar}subdir" = "."; then :; else \ + rev="${_dollar}subdir ${_dollar}rev"; \ + fi; \ + done; \ + rev="${_dollar}rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in ${_dollar}rev; do \ + echo "Making ${_dollar}target in ${_dollar}subdir"; \ + if test "${_dollar}subdir" = "."; then \ + local_target="${_dollar}target-am"; \ + else \ + local_target="${_dollar}target"; \ + fi; \ + (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) ${_dollar}local_target) \ + || eval ${_dollar}failcom; \ + done && test -z "${_dollar}fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + test "${_dollar}subdir" = . || (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + test "${_dollar}subdir" = . || (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in ${_dollar}list; do \ + if test -f "${_dollar}i"; then echo ${_dollar}i; else echo $(srcdir)/${_dollar}i; fi; \ + done | \ + $(AWK) ' { files[${_dollar}0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID ${_dollar}unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + if test "${_dollar}subdir" = .; then :; else \ + test ! -f ${_dollar}subdir/TAGS || \ + tags="${_dollar}tags ${_dollar}include_option=${_dollar}here/${_dollar}subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in ${_dollar}list; do \ + if test -f "${_dollar}i"; then echo ${_dollar}i; else echo $(srcdir)/${_dollar}i; fi; \ + done | \ + $(AWK) ' { files[${_dollar}0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)${_dollar}tags${_dollar}unique"; then :; else \ + test -n "${_dollar}unique" || unique=${_dollar}empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + ${_dollar}tags ${_dollar}unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in ${_dollar}list; do \ + if test -f "${_dollar}i"; then echo ${_dollar}i; else echo $(srcdir)/${_dollar}i; fi; \ + done | \ + $(AWK) ' { files[${_dollar}0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)${_dollar}tags${_dollar}unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + ${_dollar}tags ${_dollar}unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) ${_dollar}here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^${_dollar}\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^${_dollar}\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in ${_dollar}list; do echo ${_dollar}file; done | \ + sed -e "s|^${_dollar}srcdirstrip/||;t" \ + -e "s|^${_dollar}topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case ${_dollar}dist_files in \ + */*) $(MKDIR_P) `echo "${_dollar}dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*${_dollar},,' | \ + sort -u` ;; \ + esac; \ + for file in ${_dollar}dist_files; do \ + if test -f ${_dollar}file || test -d ${_dollar}file; then d=.; else d=$(srcdir); fi; \ + if test -d ${_dollar}d/${_dollar}file; then \ + dir=`echo "/${_dollar}file" | sed -e 's,/[^/]*${_dollar},,'`; \ + if test -d $(srcdir)/${_dollar}file && test ${_dollar}d != $(srcdir); then \ + cp -pR $(srcdir)/${_dollar}file $(distdir)${_dollar}dir || exit 1; \ + fi; \ + cp -pR ${_dollar}d/${_dollar}file $(distdir)${_dollar}dir || exit 1; \ + else \ + test -f $(distdir)/${_dollar}file \ + || cp -p ${_dollar}d/${_dollar}file $(distdir)/${_dollar}file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in ${_dollar}list; do \ + if test "${_dollar}subdir" = .; then :; else \ + test -d "$(distdir)/${_dollar}subdir" \ + || $(MKDIR_P) "$(distdir)/${_dollar}subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd ${_dollar}subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="${_dollar}top_distdir" \ + distdir="${_dollar}distdir/${_dollar}subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/adm_local/unix/Makefile.am b/data/templates/PythonComponent/adm_local/unix/Makefile.am new file mode 100755 index 0000000..1906404 --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/Makefile.am @@ -0,0 +1,22 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = config_files diff --git a/data/templates/PythonComponent/adm_local/unix/Makefile.in b/data/templates/PythonComponent/adm_local/unix/Makefile.in new file mode 100755 index 0000000..6d9ace8 --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/Makefile.in @@ -0,0 +1,695 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="${_dollar}{ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am +subdir = adm_local/unix +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + +SUBDIRS = config_files +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *${_dollar}dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu adm_local/unix/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu adm_local/unix/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x ${_dollar}MAKEFLAGS; do \ + case ${_dollar}f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + echo "Making ${_dollar}target in ${_dollar}subdir"; \ + if test "${_dollar}subdir" = "."; then \ + dot_seen=yes; \ + local_target="${_dollar}target-am"; \ + else \ + local_target="${_dollar}target"; \ + fi; \ + (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) ${_dollar}local_target) \ + || eval ${_dollar}failcom; \ + done; \ + if test "${_dollar}dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "${_dollar}target-am" || exit 1; \ + fi; test -z "${_dollar}fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x ${_dollar}MAKEFLAGS; do \ + case ${_dollar}f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in ${_dollar}list; do \ + if test "${_dollar}subdir" = "."; then :; else \ + rev="${_dollar}subdir ${_dollar}rev"; \ + fi; \ + done; \ + rev="${_dollar}rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in ${_dollar}rev; do \ + echo "Making ${_dollar}target in ${_dollar}subdir"; \ + if test "${_dollar}subdir" = "."; then \ + local_target="${_dollar}target-am"; \ + else \ + local_target="${_dollar}target"; \ + fi; \ + (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) ${_dollar}local_target) \ + || eval ${_dollar}failcom; \ + done && test -z "${_dollar}fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + test "${_dollar}subdir" = . || (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + test "${_dollar}subdir" = . || (cd ${_dollar}subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in ${_dollar}list; do \ + if test -f "${_dollar}i"; then echo ${_dollar}i; else echo $(srcdir)/${_dollar}i; fi; \ + done | \ + $(AWK) ' { files[${_dollar}0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID ${_dollar}unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in ${_dollar}list; do \ + if test "${_dollar}subdir" = .; then :; else \ + test ! -f ${_dollar}subdir/TAGS || \ + tags="${_dollar}tags ${_dollar}include_option=${_dollar}here/${_dollar}subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in ${_dollar}list; do \ + if test -f "${_dollar}i"; then echo ${_dollar}i; else echo $(srcdir)/${_dollar}i; fi; \ + done | \ + $(AWK) ' { files[${_dollar}0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)${_dollar}tags${_dollar}unique"; then :; else \ + test -n "${_dollar}unique" || unique=${_dollar}empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + ${_dollar}tags ${_dollar}unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in ${_dollar}list; do \ + if test -f "${_dollar}i"; then echo ${_dollar}i; else echo $(srcdir)/${_dollar}i; fi; \ + done | \ + $(AWK) ' { files[${_dollar}0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)${_dollar}tags${_dollar}unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + ${_dollar}tags ${_dollar}unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) ${_dollar}here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^${_dollar}\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^${_dollar}\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in ${_dollar}list; do echo ${_dollar}file; done | \ + sed -e "s|^${_dollar}srcdirstrip/||;t" \ + -e "s|^${_dollar}topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case ${_dollar}dist_files in \ + */*) $(MKDIR_P) `echo "${_dollar}dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*${_dollar},,' | \ + sort -u` ;; \ + esac; \ + for file in ${_dollar}dist_files; do \ + if test -f ${_dollar}file || test -d ${_dollar}file; then d=.; else d=$(srcdir); fi; \ + if test -d ${_dollar}d/${_dollar}file; then \ + dir=`echo "/${_dollar}file" | sed -e 's,/[^/]*${_dollar},,'`; \ + if test -d $(srcdir)/${_dollar}file && test ${_dollar}d != $(srcdir); then \ + cp -pR $(srcdir)/${_dollar}file $(distdir)${_dollar}dir || exit 1; \ + fi; \ + cp -pR ${_dollar}d/${_dollar}file $(distdir)${_dollar}dir || exit 1; \ + else \ + test -f $(distdir)/${_dollar}file \ + || cp -p ${_dollar}d/${_dollar}file $(distdir)/${_dollar}file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in ${_dollar}list; do \ + if test "${_dollar}subdir" = .; then :; else \ + test -d "$(distdir)/${_dollar}subdir" \ + || $(MKDIR_P) "$(distdir)/${_dollar}subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd ${_dollar}subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="${_dollar}top_distdir" \ + distdir="${_dollar}distdir/${_dollar}subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/adm_local/unix/config_files/Makefile.am b/data/templates/PythonComponent/adm_local/unix/config_files/Makefile.am new file mode 100755 index 0000000..7ab738e --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/config_files/Makefile.am @@ -0,0 +1,23 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +dist_admlocalm4_DATA = \ + check_:sat:{PYCMP}.m4 diff --git a/data/templates/PythonComponent/adm_local/unix/config_files/Makefile.in b/data/templates/PythonComponent/adm_local/unix/config_files/Makefile.in new file mode 100755 index 0000000..b0997b5 --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/config_files/Makefile.in @@ -0,0 +1,572 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(dist_admlocalm4_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am \ + config.guess config.sub install-sh ltmain.sh missing +subdir = adm_local/unix/config_files +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(admlocalm4dir)" +dist_admlocalm4DATA_INSTALL = $(INSTALL_DATA) +DATA = $(dist_admlocalm4_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + +dist_admlocalm4_DATA = \ + check_:sat:{PYCMP}.m4 + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu adm_local/unix/config_files/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu adm_local/unix/config_files/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-dist_admlocalm4DATA: $(dist_admlocalm4_DATA) + @$(NORMAL_INSTALL) + test -z "$(admlocalm4dir)" || $(MKDIR_P) "$(DESTDIR)$(admlocalm4dir)" + @list='$(dist_admlocalm4_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_admlocalm4DATA_INSTALL) '$$d$$p' '$(DESTDIR)$(admlocalm4dir)/$$f'"; \ + $(dist_admlocalm4DATA_INSTALL) "$$d$$p" "$(DESTDIR)$(admlocalm4dir)/$$f"; \ + done + +uninstall-dist_admlocalm4DATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_admlocalm4_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(admlocalm4dir)/$$f'"; \ + rm -f "$(DESTDIR)$(admlocalm4dir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(admlocalm4dir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-dist_admlocalm4DATA + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dist_admlocalm4DATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dist_admlocalm4DATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-dist_admlocalm4DATA + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/adm_local/unix/config_files/check_PYCMP.m4 b/data/templates/PythonComponent/adm_local/unix/config_files/check_PYCMP.m4 new file mode 100755 index 0000000..80160d7 --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/config_files/check_PYCMP.m4 @@ -0,0 +1,75 @@ +dnl Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +dnl +dnl Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +dnl CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +dnl +dnl This library is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU Lesser General Public +dnl License as published by the Free Software Foundation; either +dnl version 2.1 of the License. +dnl +dnl This library is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl Lesser General Public License for more details. +dnl +dnl You should have received a copy of the GNU Lesser General Public +dnl License along with this library; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +dnl +dnl See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +dnl + +# Check availability of :sat:{PYCMP} binary distribution +# +# Author : Marc Tajchman (CEA, 2002) +#------------------------------------------------------------ + +AC_DEFUN([CHECK_:sat:{PYCMP}],[ + +AC_CHECKING(for :sat:{PYCMP}) + +:sat:{PYCMP}_ok=no + +AC_ARG_WITH(:sat:{PYCMP}, + --with-:sat:{PYCMP_minus}=DIR root directory path of :sat:{PYCMP} installation, + :sat:{PYCMP}_DIR="$withval",:sat:{PYCMP}_DIR="") + +if test "x$:sat:{PYCMP}_DIR" = "x" ; then + +# no --with-:sat:{PYCMP_minus} option used + + if test "x$:sat:{PYCMP}_ROOT_DIR" != "x" ; then + + # :sat:{PYCMP}_ROOT_DIR environment variable defined + :sat:{PYCMP}_DIR=$:sat:{PYCMP}_ROOT_DIR + + else + + # search :sat:{PYCMP} binaries in PATH variable + AC_PATH_PROG(TEMP, :sat:{PYCMP}GUI.py) + if test "x$TEMP" != "x" ; then + :sat:{PYCMP}_BIN_DIR=`dirname $TEMP` + :sat:{PYCMP}_DIR=`dirname $:sat:{PYCMP}_BIN_DIR` + fi + + fi +# +fi + +if test -f ${:sat:{PYCMP}_DIR}/bin/salome/:sat:{PYCMP}GUI.py ; then + :sat:{PYCMP}_ok=yes + AC_MSG_RESULT(Using :sat:{PYCMP} distribution in ${:sat:{PYCMP}_DIR}) + + if test "x$:sat:{PYCMP}_ROOT_DIR" == "x" ; then + :sat:{PYCMP}_ROOT_DIR=${:sat:{PYCMP}_DIR} + fi + AC_SUBST(:sat:{PYCMP}_ROOT_DIR) +else + AC_MSG_WARN("Cannot find compiled $:sat:{PYCMP} distribution") +fi + +AC_MSG_RESULT(for :sat:{PYCMP}: :sat:{PYCMP}_ok) + +])dnl + diff --git a/data/templates/PythonComponent/adm_local/unix/config_files/config.guess b/data/templates/PythonComponent/adm_local/unix/config_files/config.guess new file mode 100755 index 0000000..51daccf --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/config_files/config.guess @@ -0,0 +1,1471 @@ +#! /bin/bash +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + +timestamp='2005-12-13' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerppc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[45]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + i*:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + x86:Interix*:[345]*) + echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' + exit ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + arm*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu + exit ;; + crisv32:Linux:*:*) + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) + echo frv-unknown-linux-gnu + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + mips:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips + #undef mipsel + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mipsel + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef mips64 + #undef mips64el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=mips64el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=mips64 + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/bash | grep ld.so.1 >/dev/null + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-gnu ;; + PA8*) echo hppa2.0-unknown-linux-gnu ;; + *) echo hppa-unknown-linux-gnu ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) + echo x86_64-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. cd to the root directory to prevent + # problems with other programs or directories called `ld' in the path. + # Set LC_ALL=C to ensure ld outputs messages in English. + ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ + | sed -ne '/supported targets:/!d + s/[ ][ ]*/ /g + s/.*supported targets: *// + s/ .*// + p'` + case "$ld_supported_targets" in + elf32-i386) + TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" + ;; + a.out-i386-linux) + echo "${UNAME_MACHINE}-pc-linux-gnuaout" + exit ;; + coff-i386) + echo "${UNAME_MACHINE}-pc-linux-gnucoff" + exit ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. + echo "${UNAME_MACHINE}-pc-linux-gnuoldld" + exit ;; + esac + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + #ifdef __ELF__ + # ifdef __GLIBC__ + # if __GLIBC__ >= 2 + LIBC=gnu + # else + LIBC=gnulibc1 + # endif + # else + LIBC=gnulibc1 + # endif + #else + #if defined(__INTEL_COMPILER) || defined(__PGI) + LIBC=gnu + #else + LIBC=gnuaout + #endif + #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^LIBC/{s: ::g;p;}'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i386. + echo i386-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NSE-?:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/data/templates/PythonComponent/adm_local/unix/config_files/config.sub b/data/templates/PythonComponent/adm_local/unix/config_files/config.sub new file mode 100755 index 0000000..74536be --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/config_files/config.sub @@ -0,0 +1,1602 @@ +#! /bin/bash +# Configuration validation subroutine script. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + +timestamp='2005-12-11' + +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + + +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 +Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray) + os= + basic_machine=$1 + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | bfin \ + | c4x | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64vr | mips64vrel \ + | mips64orion | mips64orionel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | mt \ + | msp430 \ + | ns16k | ns32k \ + | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | pyramid \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b \ + | spu | strongarm \ + | tahoe | thumb | tic4x | tic80 | tron \ + | v850 | v850e \ + | we32k \ + | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ + | z8k) + basic_machine=$basic_machine-unknown + ;; + m32c) + basic_machine=$basic_machine-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12) + # Motorola 68HC11/12. + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | pyramid-* \ + | romp-* | rs6000-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | tahoe-* | thumb-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tron-* \ + | v850-* | v850e-* | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | xstormy16-* | xtensa-* \ + | ymp-* \ + | z8k-*) + ;; + m32c-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + mingw32) + basic_machine=i386-pc + os=-mingw32 + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tic54x | c54x*) + basic_machine=tic54x-unknown + os=-coff + ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + m68*-cisco) + os=-aout + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/data/templates/PythonComponent/adm_local/unix/config_files/install-sh b/data/templates/PythonComponent/adm_local/unix/config_files/install-sh new file mode 100755 index 0000000..d824555 --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/config_files/install-sh @@ -0,0 +1,507 @@ +#!/bin/bash +# install - install a program, script, or datafile + +scriptversion=2006-10-14.15 + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +posix_glob= +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chmodcmd=$chmodprog +chowncmd= +chgrpcmd= +stripcmd= +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src= +dst= +dir_arg= +dstarg= +no_target_directory= + +usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: +-c (ignored) +-d create directories instead of installing files. +-g GROUP $chgrpprog installed files to GROUP. +-m MODE $chmodprog installed files to MODE. +-o USER $chownprog installed files to USER. +-s $stripprog installed files. +-t DIRECTORY install into DIRECTORY. +-T report an error if DSTFILE is a directory. +--help display this help and exit. +--version display version info and exit. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + shift + shift + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -s) stripcmd=$stripprog + shift + continue;; + + -t) dstarg=$2 + shift + shift + continue;; + + -T) no_target_directory=true + shift + continue;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac +done + +if test $# -ne 0 && test -z "$dir_arg$dstarg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dstarg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dstarg" + shift # fnord + fi + shift # arg + dstarg=$arg + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call `install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names starting with `-'. + case $src in + -*) src=./$src ;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dstarg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + + dst=$dstarg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst ;; + esac + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dstarg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix=/ ;; + -*) prefix=./ ;; + *) prefix= ;; + esac + + case $posix_glob in + '') + if (set -f) 2>/dev/null; then + posix_glob=true + else + posix_glob=false + fi ;; + esac + + oIFS=$IFS + IFS=/ + $posix_glob && set -f + set fnord $dstdir + shift + $posix_glob && set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ + && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ + && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ + && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # Now rename the file to the real destination. + { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \ + || { + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + if test -f "$dst"; then + $doit $rmcmd -f "$dst" 2>/dev/null \ + || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \ + && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\ + || { + echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + else + : + fi + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + } || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/data/templates/PythonComponent/adm_local/unix/config_files/ltmain.sh b/data/templates/PythonComponent/adm_local/unix/config_files/ltmain.sh new file mode 100644 index 0000000..4ef9231 --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/config_files/ltmain.sh @@ -0,0 +1,6933 @@ +# ltmain.sh - Provide generalized library-building support services. +# NOTE: Changing this file will not affect anything until you rerun configure. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +basename="s,^.*/,,g" + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + +# define SED for historic ltconfig's generated by Libtool 1.3 +test -z "$SED" && SED=sed + +# The name of this program: +progname=`echo "$progpath" | $SED $basename` +modename="$progname" + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 + +PROGRAM=ltmain.sh +PACKAGE=libtool +VERSION=1.5.22 +TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" + +# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi + +# Check that we have a working $echo. +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then + # Yippee, $echo works! + : +else + # Restart under the correct shell, and then maybe $echo will work. + exec $SHELL "$progpath" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE +fi + +# Global variables. +mode=$default_mode +nonopt= +prev= +prevopt= +run= +show="$echo" +show_help= +execute_dlfiles= +duplicate_deps=no +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +##################################### +# Shell function definitions: +# This seems to be the best place for them + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $mkdir "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || { + $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 + exit $EXIT_FAILURE + } + fi + + $echo "X$my_tmpdir" | $Xsed +} + + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +func_win32_libid () +{ + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ + $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $echo $win32_libid_type +} + + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case "$@ " in + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE +# else +# $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + + $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" + $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 + exit $EXIT_FAILURE + fi +} + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + extracted_serial=`expr $extracted_serial + 1` + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then + exit $exit_status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + ${rm}r unfat-$$ + cd "$darwin_orig_dir" + else + cd "$darwin_orig_dir" + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + fi # $run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + func_extract_archives_result="$my_oldobjs" +} +# End of Shell function definitions +##################################### + +# Darwin sucks +#eval std_shrext=\"$shrext_cmds\" + +# And fixing for Darwin sucks for everybody else +if test -z "$shrext_cmds" && test -n "$shrext"; then + eval shrext_cmds=\"$shrext\" +fi + +eval std_shrext=\"$shrext_cmds\" + +# This value is evaluated to 32768, so place it here as a compatilibity hack +# because older libtool.m4 didn't define this variable +test -z "$max_cmd_len" && max_cmd_len=32768 + +disable_libs=no + +# Parse our command line options once, thoroughly. +while test "$#" -gt 0 +do + arg="$1" + shift + + case $arg in + -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; + *) optarg= ;; + esac + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + execute_dlfiles) + execute_dlfiles="$execute_dlfiles $arg" + ;; + tag) + tagname="$arg" + preserve_args="${preserve_args}=$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + $echo "$progname: invalid tag name: $tagname" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" + else + $echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; + *) + eval "$prev=\$arg" + ;; + esac + + prev= + prevopt= + continue + fi + + # Have we seen a non-optional argument yet? + case $arg in + --help) + show_help=yes + ;; + + --version) + $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" + $echo + $echo "Copyright (C) 2005 Free Software Foundation, Inc." + $echo "This is free software; see the source for copying conditions. There is NO" + $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + exit $? + ;; + + --config) + ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath + # Now print the configurations for the tags. + for tagname in $taglist; do + ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" + done + exit $? + ;; + + --debug) + $echo "$progname: enabling shell trace mode" + set -x + preserve_args="$preserve_args $arg" + ;; + + --dry-run | -n) + run=: + ;; + + --features) + $echo "host: $host" + if test "$build_libtool_libs" = yes; then + $echo "enable shared libraries" + else + $echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + $echo "enable static libraries" + else + $echo "disable static libraries" + fi + exit $? + ;; + + --finish) mode="finish" ;; + + --mode) prevopt="--mode" prev=mode ;; + --mode=*) mode="$optarg" ;; + + --preserve-dup-deps) duplicate_deps="yes" ;; + + --quiet | --silent) + show=: + preserve_args="$preserve_args $arg" + ;; + + --tag) + prevopt="--tag" + prev=tag + preserve_args="$preserve_args --tag" + ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + preserve_args="$preserve_args --tag" + ;; + + -dlopen) + prevopt="-dlopen" + prev=execute_dlfiles + ;; + + -*) + $echo "$modename: unrecognized option \`$arg'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + + *) + nonopt="$arg" + break + ;; + esac +done + +if test -n "$prevopt"; then + $echo "$modename: option \`$prevopt' requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE +fi + +case $disable_libs in +no) + ;; +shared) + build_libtool_libs=no + build_old_libs=yes + ;; +static) + build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + ;; +esac + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +if test -z "$show_help"; then + + # Infer the operation mode. + if test -z "$mode"; then + $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 + $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 + case $nonopt in + *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) + mode=link + for arg + do + case $arg in + -c) + mode=compile + break + ;; + esac + done + ;; + *db | *dbx | *strace | *truss) + mode=execute + ;; + *install*|cp|mv) + mode=install + ;; + *rm) + mode=uninstall + ;; + *) + # If we have no mode, but dlfiles were specified, then do execute mode. + test -n "$execute_dlfiles" && mode=execute + + # Just use the default operation mode. + if test -z "$mode"; then + if test -n "$nonopt"; then + $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 + else + $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 + fi + fi + ;; + esac + fi + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$execute_dlfiles" && test "$mode" != execute; then + $echo "$modename: unrecognized option \`-dlopen'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$modename --help --mode=$mode' for more information." + + # These modes are in order of execution frequency so that they run quickly. + case $mode in + # libtool compile mode + compile) + modename="$modename: compile" + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + if test -n "$libobj" ; then + $echo "$modename: you cannot specify \`-o' more than once" 1>&2 + exit $EXIT_FAILURE + fi + arg_mode=target + continue + ;; + + -static | -prefer-pic | -prefer-non-pic) + later="$later $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + lastarg="$lastarg $arg" + done + IFS="$save_ifs" + lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` + + # Add the arguments to base_compile. + base_compile="$base_compile $lastarg" + continue + ;; + + * ) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + + case $lastarg in + # Double-quote args containing other shell metacharacters. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, and some SunOS ksh mistreat backslash-escaping + # in scan sets (worked around with variable expansion), + # and furthermore cannot handle '|' '&' '(' ')' in scan sets + # at all, so we specify them separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + lastarg="\"$lastarg\"" + ;; + esac + + base_compile="$base_compile $lastarg" + done # for arg + + case $arg_mode in + arg) + $echo "$modename: you must specify an argument for -Xcompile" + exit $EXIT_FAILURE + ;; + target) + $echo "$modename: you must specify a target with \`-o'" 1>&2 + exit $EXIT_FAILURE + ;; + *) + # Get the name of the library object. + [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + xform='[cCFSifmso]' + case $libobj in + *.ada) xform=ada ;; + *.adb) xform=adb ;; + *.ads) xform=ads ;; + *.asm) xform=asm ;; + *.c++) xform=c++ ;; + *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; + *.cpp) xform=cpp ;; + *.cxx) xform=cxx ;; + *.f90) xform=f90 ;; + *.for) xform=for ;; + *.java) xform=java ;; + *.obj) xform=obj ;; + esac + + libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` + + case $libobj in + *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; + *) + $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` + case $qlibobj in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qlibobj="\"$qlibobj\"" ;; + esac + test "X$libobj" != "X$qlibobj" \ + && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + + if test -z "$base_compile"; then + $echo "$modename: you must specify a compilation command" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + $run $rm $removelist + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + removelist="$removelist $output_obj $lockfile" + trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $run ln "$progpath" "$lockfile" 2>/dev/null; do + $show "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $echo "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + $echo "$srcfile" > "$lockfile" + fi + + if test -n "$fix_srcfile_path"; then + eval srcfile=\"$fix_srcfile_path\" + fi + qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` + case $qsrcfile in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qsrcfile="\"$qsrcfile\"" ;; + esac + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + $show "$mv $output_obj $lobj" + if $run $mv $output_obj $lobj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the PIC object to the libtool object file. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then + $echo "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $run $rm $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + $show "$mv $output_obj $obj" + if $run $mv $output_obj $obj; then : + else + error=$? + $run $rm $removelist + exit $error + fi + fi + + # Append the name of the non-PIC object the libtool object file. + # Only append if the libtool object file exists. + test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test + ;; + *) qarg=$arg ;; + esac + libtool_args="$libtool_args $qarg" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + compile_command="$compile_command @OUTPUT@" + finalize_command="$finalize_command @OUTPUT@" + ;; + esac + + case $prev in + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + compile_command="$compile_command @SYMFILE@" + finalize_command="$finalize_command @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + dlfiles="$dlfiles $arg" + else + dlprefiles="$dlprefiles $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + if test ! -f "$arg"; then + $echo "$modename: symbol file \`$arg' does not exist" + exit $EXIT_FAILURE + fi + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do +# moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit $EXIT_FAILURE + fi + arg=$save_arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) rpath="$rpath $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) xrpath="$xrpath $arg" ;; + esac + fi + prev= + continue + ;; + xcompiler) + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + xlinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $wl$qarg" + prev= + compile_command="$compile_command $wl$qarg" + finalize_command="$finalize_command $wl$qarg" + continue + ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + darwin_framework|darwin_framework_skip) + test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + prev= + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + compile_command="$compile_command $link_static_flag" + finalize_command="$finalize_command $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 + continue + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: more than one -exported-symbols argument is not allowed" + exit $EXIT_FAILURE + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework|-arch|-isysroot) + case " $CC " in + *" ${arg} ${1} "* | *" ${arg} ${1} "*) + prev=darwin_framework_skip ;; + *) compiler_flags="$compiler_flags $arg" + prev=darwin_framework ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + ;; + esac + continue + ;; + + -L*) + dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + notinst_path="$notinst_path $dir" + fi + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "*) ;; + *) + deplibs="$deplibs -L$dir" + lib_search_path="$lib_search_path $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + *) dllsearchpath="$dllsearchpath:$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + deplibs="$deplibs -framework System" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + deplibs="$deplibs $arg" + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + -model) + compile_command="$compile_command $arg" + compiler_flags="$compiler_flags $arg" + finalize_command="$finalize_command $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m* pass through architecture-specific compiler args for GCC + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -pg pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ + -t[45]*|-txscale*|@*) + + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + # The PATH hackery in wrapper scripts is required on Windows + # in order for the loader to find any dlls it needs. + $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 + $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + $echo "$modename: only absolute run-paths are allowed" 1>&2 + exit $EXIT_FAILURE + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -Wc,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Wl,*) + args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + case $flag in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + flag="\"$flag\"" + ;; + esac + arg="$arg $wl$flag" + compiler_flags="$compiler_flags $wl$flag" + linker_flags="$linker_flags $flag" + done + IFS="$save_ifs" + arg=`$echo "X$arg" | $Xsed -e "s/^ //"` + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # Some other compiler flag. + -* | +*) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + + *.$objext) + # A standard object. + objs="$objs $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + ;; + + *.$libext) + # An archive. + deplibs="$deplibs $arg" + old_deplibs="$old_deplibs $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + dlfiles="$dlfiles $arg" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + dlprefiles="$dlprefiles $arg" + prev= + else + deplibs="$deplibs $arg" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + done # argument parsing loop + + if test -n "$prev"; then + $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` + if test "X$output_objdir" = "X$output"; then + output_objdir="$objdir" + else + output_objdir="$output_objdir/$objdir" + fi + # Create the object directory. + if test ! -d "$output_objdir"; then + $show "$mkdir $output_objdir" + $run $mkdir $output_objdir + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then + exit $exit_status + fi + fi + + # Determine the type of output + case $output in + "") + $echo "$modename: you must specify an output file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplications in $postdeps and $predeps + duplicate_compiler_generated_deps=yes + ;; + *) + duplicate_compiler_generated_deps=$duplicate_deps + ;; + esac + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if test "X$duplicate_deps" = "Xyes" ; then + case "$libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + libs="$libs $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + case $linkmode in + lib) + passes="conv link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + for pass in $passes; do + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + esac + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + compiler_flags="$compiler_flags $deplib" + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 + continue + fi + name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` + for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if (${SED} -e '2q' $lib | + grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + library_names= + old_library= + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` + ;; + *) + $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) xrpath="$xrpath $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) lib="$deplib" ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + if eval $echo \"$deplib\" 2>/dev/null \ + | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + $echo + $echo "*** Warning: Trying to link with static lib archive $deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because the file extensions .$libext of this argument makes me believe" + $echo "*** that it is just a static archive that I should not used here." + else + $echo + $echo "*** Warning: Linking the shared library $output against the" + $echo "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + newdlprefiles="$newdlprefiles $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + newdlfiles="$newdlfiles $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + if test "$found" = yes || test -f "$lib"; then : + else + $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 + exit $EXIT_FAILURE + fi + + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && dlfiles="$dlfiles $dlopen" + test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # It is a libtool convenience library, so add in its objects. + convenience="$convenience $ladir/$objdir/$old_library" + old_convenience="$old_convenience $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + $echo "$modename: \`$lib' is not a convenience library" 1>&2 + exit $EXIT_FAILURE + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + for l in $old_library $library_names; do + linklib="$l" + done + if test -z "$linklib"; then + $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + dlprefiles="$dlprefiles $lib $dependency_libs" + else + newdlfiles="$newdlfiles $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 + $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 + abs_ladir="$ladir" + fi + ;; + esac + laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + $echo "$modename: warning: library \`$lib' was moved." 1>&2 + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$libdir" + absdir="$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + notinst_path="$notinst_path $abs_ladir" + fi + fi # $installed = yes + name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir"; then + $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 + exit $EXIT_FAILURE + fi + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + newdlprefiles="$newdlprefiles $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + newdlprefiles="$newdlprefiles $dir/$dlname" + else + newdlprefiles="$newdlprefiles $dir/$linklib" + fi + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + newlib_search_path="$newlib_search_path $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath " in + *" $dir "*) ;; + *" $absdir "*) ;; + *) temp_rpath="$temp_rpath $absdir" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes ; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + if test "$installed" = no; then + notinst_deplibs="$notinst_deplibs $lib" + need_relink=yes + fi + # This is a shared library + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then + $echo + if test "$linkmode" = prog; then + $echo "*** Warning: Linking the executable $output against the loadable module" + else + $echo "*** Warning: Linking the shared library $output against the loadable module" + fi + $echo "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + realname="$2" + shift; shift + libname=`eval \\$echo \"$libname_spec\"` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw*) + major=`expr $current - $age` + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + soname=`$echo $soroot | ${SED} -e 's/^.*\///'` + newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + $show "extracting exported symbol list from \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$extract_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + $show "generating import library for \`$soname'" + save_ifs="$IFS"; IFS='~' + cmds=$old_archive_from_expsyms_cmds + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | + $EGREP ": [^:]* bundle" >/dev/null ; then + $echo "** Warning, lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $echo + $echo "** And there doesn't seem to be a static archive available" + $echo "** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + $echo "$modename: configuration error: unsupported hardcode properties" + exit $EXIT_FAILURE + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && \ + test "$hardcode_minus_L" != yes && \ + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + $echo + $echo "*** Warning: This system can not link to static lib archive $lib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + $echo "*** But as you try to build a module library, libtool will still create " + $echo "*** a static module, that should work as long as the dlopening application" + $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) xrpath="$xrpath $temp_xrpath";; + esac;; + *) temp_deplibs="$temp_deplibs $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + newlib_search_path="$newlib_search_path $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + if test "X$duplicate_deps" = "Xyes" ; then + case "$tmp_libs " in + *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; + esac + fi + tmp_libs="$tmp_libs $deplib" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + case $deplib in + -L*) path="$deplib" ;; + *.la) + dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$deplib" && dir="." + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 + absdir="$dir" + fi + ;; + esac + if grep "^installed=no" $deplib > /dev/null; then + path="$absdir/$objdir" + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + if test "$absdir" != "$libdir"; then + $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 + fi + path="$absdir" + fi + depdepl= + case $host in + *-*-darwin*) + # we do not want to link against static libs, + # but need to link against shared + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$path/$depdepl" ; then + depdepl="$path/$depdepl" + fi + # do not add paths which are already there + case " $newlib_search_path " in + *" $path "*) ;; + *) newlib_search_path="$newlib_search_path $path";; + esac + fi + path="" + ;; + *) + path="-L$path" + ;; + esac + ;; + -l*) + case $host in + *-*-darwin*) + # Again, we only want to link against shared libraries + eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` + for tmp in $newlib_search_path ; do + if test -f "$tmp/lib$tmp_libs.dylib" ; then + eval depdepl="$tmp/lib$tmp_libs.dylib" + break + fi + done + path="" + ;; + *) continue ;; + esac + ;; + *) continue ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + case " $deplibs " in + *" $depdepl "*) ;; + *) deplibs="$depdepl $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) lib_search_path="$lib_search_path $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + ;; + *) tmp_libs="$tmp_libs $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + tmp_libs="$tmp_libs $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 + fi + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 + fi + + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 + fi + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + objs="$objs$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + if test "$module" = no; then + $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 + exit $EXIT_FAILURE + else + $echo + $echo "*** Warning: Linking the shared library $output against the non-libtool" + $echo "*** objects $objs is not portable!" + libobjs="$libobjs $objs" + fi + fi + + if test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 + fi + + set dummy $rpath + if test "$#" -gt 2; then + $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 + fi + install_libdir="$2" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 + fi + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + IFS="$save_ifs" + + if test -n "$8"; then + $echo "$modename: too many parameters to \`-version-info'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$2" + number_minor="$3" + number_revision="$4" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + darwin|linux|osf|windows|none) + current=`expr $number_major + $number_minor` + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + current=`expr $number_major + $number_minor - 1` + age="$number_minor" + revision="$number_minor" + ;; + esac + ;; + no) + current="$2" + revision="$3" + age="$4" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + if test "$age" -gt "$current"; then + $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 + $echo "$modename: \`$vinfo' is not valid version information" 1>&2 + exit $EXIT_FAILURE + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + minor_current=`expr $current + 1` + verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current"; + ;; + + irix | nonstopux) + major=`expr $current - $age + 1` + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + iface=`expr $revision - $loop` + loop=`expr $loop - 1` + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) + major=.`expr $current - $age` + versuffix="$major.$age.$revision" + ;; + + osf) + major=.`expr $current - $age` + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + iface=`expr $current - $loop` + loop=`expr $loop - 1` + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + verstring="$verstring:${current}.0" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + major=`expr $current - $age` + versuffix="-$major" + ;; + + *) + $echo "$modename: unknown library version type \`$version_type'" 1>&2 + $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 + exit $EXIT_FAILURE + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + fi + + if test "$mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$echo "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + removelist="$removelist $p" + ;; + *) ;; + esac + done + if test -n "$removelist"; then + $show "${rm}r $removelist" + $run ${rm}r $removelist + fi + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + oldlibs="$oldlibs $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. +# for path in $notinst_path; do +# lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` +# deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` +# dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` +# done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + temp_xrpath="$temp_xrpath -R$libdir" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) dlfiles="$dlfiles $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) dlprefiles="$dlprefiles $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + deplibs="$deplibs -framework System" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + deplibs="$deplibs -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $rm conftest.c + cat > conftest.c </dev/null` + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null \ + | grep " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ + | ${SED} 10q \ + | $EGREP "$file_magic_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for file magic test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a file magic. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method + match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` + for a_deplib in $deplibs; do + name=`expr $a_deplib : '-l\(.*\)'` + # If $name is empty we are operating on a -L argument. + if test -n "$name" && test "$name" != "0"; then + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval \\$echo \"$libname_spec\"` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval $echo \"$potent_lib\" 2>/dev/null \ + | ${SED} 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + newdeplibs="$newdeplibs $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + $echo + $echo "*** Warning: linker path does not have real file for library $a_deplib." + $echo "*** I have the capability to make that library automatically link in when" + $echo "*** you link to this library. But I can only do this if you have a" + $echo "*** shared version of the library, which you do not appear to have" + $echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $echo "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $echo "*** with $libname and none of the candidates passed a file format test" + $echo "*** using a regex pattern. Last file checked: $potlib" + fi + fi + else + # Add a -L argument. + newdeplibs="$newdeplibs $a_deplib" + fi + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ + -e 's/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` + done + fi + if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ + | grep . >/dev/null; then + $echo + if test "X$deplibs_check_method" = "Xnone"; then + $echo "*** Warning: inter-library dependencies are not supported in this platform." + else + $echo "*** Warning: inter-library dependencies are not known to be supported." + fi + $echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + fi + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + $echo + $echo "*** Warning: libtool could not satisfy all declared inter-library" + $echo "*** dependencies of module $libname. Therefore, libtool will create" + $echo "*** a static module, that should work as long as the dlopening" + $echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + $echo + $echo "*** However, this would only work if libtool was able to extract symbol" + $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + $echo "*** not find such a program. So, this module is probably useless." + $echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + $echo "*** The inter-library dependencies that have been dropped here will be" + $echo "*** automatically added whenever a program is linked with this library" + $echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + $echo + $echo "*** Since this library must not contain undefined symbols," + $echo "*** because either the platform does not support them or" + $echo "*** it was explicitly requested with -no-undefined," + $echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + dep_rpath="$dep_rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + if test -n "$hardcode_libdir_flag_spec_ld"; then + eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" + else + eval dep_rpath=\"$hardcode_libdir_flag_spec\" + fi + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + realname="$2" + shift; shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + linknames="$linknames $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + if len=`expr "X$cmd" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + $show "$cmd" + $run eval "$cmd" || exit $? + skipped_export=false + else + # The command line is too long to execute in one step. + $show "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex"; then + $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" + $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + $show "$mv \"${export_symbols}T\" \"$export_symbols\"" + $run eval '$mv "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' + fi + + tmp_deplibs= + inst_prefix_arg= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + if test -n "$inst_prefix_dir" && (echo "$test_deplib" | grep -- "$inst_prefix_dir" >/dev/null); then + inst_prefix_arg="$inst_prefix_arg $test_deplib" + else + tmp_deplibs="$tmp_deplibs $test_deplib" + fi + ;; + esac + done + deplibs="$tmp_deplibs" + if test -n "$inst_prefix_arg"; then + deplibs="$inst_prefix_arg $deplibs" + fi + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + else + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + libobjs="$libobjs $func_extract_archives_result" + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + linker_flags="$linker_flags $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise. + $echo "creating reloadable object files..." + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + output_la=`$echo "X$output" | $Xsed -e "$basename"` + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + delfiles= + last_robj= + k=1 + output=$output_objdir/$output_la-${k}.$objext + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + eval test_cmds=\"$reload_cmds $objlist $last_robj\" + if test "X$objlist" = X || + { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; }; then + objlist="$objlist $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + else + # All subsequent reloadable object files will link in + # the last one created. + eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + k=`expr $k + 1` + output=$output_objdir/$output_la-${k}.$objext + objlist=$obj + len=1 + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + + if ${skipped_export-false}; then + $show "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $run $rm $export_symbols + libobjs=$output + # Append the command to create the export file. + eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" + fi + + # Set up a command to remove the reloadable object files + # after they are used. + i=0 + while test "$i" -lt "$k" + do + i=`expr $i + 1` + delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" + done + + $echo "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + + # Append the command to remove the reloadable object files + # to the just-reset $cmds. + eval cmds=\"\$cmds~\$rm $delfiles\" + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" + $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $? + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 + fi + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 + fi + + if test -n "$rpath"; then + $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 + fi + + if test -n "$xrpath"; then + $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 + fi + + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 + fi + + case $output in + *.lo) + if test -n "$objs$old_deplibs"; then + $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 + exit $EXIT_FAILURE + fi + libobj="$output" + obj=`$echo "X$output" | $Xsed -e "$lo2o"` + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $run $rm $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + generated="$generated $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + cmds=$reload_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $run eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + cmds=$reload_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + fi + + if test -n "$gentop"; then + $show "${rm}r $gentop" + $run ${rm}r $gentop + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; + esac + if test -n "$vinfo"; then + $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 + fi + + if test -n "$release"; then + $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 + fi + + if test "$preload" = yes; then + if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && + test "$dlopen_self_static" = unknown; then + $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." + fi + fi + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` + ;; + esac + + case $host in + *darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + if test "$tagname" = CXX ; then + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + fi + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + compile_command="$compile_command $compile_deplibs" + finalize_command="$finalize_command $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) perm_rpath="$perm_rpath $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + *) dllsearchpath="$dllsearchpath:$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + rpath="$rpath $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + fi + + dlsyms= + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + dlsyms="${outputname}S.c" + else + $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 + fi + fi + + if test -n "$dlsyms"; then + case $dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${outputname}.nm" + + $show "$rm $nlist ${nlist}S ${nlist}T" + $run $rm "$nlist" "${nlist}S" "${nlist}T" + + # Parse the name list into a source file. + $show "creating $output_objdir/$dlsyms" + + test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ +/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ +/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +/* Prevent the only kind of declaration conflicts we can make. */ +#define lt_preloaded_symbols some_other_symbol + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + $show "generating symbol list for \`$output'" + + test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + for arg in $progfiles; do + $show "extracting global C symbols from \`$arg'" + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + if test -n "$export_symbols_regex"; then + $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + $run eval '$mv "$nlist"T "$nlist"' + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $run $rm $export_symbols + $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + else + $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + $run eval 'mv "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + fi + fi + + for arg in $dlprefiles; do + $show "extracting global C symbols from \`$arg'" + name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` + $run eval '$echo ": $name " >> "$nlist"' + $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" + done + + if test -z "$run"; then + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $mv "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if grep -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + grep -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' + else + $echo '/* NONE */' >> "$output_objdir/$dlsyms" + fi + + $echo >> "$output_objdir/$dlsyms" "\ + +#undef lt_preloaded_symbols + +#if defined (__STDC__) && __STDC__ +# define lt_ptr void * +#else +# define lt_ptr char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +" + + case $host in + *cygwin* | *mingw* ) + $echo >> "$output_objdir/$dlsyms" "\ +/* DATA imports from DLLs on WIN32 can't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs */ +struct { +" + ;; + * ) + $echo >> "$output_objdir/$dlsyms" "\ +const struct { +" + ;; + esac + + + $echo >> "$output_objdir/$dlsyms" "\ + const char *name; + lt_ptr address; +} +lt_preloaded_symbols[] = +{\ +" + + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" + + $echo >> "$output_objdir/$dlsyms" "\ + {0, (lt_ptr) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + fi + + pic_flag_for_symtable= + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; + esac;; + *-*-hpux*) + case "$compile_command " in + *" -static "*) ;; + *) pic_flag_for_symtable=" $pic_flag";; + esac + esac + + # Now compile the dynamic symbol file. + $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" + $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? + + # Clean up the generated files. + $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" + $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" + + # Transform the symbol file into the correct name. + case $host in + *cygwin* | *mingw* ) + if test -f "$output_objdir/${outputname}.def" ; then + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` + else + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + fi + ;; + * ) + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` + ;; + esac + ;; + *) + $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 + exit $EXIT_FAILURE + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` + finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` + fi + + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + # Replace the output file specification. + compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + $show "$link_command" + $run eval "$link_command" + exit_status=$? + + # Delete the generated files. + if test -n "$dlsyms"; then + $show "$rm $output_objdir/${outputname}S.${objext}" + $run $rm "$output_objdir/${outputname}S.${objext}" + fi + + exit $exit_status + fi + + if test -n "$shlibpath_var"; then + # We should set the shlibpath_var + rpath= + for dir in $temp_rpath; do + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) + # Absolute path. + rpath="$rpath$dir:" + ;; + *) + # Relative path: add a thisdir entry. + rpath="$rpath\$thisdir/$dir:" + ;; + esac + done + temp_rpath="$rpath" + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + rpath="$rpath$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + rpath="$rpath$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $run $rm $output + # Link the executable and exit + $show "$link_command" + $run eval "$link_command" || exit $? + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 + $echo "$modename: \`$output' will be relinked during installation" 1>&2 + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname + + $show "$link_command" + $run eval "$link_command" || exit $? + + # Now create the wrapper script. + $show "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` + fi + + # Quote $echo for shipping. + if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then + case $progpath in + [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; + *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; + esac + qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` + else + qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` + fi + + # Only actually do things if our run command is non-null. + if test -z "$run"; then + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + output_name=`basename $output` + output_path=`dirname $output` + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $rm $cwrappersource $cwrapper + trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + cat > $cwrappersource <> $cwrappersource<<"EOF" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +/* -DDEBUG is fairly common in CFLAGS. */ +#undef DEBUG +#if defined DEBUGWRAPPER +# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) +#else +# define DEBUG(format, ...) +#endif + +const char *program_name = NULL; + +void * xmalloc (size_t num); +char * xstrdup (const char *string); +const char * base_name (const char *name); +char * find_executable(const char *wrapper); +int check_executable(const char *path); +char * strendzap(char *str, const char *pat); +void lt_fatal (const char *message, ...); + +int +main (int argc, char *argv[]) +{ + char **newargz; + int i; + + program_name = (char *) xstrdup (base_name (argv[0])); + DEBUG("(main) argv[0] : %s\n",argv[0]); + DEBUG("(main) program_name : %s\n",program_name); + newargz = XMALLOC(char *, argc+2); +EOF + + cat >> $cwrappersource <> $cwrappersource <<"EOF" + newargz[1] = find_executable(argv[0]); + if (newargz[1] == NULL) + lt_fatal("Couldn't find %s", argv[0]); + DEBUG("(main) found exe at : %s\n",newargz[1]); + /* we know the script has the same name, without the .exe */ + /* so make sure newargz[1] doesn't end in .exe */ + strendzap(newargz[1],".exe"); + for (i = 1; i < argc; i++) + newargz[i+1] = xstrdup(argv[i]); + newargz[argc+1] = NULL; + + for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" + return 127; +} + +void * +xmalloc (size_t num) +{ + void * p = (void *) malloc (num); + if (!p) + lt_fatal ("Memory exhausted"); + + return p; +} + +char * +xstrdup (const char *string) +{ + return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL +; +} + +const char * +base_name (const char *name) +{ + const char *base; + +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + /* Skip over the disk name in MSDOS pathnames. */ + if (isalpha ((unsigned char)name[0]) && name[1] == ':') + name += 2; +#endif + + for (base = name; *name; name++) + if (IS_DIR_SEPARATOR (*name)) + base = name + 1; + return base; +} + +int +check_executable(const char * path) +{ + struct stat st; + + DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); + if ((!path) || (!*path)) + return 0; + + if ((stat (path, &st) >= 0) && + ( + /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ +#if defined (S_IXOTH) + ((st.st_mode & S_IXOTH) == S_IXOTH) || +#endif +#if defined (S_IXGRP) + ((st.st_mode & S_IXGRP) == S_IXGRP) || +#endif + ((st.st_mode & S_IXUSR) == S_IXUSR)) + ) + return 1; + else + return 0; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise */ +char * +find_executable (const char* wrapper) +{ + int has_slash = 0; + const char* p; + const char* p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char* concat_name; + + DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char* path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char* q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR(*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal ("getcwd failed"); + tmp_len = strlen(tmp); + concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable(concat_name)) + return concat_name; + XFREE(concat_name); + return NULL; +} + +char * +strendzap(char *str, const char *pat) +{ + size_t len, patlen; + + assert(str != NULL); + assert(pat != NULL); + + len = strlen(str); + patlen = strlen(pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp(str, pat) == 0) + *str = '\0'; + } + return str; +} + +static void +lt_error_core (int exit_status, const char * mode, + const char * message, va_list ap) +{ + fprintf (stderr, "%s: %s: ", program_name, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, "FATAL", message, ap); + va_end (ap); +} +EOF + # we should really use a build-platform specific compiler + # here, but OTOH, the wrappers (shell script and this C one) + # are only useful if you want to execute the "real" binary. + # Since the "real" binary is built for $host, then this + # wrapper might as well be built for $host, too. + $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource + ;; + esac + $rm $output + trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 + + $echo > $output "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='${SED} -e 1s/^X//' +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE). +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variable: + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$echo are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + echo=\"$qecho\" + file=\"\$0\" + # Make sure echo works. + if test \"X\$1\" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift + elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then + # Yippee, \$echo works! + : + else + # Restart under the correct shell, and then maybe \$echo will work. + exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} + fi + fi\ +" + $echo >> $output "\ + + # Find the directory that this script lives in. + thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + done + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $echo >> $output "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || \\ + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $mkdir \"\$progdir\" + else + $rm \"\$progdir/\$file\" + fi" + + $echo >> $output "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $echo \"\$relink_command_output\" >&2 + $rm \"\$progdir/\$file\" + exit $EXIT_FAILURE + fi + fi + + $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $rm \"\$progdir/\$program\"; + $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $rm \"\$progdir/\$file\" + fi" + else + $echo >> $output "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $echo >> $output "\ + + if test -f \"\$progdir/\$program\"; then" + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $echo >> $output "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` + + export $shlibpath_var +" + fi + + # fixup the dll searchpath if we need to. + if test -n "$dllsearchpath"; then + $echo >> $output "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + $echo >> $output "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2*) + $echo >> $output "\ + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $echo >> $output "\ + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $echo >> $output "\ + \$echo \"\$0: cannot exec \$program \$*\" + exit $EXIT_FAILURE + fi + else + # The program doesn't exist. + \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$echo \"This script is just a wrapper for \$program.\" 1>&2 + $echo \"See the $PACKAGE documentation for more information.\" 1>&2 + exit $EXIT_FAILURE + fi +fi\ +" + chmod +x $output + fi + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + func_extract_archives $gentop $addlibs + oldobjs="$oldobjs $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + $echo "X$obj" | $Xsed -e 's%^.*/%%' + done | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "copying selected object files to avoid basename conflicts..." + + if test -z "$gentop"; then + gentop="$output_objdir/${outputname}x" + generated="$generated $gentop" + + $show "${rm}r $gentop" + $run ${rm}r "$gentop" + $show "$mkdir $gentop" + $run $mkdir "$gentop" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$gentop"; then + exit $exit_status + fi + fi + + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + counter=`expr $counter + 1` + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + $run ln "$obj" "$gentop/$newobj" || + $run cp "$obj" "$gentop/$newobj" + oldobjs="$oldobjs $gentop/$newobj" + ;; + *) oldobjs="$oldobjs $obj" ;; + esac + done + fi + + eval cmds=\"$old_archive_cmds\" + + if len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + $echo "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + for obj in $save_oldobjs + do + oldobjs="$objlist $obj" + objlist="$objlist $obj" + eval test_cmds=\"$old_archive_cmds\" + if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + eval cmd=\"$cmd\" + IFS="$save_ifs" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$generated"; then + $show "${rm}r$generated" + $run ${rm}r$generated + fi + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + $show "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` + relink_command="$var=\"$var_value\"; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + + # Only create the output if not a dry run. + if test -z "$run"; then + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + if test -z "$libdir"; then + $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdependency_libs="$newdependency_libs $libdir/$name" + ;; + *) newdependency_libs="$newdependency_libs $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + for lib in $dlfiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdlfiles="$newdlfiles $libdir/$name" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + if test -z "$libdir"; then + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + exit $EXIT_FAILURE + fi + newdlprefiles="$newdlprefiles $libdir/$name" + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" + fi + $rm $output + # place dlname in correct position for cygwin + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; + esac + $echo > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $echo >> $output "\ +relink_command=\"$relink_command\"" + fi + done + fi + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" + $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? + ;; + esac + exit $EXIT_SUCCESS + ;; + + # libtool install mode + install) + modename="$modename: install" + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/bash || + # Allow the use of GNU shtool's install command. + $echo "X$nonopt" | grep shtool > /dev/null; then + # Aesthetically quote it. + arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$arg " + arg="$1" + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog$arg" + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + for arg + do + if test -n "$dest"; then + files="$files $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + case " $install_prog " in + *[\\\ /]cp\ *) ;; + *) prev=$arg ;; + esac + ;; + -g | -m | -o) prev=$arg ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + install_prog="$install_prog $arg" + done + + if test -z "$install_prog"; then + $echo "$modename: you must specify an install program" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test -n "$prev"; then + $echo "$modename: the \`$prev' option requires an argument" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + if test -z "$files"; then + if test -z "$dest"; then + $echo "$modename: no file or destination specified" 1>&2 + else + $echo "$modename: you must specify a destination" 1>&2 + fi + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Strip any trailing slash from the destination. + dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` + test "X$destdir" = "X$dest" && destdir=. + destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` + + # Not a directory, so check to see that there is only one file specified. + set dummy $files + if test "$#" -gt 2; then + $echo "$modename: \`$dest' is not a directory" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + staticlibs="$staticlibs $file" + ;; + + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + library_names= + old_library= + relink_command= + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) current_libdirs="$current_libdirs $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) future_libdirs="$future_libdirs $libdir" ;; + esac + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ + test "X$dir" = "X$file/" && dir= + dir="$dir$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + if test "$inst_prefix_dir" = "$destdir"; then + $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 + exit $EXIT_FAILURE + fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` + else + relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` + fi + + $echo "$modename: warning: relinking \`$file'" 1>&2 + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + exit $EXIT_FAILURE + fi + fi + + # See the names of the shared library. + set dummy $library_names + if test -n "$2"; then + realname="$2" + shift + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + $show "$install_prog $dir/$srcname $destdir/$realname" + $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? + if test -n "$stripme" && test -n "$striplib"; then + $show "$striplib $destdir/$realname" + $run eval "$striplib $destdir/$realname" || exit $? + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + if test "$linkname" != "$realname"; then + $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" + fi + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + cmds=$postinstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$mode" = relink; then + $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + fi + + # Install the pseudo-library for information purposes. + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + instname="$dir/$name"i + $show "$install_prog $instname $destdir/$name" + $run eval "$install_prog $instname $destdir/$name" || exit $? + + # Maybe install the static library, too. + test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + # Install the libtool object if requested. + if test -n "$destfile"; then + $show "$install_prog $file $destfile" + $run eval "$install_prog $file $destfile" || exit $? + fi + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` + + $show "$install_prog $staticobj $staticdest" + $run eval "$install_prog \$staticobj \$staticdest" || exit $? + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + file=`$echo $file|${SED} 's,.exe$,,'` + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin*|*mingw*) + wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` + ;; + *) + wrapper=$file + ;; + esac + if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then + notinst_deplibs= + relink_command= + + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # + # If there is no directory component, then add one. + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; + esac + + # Check the variables that should have been set. + if test -z "$notinst_deplibs"; then + $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 + exit $EXIT_FAILURE + fi + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + # If there is no directory component, then add one. + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + fi + libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 + finalize=no + fi + done + + relink_command= + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # + # If there is no directory component, then add one. + case $wrapper in + */* | *\\*) . ${wrapper} ;; + *) . ./${wrapper} ;; + esac + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + if test "$finalize" = yes && test -z "$run"; then + tmpdir=`func_mktempdir` + file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` + + $show "$relink_command" + if $run eval "$relink_command"; then : + else + $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 + ${rm}r "$tmpdir" + continue + fi + file="$outputname" + else + $echo "$modename: warning: cannot relink \`$file'" 1>&2 + fi + else + # Install the binary that we compiled earlier. + file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` + ;; + esac + ;; + esac + $show "$install_prog$stripme $file $destfile" + $run eval "$install_prog\$stripme \$file \$destfile" || exit $? + test -n "$outputname" && ${rm}r "$tmpdir" + ;; + esac + done + + for file in $staticlibs; do + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + + $show "$install_prog $file $oldlib" + $run eval "$install_prog \$file \$oldlib" || exit $? + + if test -n "$stripme" && test -n "$old_striplib"; then + $show "$old_striplib $oldlib" + $run eval "$old_striplib $oldlib" || exit $? + fi + + # Do each command in the postinstall commands. + cmds=$old_postinstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || exit $? + done + IFS="$save_ifs" + done + + if test -n "$future_libdirs"; then + $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 + fi + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + test -n "$run" && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi + ;; + + # libtool finish mode + finish) + modename="$modename: finish" + libdirs="$nonopt" + admincmds= + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for dir + do + libdirs="$libdirs $dir" + done + + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + cmds=$finish_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" || admincmds="$admincmds + $cmd" + done + IFS="$save_ifs" + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $run eval "$cmds" || admincmds="$admincmds + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + test "$show" = : && exit $EXIT_SUCCESS + + $echo "X----------------------------------------------------------------------" | $Xsed + $echo "Libraries have been installed in:" + for libdir in $libdirs; do + $echo " $libdir" + done + $echo + $echo "If you ever happen to want to link against installed libraries" + $echo "in a given directory, LIBDIR, you must either use libtool, and" + $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + $echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + $echo " during execution" + fi + if test -n "$runpath_var"; then + $echo " - add LIBDIR to the \`$runpath_var' environment variable" + $echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $echo " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $echo " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + $echo + $echo "See any operating system documentation about shared libraries for" + $echo "more information, such as the ld(1) and ld.so(8) manual pages." + $echo "X----------------------------------------------------------------------" | $Xsed + exit $EXIT_SUCCESS + ;; + + # libtool execute mode + execute) + modename="$modename: execute" + + # The first argument is the command name. + cmd="$nonopt" + if test -z "$cmd"; then + $echo "$modename: you must specify a COMMAND" 1>&2 + $echo "$help" + exit $EXIT_FAILURE + fi + + # Handle -dlopen flags immediately. + for file in $execute_dlfiles; do + if test ! -f "$file"; then + $echo "$modename: \`$file' is not a file" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + dir= + case $file in + *.la) + # Check to see that this really is a libtool archive. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : + else + $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Read the libtool library. + dlname= + library_names= + + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" + continue + fi + + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + + if test -f "$dir/$objdir/$dlname"; then + dir="$dir/$objdir" + else + $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 + exit $EXIT_FAILURE + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + test "X$dir" = "X$file" && dir=. + ;; + + *) + $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -*) ;; + *) + # Do a test to see if this is really a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + # If there is no directory component, then add one. + case $file in + */* | *\\*) . $file ;; + *) . ./$file ;; + esac + + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` + args="$args \"$file\"" + done + + if test -z "$run"; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" + $echo "export $shlibpath_var" + fi + $echo "$cmd$args" + exit $EXIT_SUCCESS + fi + ;; + + # libtool clean and uninstall mode + clean | uninstall) + modename="$modename: $mode" + rm="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) rm="$rm $arg"; rmforce=yes ;; + -*) rm="$rm $arg" ;; + *) files="$files $arg" ;; + esac + done + + if test -z "$rm"; then + $echo "$modename: you must specify an RM program" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + fi + + rmdirs= + + origobjdir="$objdir" + for file in $files; do + dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` + if test "X$dir" = "X$file"; then + dir=. + objdir="$origobjdir" + else + objdir="$dir/$origobjdir" + fi + name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` + test "$mode" = uninstall && objdir="$dir" + + # Remember objdir for removal later, being careful to avoid duplicates + if test "$mode" = clean; then + case " $rmdirs " in + *" $objdir "*) ;; + *) rmdirs="$rmdirs $objdir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if (test -L "$file") >/dev/null 2>&1 \ + || (test -h "$file") >/dev/null 2>&1 \ + || test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + . $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + rmfiles="$rmfiles $objdir/$n" + done + test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" + + case "$mode" in + clean) + case " $library_names " in + # " " in the beginning catches empty $dlname + *" $dlname "*) ;; + *) rmfiles="$rmfiles $objdir/$dlname" ;; + esac + test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + cmds=$postuninstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + cmds=$old_postuninstall_cmds + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $show "$cmd" + $run eval "$cmd" + if test "$?" -ne 0 && test "$rmforce" != yes; then + exit_status=1 + fi + done + IFS="$save_ifs" + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + + # Read the .lo file + . $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" \ + && test "$pic_object" != none; then + rmfiles="$rmfiles $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" \ + && test "$non_pic_object" != none; then + rmfiles="$rmfiles $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$mode" = clean ; then + noexename=$name + case $file in + *.exe) + file=`$echo $file|${SED} 's,.exe$,,'` + noexename=`$echo $name|${SED} 's,.exe$,,'` + # $file with .exe has already been added to rmfiles, + # add $file without .exe + rmfiles="$rmfiles $file" + ;; + esac + # Do a test to see if this is a libtool program. + if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + relink_command= + . $dir/$noexename + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + rmfiles="$rmfiles $objdir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + rmfiles="$rmfiles $objdir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + $show "$rm $rmfiles" + $run $rm $rmfiles || exit_status=1 + done + objdir="$origobjdir" + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + $show "rmdir $dir" + $run rmdir $dir >/dev/null 2>&1 + fi + done + + exit $exit_status + ;; + + "") + $echo "$modename: you must specify a MODE" 1>&2 + $echo "$generic_help" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + if test -z "$exec_cmd"; then + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$generic_help" 1>&2 + exit $EXIT_FAILURE + fi +fi # test -z "$show_help" + +if test -n "$exec_cmd"; then + eval exec $exec_cmd + exit $EXIT_FAILURE +fi + +# We need to display help for each of the modes. +case $mode in +"") $echo \ +"Usage: $modename [OPTION]... [MODE-ARG]... + +Provide generalized library-building support services. + + --config show all configuration variables + --debug enable verbose shell tracing +-n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --finish same as \`--mode=finish' + --help display this help message and exit + --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] + --quiet same as \`--silent' + --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + --version print version information + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for +a more detailed description of MODE. + +Report bugs to ." + exit $EXIT_SUCCESS + ;; + +clean) + $echo \ +"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + +compile) + $echo \ +"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -prefer-pic try to building PIC objects only + -prefer-non-pic try to building non-PIC objects only + -static always build a \`.o' file suitable for static linking + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + +execute) + $echo \ +"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + +finish) + $echo \ +"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + +install) + $echo \ +"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + +link) + $echo \ +"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + +uninstall) + $echo \ +"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + +*) + $echo "$modename: invalid operation mode \`$mode'" 1>&2 + $echo "$help" 1>&2 + exit $EXIT_FAILURE + ;; +esac + +$echo +$echo "Try \`$modename --help' for more information about other modes." + +exit $? + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +disable_libs=shared +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +disable_libs=static +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/data/templates/PythonComponent/adm_local/unix/config_files/missing b/data/templates/PythonComponent/adm_local/unix/config_files/missing new file mode 100755 index 0000000..c4001d8 --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/config_files/missing @@ -0,0 +1,367 @@ +#! /bin/bash +# Common stub for a few missing GNU programs while installing. + +scriptversion=2006-05-10.23 + +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# Originally by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 +fi + +run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' + +# In the cases where this matters, `missing' is being run in the +# srcdir already. +if test -f configure.ac; then + configure_ac=configure.ac +else + configure_ac=configure.in +fi + +msg="missing on your system" + +case $1 in +--run) + # Try to run requested program, and just exit if it succeeds. + run= + shift + "$@" && exit 0 + # Exit code 63 means version mismatch. This often happens + # when the user try to use an ancient version of a tool on + # a file that requires a minimum version. In this case we + # we should proceed has if the program had been absent, or + # if --run hadn't been passed. + if test $? = 63; then + run=: + msg="probably too old" + fi + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an +error status if there is no known handling for PROGRAM. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + --run try to run the given command, and emulate it if it fails + +Supported PROGRAM values: + aclocal touch file \`aclocal.m4' + autoconf touch file \`configure' + autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one + automake touch all \`Makefile.in' files + bison create \`y.tab.[ch]', if possible, from existing .[ch] + flex create \`lex.yy.c', if possible, from existing .c + help2man touch the output file + lex create \`lex.yy.c', if possible, from existing .c + makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags + yacc create \`y.tab.[ch]', if possible, from existing .[ch] + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: Unknown \`$1' option" + echo 1>&2 "Try \`$0 --help' for more information" + exit 1 + ;; + +esac + +# Now exit if we have it, but it failed. Also exit now if we +# don't have it and --version was passed (most likely to detect +# the program). +case $1 in + lex|yacc) + # Not GNU programs, they don't have --version. + ;; + + tar) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + + *) + if test -z "$run" && ($1 --version) > /dev/null 2>&1; then + # We have it, but it failed. + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + # Could not run --version or --help. This is probably someone + # running `$TOOL --version' or `$TOOL --help' to check whether + # $TOOL exists and not knowing $TOOL uses missing. + exit 1 + fi + ;; +esac + +# If it does not exist, or fails to run (possibly an outdated version), +# try to emulate it. +case $1 in + aclocal*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acinclude.m4' or \`${configure_ac}'. You might want + to install the \`Automake' and \`Perl' packages. Grab them from + any GNU archive site." + touch aclocal.m4 + ;; + + autoconf) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`${configure_ac}'. You might want to install the + \`Autoconf' and \`GNU m4' packages. Grab them from any GNU + archive site." + touch configure + ;; + + autoheader) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`acconfig.h' or \`${configure_ac}'. You might want + to install the \`Autoconf' and \`GNU m4' packages. Grab them + from any GNU archive site." + files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` + test -z "$files" && files="config.h" + touch_files= + for f in $files; do + case $f in + *:*) touch_files="$touch_files "`echo "$f" | + sed -e 's/^[^:]*://' -e 's/:.*//'`;; + *) touch_files="$touch_files $f.in";; + esac + done + touch $touch_files + ;; + + automake*) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. + You might want to install the \`Automake' and \`Perl' packages. + Grab them from any GNU archive site." + find . -type f -name Makefile.am -print | + sed 's/\.am$/.in/' | + while read f; do touch "$f"; done + ;; + + autom4te) + echo 1>&2 "\ +WARNING: \`$1' is needed, but is $msg. + You might have modified some files without having the + proper tools for further handling them. + You can get \`$1' as part of \`Autoconf' from any GNU + archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo "#! /bin/bash" + echo "# Created by GNU Automake missing as a replacement of" + echo "# $ $@" + echo "exit 0" + chmod +x $file + exit 1 + fi + ;; + + bison|yacc) + echo 1>&2 "\ +WARNING: \`$1' $msg. You should only need it if + you modified a \`.y' file. You may need the \`Bison' package + in order for those modifications to take effect. You can get + \`Bison' from any GNU archive site." + rm -f y.tab.c y.tab.h + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.y) + SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.c + fi + SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" y.tab.h + fi + ;; + esac + fi + if test ! -f y.tab.h; then + echo >y.tab.h + fi + if test ! -f y.tab.c; then + echo 'main() { return 0; }' >y.tab.c + fi + ;; + + lex|flex) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.l' file. You may need the \`Flex' package + in order for those modifications to take effect. You can get + \`Flex' from any GNU archive site." + rm -f lex.yy.c + if test $# -ne 1; then + eval LASTARG="\${$#}" + case $LASTARG in + *.l) + SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` + if test -f "$SRCFILE"; then + cp "$SRCFILE" lex.yy.c + fi + ;; + esac + fi + if test ! -f lex.yy.c; then + echo 'main() { return 0; }' >lex.yy.c + fi + ;; + + help2man) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a dependency of a manual page. You may need the + \`Help2man' package in order for those modifications to take + effect. You can get \`Help2man' from any GNU archive site." + + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then + touch $file + else + test -z "$file" || exec >$file + echo ".ab help2man is required to generate this page" + exit 1 + fi + ;; + + makeinfo) + echo 1>&2 "\ +WARNING: \`$1' is $msg. You should only need it if + you modified a \`.texi' or \`.texinfo' file, or any other file + indirectly affecting the aspect of the manual. The spurious + call might also be the consequence of using a buggy \`make' (AIX, + DU, IRIX). You might want to install the \`Texinfo' package or + the \`GNU make' package. Grab either from any GNU archive site." + # The file to touch is that specified with -o ... + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -z "$file"; then + # ... or it is the one specified with @setfilename ... + infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` + # ... or it is derived from the source name (dir/f.texi becomes f.info) + test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info + fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 + touch $file + ;; + + tar) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + + *) + echo 1>&2 "\ +WARNING: \`$1' is needed, and is $msg. + You might have modified some files without having the + proper tools for further handling them. Check the \`README' file, + it often tells you about the needed prerequisites for installing + this package. You may also peek at any GNU archive site, in case + some other package would contain this missing \`$1' program." + exit 1 + ;; +esac + +exit 0 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/data/templates/PythonComponent/adm_local/unix/make_common_starter.am b/data/templates/PythonComponent/adm_local/unix/make_common_starter.am new file mode 100755 index 0000000..782a815 --- /dev/null +++ b/data/templates/PythonComponent/adm_local/unix/make_common_starter.am @@ -0,0 +1,94 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +bindir = $(prefix)/bin/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# Documentation directory +docdir = $(datadir)/doc/salome + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; diff --git a/data/templates/PythonComponent/bin/Makefile.am b/data/templates/PythonComponent/bin/Makefile.am new file mode 100755 index 0000000..965ec17 --- /dev/null +++ b/data/templates/PythonComponent/bin/Makefile.am @@ -0,0 +1,33 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# -* Makefile *- +# Author : Guillaume Boulant (CSSI) +# Module : COMPONENT +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +dist_salomescript_SCRIPTS = \ + myrunSalome.py + +nodist_salomescript_SCRIPTS = \ + runAppli + +nodist_salomescript_DATA = \ + VERSION diff --git a/data/templates/PythonComponent/bin/Makefile.in b/data/templates/PythonComponent/bin/Makefile.in new file mode 100755 index 0000000..9540813 --- /dev/null +++ b/data/templates/PythonComponent/bin/Makefile.in @@ -0,0 +1,637 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="${_dollar}{ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(dist_salomescript_SCRIPTS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/VERSION.in \ + $(srcdir)/runAppli.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am +subdir = bin +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = VERSION runAppli +am__installdirs = "$(DESTDIR)$(salomescriptdir)" \ + "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)" +dist_salomescriptSCRIPT_INSTALL = $(INSTALL_SCRIPT) +nodist_salomescriptSCRIPT_INSTALL = $(INSTALL_SCRIPT) +SCRIPTS = $(dist_salomescript_SCRIPTS) $(nodist_salomescript_SCRIPTS) +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case ${_dollar}p in \ + $(srcdir)/*) f=`echo "${_dollar}p" | sed "s|^${_dollar}srcdirstrip/||"`;; \ + *) f=${_dollar}p;; \ + esac; +am__strip_dir = `echo ${_dollar}p | sed -e 's|^.*/||'`; +nodist_salomescriptDATA_INSTALL = $(INSTALL_DATA) +DATA = $(nodist_salomescript_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + + +# -* Makefile *- +# Author : Guillaume Boulant (CSSI) +# Module : COMPONENT +# +dist_salomescript_SCRIPTS = \ + myrunSalome.py + +nodist_salomescript_SCRIPTS = \ + runAppli + +nodist_salomescript_DATA = \ + VERSION + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *${_dollar}dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bin/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu bin/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +VERSION: $(top_builddir)/config.status $(srcdir)/VERSION.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +runAppli: $(top_builddir)/config.status $(srcdir)/runAppli.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +install-dist_salomescriptSCRIPTS: $(dist_salomescript_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" + @list='$(dist_salomescript_SCRIPTS)'; for p in ${_dollar}list; do \ + if test -f "${_dollar}p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f ${_dollar}d${_dollar}p; then \ + f=`echo "${_dollar}p" | sed 's|^.*/||;$(transform)'`; \ + echo " $(dist_salomescriptSCRIPT_INSTALL) '${_dollar}d${_dollar}p' '$(DESTDIR)$(salomescriptdir)/${_dollar}f'"; \ + $(dist_salomescriptSCRIPT_INSTALL) "${_dollar}d${_dollar}p" "$(DESTDIR)$(salomescriptdir)/${_dollar}f"; \ + else :; fi; \ + done + +uninstall-dist_salomescriptSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(dist_salomescript_SCRIPTS)'; for p in ${_dollar}list; do \ + f=`echo "${_dollar}p" | sed 's|^.*/||;$(transform)'`; \ + echo " rm -f '$(DESTDIR)$(salomescriptdir)/${_dollar}f'"; \ + rm -f "$(DESTDIR)$(salomescriptdir)/${_dollar}f"; \ + done +install-nodist_salomescriptSCRIPTS: $(nodist_salomescript_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" + @list='$(nodist_salomescript_SCRIPTS)'; for p in ${_dollar}list; do \ + if test -f "${_dollar}p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f ${_dollar}d${_dollar}p; then \ + f=`echo "${_dollar}p" | sed 's|^.*/||;$(transform)'`; \ + echo " $(nodist_salomescriptSCRIPT_INSTALL) '${_dollar}d${_dollar}p' '$(DESTDIR)$(salomescriptdir)/${_dollar}f'"; \ + $(nodist_salomescriptSCRIPT_INSTALL) "${_dollar}d${_dollar}p" "$(DESTDIR)$(salomescriptdir)/${_dollar}f"; \ + else :; fi; \ + done + +uninstall-nodist_salomescriptSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(nodist_salomescript_SCRIPTS)'; for p in ${_dollar}list; do \ + f=`echo "${_dollar}p" | sed 's|^.*/||;$(transform)'`; \ + echo " rm -f '$(DESTDIR)$(salomescriptdir)/${_dollar}f'"; \ + rm -f "$(DESTDIR)$(salomescriptdir)/${_dollar}f"; \ + done + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-nodist_salomescriptDATA: $(nodist_salomescript_DATA) + @$(NORMAL_INSTALL) + test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" + @list='$(nodist_salomescript_DATA)'; for p in ${_dollar}list; do \ + if test -f "${_dollar}p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(nodist_salomescriptDATA_INSTALL) '${_dollar}d${_dollar}p' '$(DESTDIR)$(salomescriptdir)/${_dollar}f'"; \ + $(nodist_salomescriptDATA_INSTALL) "${_dollar}d${_dollar}p" "$(DESTDIR)$(salomescriptdir)/${_dollar}f"; \ + done + +uninstall-nodist_salomescriptDATA: + @$(NORMAL_UNINSTALL) + @list='$(nodist_salomescript_DATA)'; for p in ${_dollar}list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(salomescriptdir)/${_dollar}f'"; \ + rm -f "$(DESTDIR)$(salomescriptdir)/${_dollar}f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^${_dollar}\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^${_dollar}\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in ${_dollar}list; do echo ${_dollar}file; done | \ + sed -e "s|^${_dollar}srcdirstrip/||;t" \ + -e "s|^${_dollar}topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case ${_dollar}dist_files in \ + */*) $(MKDIR_P) `echo "${_dollar}dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*${_dollar},,' | \ + sort -u` ;; \ + esac; \ + for file in ${_dollar}dist_files; do \ + if test -f ${_dollar}file || test -d ${_dollar}file; then d=.; else d=$(srcdir); fi; \ + if test -d ${_dollar}d/${_dollar}file; then \ + dir=`echo "/${_dollar}file" | sed -e 's,/[^/]*${_dollar},,'`; \ + if test -d $(srcdir)/${_dollar}file && test ${_dollar}d != $(srcdir); then \ + cp -pR $(srcdir)/${_dollar}file $(distdir)${_dollar}dir || exit 1; \ + fi; \ + cp -pR ${_dollar}d/${_dollar}file $(distdir)${_dollar}dir || exit 1; \ + else \ + test -f $(distdir)/${_dollar}file \ + || cp -p ${_dollar}d/${_dollar}file $(distdir)/${_dollar}file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(SCRIPTS) $(DATA) +installdirs: + for dir in "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomescriptdir)"; do \ + test -z "${_dollar}dir" || $(MKDIR_P) "${_dollar}dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-dist_salomescriptSCRIPTS \ + install-nodist_salomescriptDATA \ + install-nodist_salomescriptSCRIPTS + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dist_salomescriptSCRIPTS \ + uninstall-nodist_salomescriptDATA \ + uninstall-nodist_salomescriptSCRIPTS + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dist_salomescriptSCRIPTS \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-nodist_salomescriptDATA \ + install-nodist_salomescriptSCRIPTS install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-dist_salomescriptSCRIPTS \ + uninstall-nodist_salomescriptDATA \ + uninstall-nodist_salomescriptSCRIPTS + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/bin/VERSION.in b/data/templates/PythonComponent/bin/VERSION.in new file mode 100755 index 0000000..cbd1c16 --- /dev/null +++ b/data/templates/PythonComponent/bin/VERSION.in @@ -0,0 +1 @@ +THIS IS SALOME - :sat:{PYCMP} VERSION: @VERSION@ diff --git a/data/templates/PythonComponent/bin/myrunSalome.py b/data/templates/PythonComponent/bin/myrunSalome.py new file mode 100755 index 0000000..6376f19 --- /dev/null +++ b/data/templates/PythonComponent/bin/myrunSalome.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +def test(clt): + """ + Test function that creates an instance of :sat:{PYCMP} component + usage : myCompo=test(clt) + """ + # create an LifeCycleCORBA instance + import LifeCycleCORBA + lcc = LifeCycleCORBA.LifeCycleCORBA(clt.orb) + import :sat:{PYCMP}_ORB + myCompo = lcc.FindOrLoadComponent("FactoryServerPy", ":sat:{PYCMP}") + return myCompo + +# + +if __name__ == "__main__": + import user + from runSalome import * + clt,args = main() + + # + # Impression arborescence Naming Service + # + + if clt != None: + print + print " --- registered objects tree in Naming Service ---" + clt.showNS() + session=clt.waitNS("/Kernel/Session") + catalog=clt.waitNS("/Kernel/ModulCatalog") + import socket + container = clt.waitNS("/Containers/" + socket.gethostname().split('.')[0] + "/FactoryServerPy") diff --git a/data/templates/PythonComponent/bin/runAppli.in b/data/templates/PythonComponent/bin/runAppli.in new file mode 100755 index 0000000..41eec2e --- /dev/null +++ b/data/templates/PythonComponent/bin/runAppli.in @@ -0,0 +1,67 @@ +#!/bin/bash +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +if [ -z "${KERNEL_ROOT_DIR}" ] ; then +export KERNEL_ROOT_DIR=@KERNEL_ROOT_DIR@ +fi +if [ -z "${:sat:{PYCMP}_ROOT_DIR}" ] ; then +export :sat:{PYCMP}_ROOT_DIR=@prefix@ +fi + +searchFreePort() { + echo -n "Searching for a free port for naming service: " + export NSPORT=2810 + local limit=$NSPORT + let limit=limit+100 + while [ 1 ] + do + aRes=`netstat -ltn | grep -E :${NSPORT}` + if [ -z "$aRes" ]; then + echo ${NSPORT} - Ok + local myhost=`hostname` + export OMNIORB_CONFIG=${HOME}/.omniORB_${myhost}_${NSPORT}.cfg + local initref="NameService=corbaname::"`hostname`":$NSPORT" + if [[ `python -c "import CORBA; print CORBA.ORB_ID"` = "omniORB4" ]]; then + echo "InitRef = $initref" > $OMNIORB_CONFIG + else + echo "ORBInitRef $initref" > $OMNIORB_CONFIG + fi + break + fi + echo -n "${NSPORT} " + if [[ $NSPORT -eq $limit ]] ; then + echo + echo "Can't find a free port to launch omniNames" + echo "Try to kill the running servers and then launch SALOME again." + exit + fi + let NSPORT=NSPORT+1 + done +} + +searchFreePort + + +${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python -i $:sat:{PYCMP}_ROOT_DIR/bin/salome/myrunSalome.py --modules=:sat:{PYCMP} --killall + + diff --git a/data/templates/PythonComponent/build_cmake b/data/templates/PythonComponent/build_cmake new file mode 100755 index 0000000..10c0472 --- /dev/null +++ b/data/templates/PythonComponent/build_cmake @@ -0,0 +1,27 @@ +#!/bin/bash +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +CURRENT_DIR=`pwd` +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd ${CONF_DIR} +python $KERNEL_ROOT_DIR/salome_adm/cmake_files/am2cmake.py --:sat:{PYCMP_minus} +status=$? +cd ${CURRENT_DIR} +exit $status diff --git a/data/templates/PythonComponent/build_cmake.bat b/data/templates/PythonComponent/build_cmake.bat new file mode 100644 index 0000000..f968136 --- /dev/null +++ b/data/templates/PythonComponent/build_cmake.bat @@ -0,0 +1,20 @@ +@REM Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +@REM +@REM This library is free software; you can redistribute it and/or +@REM modify it under the terms of the GNU Lesser General Public +@REM License as published by the Free Software Foundation; either +@REM version 2.1 of the License. +@REM +@REM This library is distributed in the hope that it will be useful, +@REM but WITHOUT ANY WARRANTY; without even the implied warranty of +@REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +@REM Lesser General Public License for more details. +@REM +@REM You should have received a copy of the GNU Lesser General Public +@REM License along with this library; if not, write to the Free Software +@REM Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +@REM +@REM See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +@REM + +%PYTHONBIN% %KERNEL_ROOT_DIR%\salome_adm\cmake_files\am2cmake.py --:sat:{PYCMP_minus} diff --git a/data/templates/PythonComponent/build_configure b/data/templates/PythonComponent/build_configure new file mode 100755 index 0000000..4b364d3 --- /dev/null +++ b/data/templates/PythonComponent/build_configure @@ -0,0 +1,105 @@ +#!/bin/bash +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Tool for updating list of .in file for the SALOME project +# and regenerating configure script +# Author : +# Modified by : Alexander BORODIN (OCN) - autotools usage +# Date : 10/10/2002 +# +ORIG_DIR=`pwd` +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + +######################################################################## +# Test if the KERNEL_ROOT_DIR is set correctly + +if test ! -d "${KERNEL_ROOT_DIR}"; then + echo "failed : KERNEL_ROOT_DIR variable is not correct !" + exit +fi + + +######################################################################## +# 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 +fi + +cd ${CONF_DIR} +ABS_CONF_DIR=`pwd` + +######################################################################## + +# ____________________________________________________________________ +# aclocal creates the aclocal.m4 file from the standard macro and the +# custom macro embedded in the directory adm_local/unix/config_files +# and KERNEL config_files directory. +# output: +# aclocal.m4 +# autom4te.cache (directory) +echo "======================================================= aclocal" + +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 || exit 1 + +# ____________________________________________________________________ +# libtoolize creates some configuration files (ltmain.sh, +# config.guess and config.sub). It only depends on the libtool +# version. The files are created in the directory specified with the +# AC_CONFIG_AUX_DIR() tag (see configure.ac). +# output: +# adm_local/unix/config_files/config.guess +# adm_local/unix/config_files/config.sub +# adm_local/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: +# adm_local/unix/config_files/compile +# adm_local/unix/config_files/depcomp +# adm_local/unix/config_files/install-sh +# adm_local/unix/config_files/missing +# adm_local/unix/config_files/py-compile +# Makefile.in (from Makefile.am) +echo "====================================================== automake" + +automake --copy --gnu --add-missing diff --git a/data/templates/PythonComponent/clean_configure b/data/templates/PythonComponent/clean_configure new file mode 100755 index 0000000..6391339 --- /dev/null +++ b/data/templates/PythonComponent/clean_configure @@ -0,0 +1,33 @@ +#!/bin/bash +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +rm -rf autom4te.cache aclocal.m4 configure make_config +find . -name "*~" -print -exec rm {} \; +find . -name "*.pyc" -print -exec rm {} \; +#exit +# ==================== ON SORT AVANT + +find bin -name Makefile.in | xargs rm -f +find doc -name Makefile.in | xargs rm -f +find idl -name Makefile.in | xargs rm -f +find resources -name Makefile.in | xargs rm -f +find salome_adm -name Makefile.in | xargs rm -f +find src -name Makefile.in | xargs rm -f +rm -f Makefile.in diff --git a/data/templates/PythonComponent/configure b/data/templates/PythonComponent/configure new file mode 100755 index 0000000..6ba14a5 --- /dev/null +++ b/data/templates/PythonComponent/configure @@ -0,0 +1,27211 @@ +#! /bin/bash +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.61 for Salome2 Project :sat:{PYCMP} module 6.3.0. +# +# Report bugs to . +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/bash" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/bash} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +echo=${ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string=`eval $cmd`) 2>/dev/null && + echo_test_string=`eval $cmd` && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/bash} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/bash}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +tagnames=${tagnames+${tagnames},}CXX + +tagnames=${tagnames+${tagnames},}F77 + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/bash} + +# Identity of this package. +PACKAGE_NAME='Salome2 Project :sat:{PYCMP} module' +PACKAGE_TARNAME='Salome:sat:{PYCMP}' +PACKAGE_VERSION='6.3.0' +PACKAGE_STRING='Salome2 Project :sat:{PYCMP} module 6.3.0' +PACKAGE_BUGREPORT='webmaster.salome@opencascade.com' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +target +target_cpu +target_vendor +target_os +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +am__isrc +CYGPATH_W +PACKAGE +VERSION +ACLOCAL +AUTOCONF +AUTOMAKE +AUTOHEADER +MAKEINFO +install_sh +STRIP +INSTALL_STRIP_PROGRAM +mkdir_p +AWK +SET_MAKE +am__leading_dot +AMTAR +am__tar +am__untar +XVERSION +MODULE_NAME +ROOT_SRCDIR +ROOT_BUILDDIR +AR +INSTALL +GLOBAL_INSTALL +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +DEPDIR +am__include +am__quote +AMDEP_TRUE +AMDEP_FALSE +AMDEPBACKSLASH +CCDEPMODE +am__fastdepCC_TRUE +am__fastdepCC_FALSE +GREP +EGREP +LN_S +ECHO +RANLIB +CPP +CXX +CXXFLAGS +ac_ct_CXX +CXXDEPMODE +am__fastdepCXX_TRUE +am__fastdepCXX_FALSE +CXXCPP +F77 +FFLAGS +ac_ct_F77 +LIBTOOL +PYTHON +LIB_LOCATION_SUFFIX +LDEXPDYNFLAGS +STDLIB +PYTHON_PREFIX +PYTHONHOME +PYTHON_VERSION +PYTHON_INCLUDES +PYTHON_LIBS +PYTHON_PLATFORM +PYTHON_SITE +PYTHON_SITE_PACKAGE +PYTHON_SITE_EXEC +PYTHON_SITE_INSTALL +pythondir +PYTHON_EXEC_PREFIX +pkgpythondir +pyexecdir +pkgpyexecdir +OMNIORB_IDL +OMNIORB_ROOT +OMNIORB_INCLUDES +acx_pthread_config +PTHREAD_CC +PTHREAD_LIBS +PTHREAD_CFLAGS +OMNIORB_CXXFLAGS +OMNIORB_LIBS +OMNIORB_IDLCXXFLAGS +OMNIORB_PACOIDLCXXFLAGS +OMNIORB_IDLPYFLAGS +OMNIORB_IDL_CLN_H +OMNIORB_IDL_CLN_CXX +OMNIORB_IDL_CLN_OBJ +OMNIORB_IDL_SRV_H +OMNIORB_IDL_SRV_CXX +OMNIORB_IDL_SRV_OBJ +OMNIORB_IDL_TIE_H +OMNIORB_IDL_TIE_CXX +IDL +CORBA_ROOT +CORBA_INCLUDES +CORBA_CXXFLAGS +CORBA_LIBS +IDLCXXFLAGS +PACOIDLCXXFLAGS +IDLPYFLAGS +IDL_CLN_H +IDL_CLN_CXX +IDL_CLN_OBJ +IDL_SRV_H +IDL_SRV_CXX +IDL_SRV_OBJ +OGL_INCLUDES +OGL_LIBS +MOC +UIC +QRCC +LRELEASE +QTDIR +QT_ROOT +QT_INCLUDES +QT_MT_INCLUDES +QT_ASSISTANT_INCLUDES +QT_LIB_DIR +QT_CORE_LIBS +QT_GUI_LIBS +QT_OTHER_LIBS +QT_LIBS +QT_MT_LIBS +QT_ASSISTANT_LIBS +QT_VERSION +QT_VERSION_ID +DOXYGEN +DOXYGEN_WITH_PYTHON +DOXYGEN_PYTHON_EXTENSION +DOXYGEN_WITH_STL +DOXYGEN_SUPPORT_STL +DOT +LATEX +DVIPS +PDFLATEX +RST2HTML +RST2HTML_IS_OK_TRUE +RST2HTML_IS_OK_FALSE +TEMP +KERNEL_ROOT_DIR +KERNEL_SITE_DIR +KERNEL_LDFLAGS +KERNEL_CXXFLAGS +GUI_LDFLAGS +GUI_CXXFLAGS +GUI_ROOT_DIR +CORBA_IN_GUI +SETX +LIBOBJS +LTLIBOBJS' +ac_subst_files='CORBA' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +CXXCPP +F77 +FFLAGS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=\$ac_optarg ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures Salome2 Project :sat:{PYCMP} module 6.3.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/Salome:sat:{PYCMP}] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of Salome2 Project :sat:{PYCMP} module 6.3.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-debug build with debug and trace information [default=yes] + --enable-production compile in optimized mode [default=no] + --enable-static[=PKGS] build static libraries [default=no] + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-libtool-lock avoid locking (might break parallel builds) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-tags[=TAGS] include additional configurations [automatic] + --with-python=DIR root directory path of python installation + --with-python-site=DIR Use DIR for installing platform independent Python + site-packages + --with-python-site-exec=DIR + Use DIR for installing platform dependent Python + site-packages + --with-opengl=DIR root directory path of OpenGL installation + --with-qt Possible usage: "Qt_Install_Path" - prefix to path + where Qt was installd; "" or "yes" or "auto" - means + seaching installed Qt product in the system + (checking $QTDIR and then - standard system paths ); + "no" - not use Qt product (is not supported) By + default "" option is used) +--with-kernel=DIR root directory path of KERNEL build or installation +--with-gui=DIR root directory path of SALOME GUI installation + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + F77 Fortran 77 compiler command + FFLAGS Fortran 77 compiler flags + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +Salome2 Project :sat:{PYCMP} module configure 6.3.0 +generated by GNU Autoconf 2.61 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by Salome2 Project :sat:{PYCMP} module $as_me 6.3.0, which was +generated by GNU Autoconf 2.61. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_aux_dir= +for ac_dir in adm_local/unix/config_files "$srcdir"/adm_local/unix/config_files; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in adm_local/unix/config_files \"$srcdir\"/adm_local/unix/config_files" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in adm_local/unix/config_files \"$srcdir\"/adm_local/unix/config_files" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking target system type" >&5 +echo $ECHO_N "checking target system type... $ECHO_C" >&6; } +if test "${ac_cv_target+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_target" >&5 +echo "${ECHO_T}$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 +echo "$as_me: error: invalid value of canonical target" >&2;} + { (exit 1); exit 1; }; };; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- +am__api_version='1.10' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. echo might interpret backslashes. +# By default was `s,x,x', remove it if useless. +cat <<\_ACEOF >conftest.sed +s/[\\$]/&&/g;s/;s,x,x,$// +_ACEOF +program_transform_name=`echo $program_transform_name | sed -f conftest.sed` +rm -f conftest.sed + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +echo "${ECHO_T}$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/bash +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='Salome:sat:{PYCMP}' + VERSION='6.3.0' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + + +XVERSION=`echo $VERSION | awk -F. '{printf("0x%02x%02x%02x",$1,$2,$3)}'` + + +# set up MODULE_NAME variable for dynamic construction of directories (resources, etc.) +MODULE_NAME=:sat:{PYCMP} + + + +ROOT_BUILDDIR=`pwd` +ROOT_SRCDIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` +cd $ROOT_SRCDIR +ROOT_SRCDIR=`pwd` +cd $ROOT_BUILDDIR + + + + +echo +echo Source root directory : $ROOT_SRCDIR +echo Build root directory : $ROOT_BUILDDIR +echo +echo + +# Extract the first word of "sh", so it can be a program name with args. +set dummy sh; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_SHELL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$SHELL"; then + ac_cv_prog_SHELL="$SHELL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_SHELL="" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +SHELL=$ac_cv_prog_SHELL +if test -n "$SHELL"; then + { echo "$as_me:$LINENO: result: $SHELL" >&5 +echo "${ECHO_T}$SHELL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + + +if test -z "$AR"; then + for ac_prog in ar xar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$AR" && break +done +test -n "$AR" || AR=":" + +fi + + +export AR + +echo +echo --------------------------------------------- +echo testing make +echo --------------------------------------------- +echo + +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/bash +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +GLOBAL_INSTALL=$INSTALL +absdir=`pwd` +INSTALL=${absdir}/local-install.sh +cat > ${INSTALL} << EOF +#!/bin/bash + +nb_args=\$# +args=\$* +if test \$nb_args -gt 1 ; then + nb=\$(expr \$nb_args - 2) + shift \$nb + target=\$2 + if test -f \$target ; then + orig=\$1 + if test -f \$orig ; then + diff \$orig \$target > /dev/null 2>&1 + if test \$? = 0 ; then + echo \$orig and \$target are identical + exit 0 + fi + fi + fi +fi +${GLOBAL_INSTALL} \$args +EOF +chmod +x ${INSTALL} + + + + + # Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then + enableval=$enable_debug; + enable_debug=$enableval + +else + enable_debug=yes +fi + + +if test "X$enable_debug" = "Xyes"; then + CFLAGS="$CFLAGS -g -D_DEBUG_ " + CXXFLAGS="$CXXFLAGS -g -D_DEBUG_ " +fi + +# Check whether --enable-production was given. +if test "${enable_production+set}" = set; then + enableval=$enable_production; + enable_production=$enableval + +else + enable_production=no +fi + + + + { echo "$as_me:$LINENO: checking wether $CXX accepts -Wparentheses" >&5 +echo $ECHO_N "checking wether $CXX accepts -Wparentheses... $ECHO_C" >&6; } + cat > conftest.cxx < conftest.log 2>&1 + var=`echo -Wparentheses | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + eval + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + CXXFLAGS="${CXXFLAGS} -Wparentheses" + eval + fi + + + { echo "$as_me:$LINENO: checking wether $CXX accepts -Wreturn-type" >&5 +echo $ECHO_N "checking wether $CXX accepts -Wreturn-type... $ECHO_C" >&6; } + cat > conftest.cxx < conftest.log 2>&1 + var=`echo -Wreturn-type | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + eval + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + CXXFLAGS="${CXXFLAGS} -Wreturn-type" + eval + fi + + + { echo "$as_me:$LINENO: checking wether $CXX accepts -fmessage-length=0" >&5 +echo $ECHO_N "checking wether $CXX accepts -fmessage-length=0... $ECHO_C" >&6; } + cat > conftest.cxx < conftest.log 2>&1 + var=`echo -fmessage-length=0 | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + eval + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + CXXFLAGS="${CXXFLAGS} -fmessage-length=0" + eval + fi + + + { echo "$as_me:$LINENO: checking wether $CXX accepts -Wunused" >&5 +echo $ECHO_N "checking wether $CXX accepts -Wunused... $ECHO_C" >&6; } + cat > conftest.cxx < conftest.log 2>&1 + var=`echo -Wunused | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + eval + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + CXXFLAGS="${CXXFLAGS} -Wunused" + eval + fi + + + { echo "$as_me:$LINENO: checking wether $CXX accepts -pipe" >&5 +echo $ECHO_N "checking wether $CXX accepts -pipe... $ECHO_C" >&6; } + cat > conftest.cxx < conftest.log 2>&1 + var=`echo -pipe | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + eval + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + CXXFLAGS="${CXXFLAGS} -pipe" + eval + fi + + +if test "X$enable_production" = "Xyes"; then + CFLAGS="$CFLAGS -O" + + { echo "$as_me:$LINENO: checking wether $CXX accepts -Wuninitialized" >&5 +echo $ECHO_N "checking wether $CXX accepts -Wuninitialized... $ECHO_C" >&6; } + cat > conftest.cxx < conftest.log 2>&1 + var=`echo -Wuninitialized | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + eval + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + CXXFLAGS="${CXXFLAGS} -Wuninitialized" + eval + fi + + CXXFLAGS="$CXXFLAGS -O " +else + CFLAGS="$CFLAGS -g" + CXXFLAGS="$CXXFLAGS -g" +fi + + +echo --------------------------------------------- +echo testing libtool +echo --------------------------------------------- + +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=no +fi + + + + + +# Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + +# Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +{ echo "$as_me:$LINENO: result: $_am_result" >&5 +echo "${ECHO_T}$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } +if test -z "$ac_file"; then + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/bash. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 +echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } +if test "${lt_cv_path_SED+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done + +fi + +SED=$lt_cv_path_SED +{ echo "$as_me:$LINENO: result: $SED" >&5 +echo "${ECHO_T}$SED" >&6; } + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + +{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 +echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 +echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 +echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } +if test "${lt_cv_path_NM+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi +fi +{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 +echo "${ECHO_T}$lt_cv_path_NM" >&6; } +NM="$lt_cv_path_NM" + +{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6; } +fi + +{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 +echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix4* | aix5*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | kfreebsd*-gnu | dragonfly*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix3*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 +echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 4886 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 +echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + lt_cv_cc_needs_belf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + lt_cv_cc_needs_belf=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 +echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + + +esac + +need_locks="$enable_libtool_lock" + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +for ac_header in dlfcn.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------------- ## +## Report this to webmaster.salome@opencascade.com ## +## ----------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { echo "$as_me:$LINENO: result: $CXX" >&5 +echo "${ECHO_T}$CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 +echo "${ECHO_T}$ac_ct_CXX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C++ compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } +GXX=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 +echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CXXFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cxx_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/bash. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + + +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 +echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ echo "$as_me:$LINENO: result: $CXXCPP" >&5 +echo "${ECHO_T}$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +fi + + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu +if test -n "$ac_tool_prefix"; then + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$F77"; then + ac_cv_prog_F77="$F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_F77="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +F77=$ac_cv_prog_F77 +if test -n "$F77"; then + { echo "$as_me:$LINENO: result: $F77" >&5 +echo "${ECHO_T}$F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$F77" && break + done +fi +if test -z "$F77"; then + ac_ct_F77=$F77 + for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_F77"; then + ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_F77="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_F77=$ac_cv_prog_ac_ct_F77 +if test -n "$ac_ct_F77"; then + { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 +echo "${ECHO_T}$ac_ct_F77" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_F77" && break +done + + if test "x$ac_ct_F77" = x; then + F77="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + F77=$ac_ct_F77 + fi +fi + + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +rm -f a.out + +# If we don't use `.F' as extension, the preprocessor is not run on the +# input file. (Note that this only needs to work for GNU compilers.) +ac_save_ext=$ac_ext +ac_ext=F +{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } +if test "${ac_cv_f77_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF + program main +#ifndef __GNUC__ + choke me +#endif + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_f77_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } +ac_ext=$ac_save_ext +ac_test_FFLAGS=${FFLAGS+set} +ac_save_FFLAGS=$FFLAGS +FFLAGS= +{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 +echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_f77_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + FFLAGS=-g +cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_f77_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_prog_f77_g=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 +echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } +if test "$ac_test_FFLAGS" = set; then + FFLAGS=$ac_save_FFLAGS +elif test $ac_cv_prog_f77_g = yes; then + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-g -O2" + else + FFLAGS="-g" + fi +else + if test "x$ac_cv_f77_compiler_gnu" = xyes; then + FFLAGS="-O2" + else + FFLAGS= + fi +fi + +G77=`test $ac_compiler_gnu = yes && echo yes` +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! + +# find the maximum length of command line arguments +{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 +echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + SHELL=${SHELL-${CONFIG_SHELL-/bin/bash}} + while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + teststring= + # Add a significant safety factor because C++ compilers can tack on massive + # amounts of additional arguments before passing them to the linker. + # It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 +echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } +else + { echo "$as_me:$LINENO: result: none" >&5 +echo "${ECHO_T}none" >&6; } +fi + + + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 +echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32*) + symcode='[ABCDGISTW]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDGIRSTW]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if grep ' nm_test_var$' "$nlist" >/dev/null; then + if grep ' nm_test_func$' "$nlist" >/dev/null; then + cat < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -f conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { echo "$as_me:$LINENO: result: failed" >&5 +echo "${ECHO_T}failed" >&6; } +else + { echo "$as_me:$LINENO: result: ok" >&5 +echo "${ECHO_T}ok" >&6; } +fi + +{ echo "$as_me:$LINENO: checking for objdir" >&5 +echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } +if test "${lt_cv_objdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 +echo "${ECHO_T}$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e 1s/^X//' +sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { echo "$as_me:$LINENO: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 +echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { echo "$as_me:$LINENO: checking for file" >&5 +echo $ECHO_N "checking for file... $ECHO_C" >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 +echo "${ECHO_T}$MAGIC_CMD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +enable_dlopen=yes +enable_win32_dll=no + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + +{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7617: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7621: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + +lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic='-qnocommon' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + linux*) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7885: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:7889: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } + +if test x"$lt_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works=yes + fi + else + lt_prog_compiler_static_works=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } + +if test x"$lt_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:7989: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:7993: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag= + enable_shared_with_static_runtimes=no + archive_cmds= + archive_expsym_cmds= + old_archive_From_new_cmds= + old_archive_from_expsyms_cmds= + export_dynamic_flag_spec= + whole_archive_flag_spec= + thread_safe_flag_spec= + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_direct=no + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + link_all_deplibs=unknown + hardcode_automatic=no + module_cmds= + module_expsym_cmds= + always_export_symbols=no + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + interix3*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct=yes + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + hardcode_direct=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld='-rpath $libdir' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + link_all_deplibs=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + openbsd*) + hardcode_direct=yes + hardcode_shlibpath_var=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5 +echo "${ECHO_T}$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 +echo "${ECHO_T}$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # find out which ABI we are using + libsuff= + case "$host_cpu" in + x86_64*|s390x*|powerpc64*) + echo '#line 9454 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *64-bit*) + libsuff=64 + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + ;; + esac + fi + rm -rf conftest* + ;; + esac + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || \ + test -n "$runpath_var" || \ + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action" >&5 +echo "${ECHO_T}$hardcode_action" >&6; } + +if test "$hardcode_action" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + +striplib= +old_striplib= +{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 +echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + ;; + *) + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + ;; + esac +fi + +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + { echo "$as_me:$LINENO: checking for shl_load" >&5 +echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } +if test "${ac_cv_func_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define shl_load to an innocuous variant, in case declares shl_load. + For example, HP-UX 11i declares gettimeofday. */ +#define shl_load innocuous_shl_load + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char shl_load (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef shl_load + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_shl_load || defined __stub___shl_load +choke me +#endif + +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 +echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } +if test $ac_cv_func_shl_load = yes; then + lt_cv_dlopen="shl_load" +else + { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 +echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dld_shl_load=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_shl_load=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } +if test $ac_cv_lib_dld_shl_load = yes; then + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" +else + { echo "$as_me:$LINENO: checking for dlopen" >&5 +echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } +if test "${ac_cv_func_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define dlopen to an innocuous variant, in case declares dlopen. + For example, HP-UX 11i declares gettimeofday. */ +#define dlopen innocuous_dlopen + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char dlopen (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef dlopen + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_dlopen || defined __stub___dlopen +choke me +#endif + +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 +echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } +if test $ac_cv_func_dlopen = yes; then + lt_cv_dlopen="dlopen" +else + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 +echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_svld_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_svld_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } +if test $ac_cv_lib_svld_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 +echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dld_dld_link=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dld_dld_link=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 +echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } +if test $ac_cv_lib_dld_dld_link = yes; then + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 +echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 +echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext < +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + exit (status); +} +EOF + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 +echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + +# Report which library types will actually be built +{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +{ echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +{ echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler \ + CC \ + LD \ + lt_prog_compiler_wl \ + lt_prog_compiler_pic \ + lt_prog_compiler_static \ + lt_prog_compiler_no_builtin_flag \ + export_dynamic_flag_spec \ + thread_safe_flag_spec \ + whole_archive_flag_spec \ + enable_shared_with_static_runtimes \ + old_archive_cmds \ + old_archive_from_new_cmds \ + predep_objects \ + postdep_objects \ + predeps \ + postdeps \ + compiler_lib_search_path \ + archive_cmds \ + archive_expsym_cmds \ + postinstall_cmds \ + postuninstall_cmds \ + old_archive_from_expsyms_cmds \ + allow_undefined_flag \ + no_undefined_flag \ + export_symbols_cmds \ + hardcode_libdir_flag_spec \ + hardcode_libdir_flag_spec_ld \ + hardcode_libdir_separator \ + hardcode_automatic \ + module_cmds \ + module_expsym_cmds \ + lt_cv_prog_compiler_c_o \ + exclude_expsyms \ + include_expsyms; do + + case $var in + old_archive_cmds | \ + old_archive_from_new_cmds | \ + archive_cmds | \ + archive_expsym_cmds | \ + module_cmds | \ + module_expsym_cmds | \ + old_archive_from_expsyms_cmds | \ + export_symbols_cmds | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="${ofile}T" + trap "$rm \"$cfgfile\"; exit 1" 1 2 15 + $rm -f "$cfgfile" + { echo "$as_me:$LINENO: creating $ofile" >&5 +echo "$as_me: creating $ofile" >&6;} + + cat <<__EOF__ >> "$cfgfile" +#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 1996 +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e 1s/^X//" + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU C compiler? +with_gcc=$GCC + +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=\`echo $lt_predep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=\`echo $lt_postdep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Compile-time system search path for libraries +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# ### END LIBTOOL CONFIG + +__EOF__ + + + case $host_os in + aix3*) + cat <<\EOF >> "$cfgfile" + +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +EOF + ;; + esac + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + +# Check whether --with-tags was given. +if test "${with_tags+set}" = set; then + withval=$with_tags; tagnames="$withval" +fi + + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 +echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} + else + { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 +echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} + fi + fi + if test -z "$LTCFLAGS"; then + eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in + "") ;; + *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 +echo "$as_me: error: invalid tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 +echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} + { (exit 1); exit 1; }; } + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_flag_spec_ld_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_LD=$LD +lt_save_GCC=$GCC +GCC=$GXX +lt_save_with_gnu_ld=$with_gnu_ld +lt_save_path_LD=$lt_cv_path_LD +if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx +else + $as_unset lt_cv_prog_gnu_ld +fi +if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX +else + $as_unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +compiler_CXX=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' +else + lt_prog_compiler_no_builtin_flag_CXX= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 +echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ + grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + +else + GXX=no + with_gnu_ld=no + wlarc= +fi + +# PORTME: fill in a description of your system's C++ link characteristics +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } +ld_shlibs_CXX=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_CXX=yes + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + whole_archive_flag_spec_CXX='' + link_all_deplibs_CXX=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + fi + module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_CXX=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + ld_shlibs_CXX=no + ;; + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + gnu*) + ;; + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_CXX='+b $libdir' + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + interix3*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + ;; + linux*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc*) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC*) + # Portland Group C++ compiler + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + openbsd*) + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; + osf3*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ + $rm $lib.exp' + + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. We must also pass each convience library through + # to the system linker between allextract/defaultextract. + # The C++ compiler will combine linker options so we + # cannot just pass the convience library names through + # without $wl. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + # So that behaviour is only enabled if SCOABSPATH is set to a + # non-empty value in the environment. Most likely only useful for + # creating official distributions of packages. + # This is a hack until libtool officially supports absolute path + # names for shared libraries. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; +esac +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +GCC_CXX="$GXX" +LD_CXX="$LD" + + +cat > conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + # The `*' in the case matches for architectures that use `case' in + # $output_verbose_cmd can trigger glob expansion during the loop + # eval without this substitution. + output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` + + for p in `eval $output_verbose_link_cmd`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" \ + || test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$rm -f confest.$objext + +# PORTME: override above test on systems where it is broken +case $host_os in +interix3*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +solaris*) + case $cc_basename in + CC*) + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + postdeps_CXX='-lCstd -lCrun' + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + +lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_CXX='-qnocommon' + lt_prog_compiler_wl_CXX='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | kfreebsd*-gnu | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + icpc* | ecpc*) + # Intel C++ + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC*) + # Portland Group C++ compiler. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:12757: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:12761: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_CXX=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_CXX=yes + fi + else + lt_prog_compiler_static_works_CXX=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:12861: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:12865: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw*) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 +echo "${ECHO_T}$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_CXX=no + else + archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # find out which ABI we are using + libsuff= + case "$host_cpu" in + x86_64*|s390x*|powerpc64*) + echo '#line 13397 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *64-bit*) + libsuff=64 + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + ;; + esac + fi + rm -rf conftest* + ;; + esac + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || \ + test -n "$runpath_var_CXX" || \ + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 +echo "${ECHO_T}$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_CXX \ + CC_CXX \ + LD_CXX \ + lt_prog_compiler_wl_CXX \ + lt_prog_compiler_pic_CXX \ + lt_prog_compiler_static_CXX \ + lt_prog_compiler_no_builtin_flag_CXX \ + export_dynamic_flag_spec_CXX \ + thread_safe_flag_spec_CXX \ + whole_archive_flag_spec_CXX \ + enable_shared_with_static_runtimes_CXX \ + old_archive_cmds_CXX \ + old_archive_from_new_cmds_CXX \ + predep_objects_CXX \ + postdep_objects_CXX \ + predeps_CXX \ + postdeps_CXX \ + compiler_lib_search_path_CXX \ + archive_cmds_CXX \ + archive_expsym_cmds_CXX \ + postinstall_cmds_CXX \ + postuninstall_cmds_CXX \ + old_archive_from_expsyms_cmds_CXX \ + allow_undefined_flag_CXX \ + no_undefined_flag_CXX \ + export_symbols_cmds_CXX \ + hardcode_libdir_flag_spec_CXX \ + hardcode_libdir_flag_spec_ld_CXX \ + hardcode_libdir_separator_CXX \ + hardcode_automatic_CXX \ + module_cmds_CXX \ + module_expsym_cmds_CXX \ + lt_cv_prog_compiler_c_o_CXX \ + exclude_expsyms_CXX \ + include_expsyms_CXX; do + + case $var in + old_archive_cmds_CXX | \ + old_archive_from_new_cmds_CXX | \ + archive_cmds_CXX | \ + archive_expsym_cmds_CXX | \ + module_cmds_CXX | \ + module_expsym_cmds_CXX | \ + old_archive_from_expsyms_cmds_CXX | \ + export_symbols_cmds_CXX | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_CXX + +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_CXX +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=\`echo $lt_predep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=\`echo $lt_postdep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_CXX + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Compile-time system search path for libraries +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_CXX" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +with_gnu_ld=$lt_save_with_gnu_ld +lt_cv_path_LDCXX=$lt_cv_path_LD +lt_cv_path_LD=$lt_save_path_LD +lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld +lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld + + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + +ac_ext=f +ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' +ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_f77_compiler_gnu + + +archive_cmds_need_lc_F77=no +allow_undefined_flag_F77= +always_export_symbols_F77=no +archive_expsym_cmds_F77= +export_dynamic_flag_spec_F77= +hardcode_direct_F77=no +hardcode_libdir_flag_spec_F77= +hardcode_libdir_flag_spec_ld_F77= +hardcode_libdir_separator_F77= +hardcode_minus_L_F77=no +hardcode_automatic_F77=no +module_cmds_F77= +module_expsym_cmds_F77= +link_all_deplibs_F77=unknown +old_archive_cmds_F77=$old_archive_cmds +no_undefined_flag_F77= +whole_archive_flag_spec_F77= +enable_shared_with_static_runtimes_F77=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +objext_F77=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code=" subroutine t\n return\n end\n" + +# Code to be used in simple link tests +lt_simple_link_test_code=" program t\n end\n" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${F77-"f77"} +compiler=$CC +compiler_F77=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 +echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $can_build_shared" >&5 +echo "${ECHO_T}$can_build_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 +echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } +test "$can_build_shared" = "no" && enable_shared=no + +# On AIX, shared libraries and static libraries use the same namespace, and +# are all built from PIC. +case $host_os in +aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; +aix4* | aix5*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; +esac +{ echo "$as_me:$LINENO: result: $enable_shared" >&5 +echo "${ECHO_T}$enable_shared" >&6; } + +{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5 +echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } +# Make sure either enable_shared or enable_static is yes. +test "$enable_shared" = yes || enable_static=yes +{ echo "$as_me:$LINENO: result: $enable_static" >&5 +echo "${ECHO_T}$enable_static" >&6; } + +GCC_F77="$G77" +LD_F77="$LD" + +lt_prog_compiler_wl_F77= +lt_prog_compiler_pic_F77= +lt_prog_compiler_static_F77= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_static_F77='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_F77='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared_F77=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_F77=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_F77='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_F77='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_F77='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_F77='-Bstatic' + else + lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_F77='-qnocommon' + lt_prog_compiler_wl_F77='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_F77='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_F77='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_F77='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_F77='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_F77='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_F77='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + linux*) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-fpic' + lt_prog_compiler_static_F77='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl_F77='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_F77='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_F77='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl_F77='-Qoption ld ';; + *) + lt_prog_compiler_wl_F77='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl_F77='-Qoption ld ' + lt_prog_compiler_pic_F77='-PIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_F77='-Kconform_pic' + lt_prog_compiler_static_F77='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_pic_F77='-KPIC' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl_F77='-Wl,' + lt_prog_compiler_can_build_shared_F77=no + ;; + + uts4*) + lt_prog_compiler_pic_F77='-pic' + lt_prog_compiler_static_F77='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_F77"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_F77=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_F77" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:14455: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:14459: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_F77=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } + +if test x"$lt_prog_compiler_pic_works_F77" = xyes; then + case $lt_prog_compiler_pic_F77 in + "" | " "*) ;; + *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; + esac +else + lt_prog_compiler_pic_F77= + lt_prog_compiler_can_build_shared_F77=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_F77= + ;; + *) + lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_F77=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_F77=yes + fi + else + lt_prog_compiler_static_works_F77=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; } + +if test x"$lt_prog_compiler_static_works_F77" = xyes; then + : +else + lt_prog_compiler_static_F77= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_F77=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:14559: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:14563: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_F77=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_F77= + enable_shared_with_static_runtimes_F77=no + archive_cmds_F77= + archive_expsym_cmds_F77= + old_archive_From_new_cmds_F77= + old_archive_from_expsyms_cmds_F77= + export_dynamic_flag_spec_F77= + whole_archive_flag_spec_F77= + thread_safe_flag_spec_F77= + hardcode_libdir_flag_spec_F77= + hardcode_libdir_flag_spec_ld_F77= + hardcode_libdir_separator_F77= + hardcode_direct_F77=no + hardcode_minus_L_F77=no + hardcode_shlibpath_var_F77=unsupported + link_all_deplibs_F77=unknown + hardcode_automatic_F77=no + module_cmds_F77= + module_expsym_cmds_F77= + always_export_symbols_F77=no + export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms_F77= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs_F77=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_F77='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_F77= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_F77=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs_F77=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_F77=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_F77='-L$libdir' + allow_undefined_flag_F77=unsupported + always_export_symbols_F77=no + enable_shared_with_static_runtimes_F77=yes + export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_F77=no + fi + ;; + + interix3*) + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + else + ld_shlibs_F77=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs_F77=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_F77=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_F77=no + fi + ;; + esac + + if test "$ld_shlibs_F77" = no; then + runpath_var= + hardcode_libdir_flag_spec_F77= + export_dynamic_flag_spec_F77= + whole_archive_flag_spec_F77= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_F77=unsupported + always_export_symbols_F77=yes + archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L_F77=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct_F77=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_F77='' + hardcode_direct_F77=yes + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_F77=yes + else + # We have old collect2 + hardcode_direct_F77=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_F77=yes + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_libdir_separator_F77= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols_F77=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_F77='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_F77="-z nodefs" + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF + program main + + end +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_f77_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_F77=' ${wl}-bernotok' + allow_undefined_flag_F77=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_F77='$convenience' + archive_cmds_need_lc_F77=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_F77=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec_F77=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_F77=' ' + allow_undefined_flag_F77=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds_F77='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path_F77='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_F77=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_F77=no + hardcode_direct_F77=no + hardcode_automatic_F77=yes + hardcode_shlibpath_var_F77=unsupported + whole_archive_flag_spec_F77='' + link_all_deplibs_F77=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_F77=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + freebsd1*) + ld_shlibs_F77=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_direct_F77=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_F77=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_F77='+b $libdir' + hardcode_direct_F77=no + hardcode_shlibpath_var_F77=no + ;; + *) + hardcode_direct_F77=yes + export_dynamic_flag_spec_F77='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_F77=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' + fi + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + link_all_deplibs_F77=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + newsos6) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + hardcode_shlibpath_var_F77=no + ;; + + openbsd*) + hardcode_direct_F77=yes + hardcode_shlibpath_var_F77=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + export_dynamic_flag_spec_F77='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-R$libdir' + ;; + *) + archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_minus_L_F77=yes + allow_undefined_flag_F77=unsupported + archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag_F77=' -expect_unresolved \*' + archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_F77=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_F77=' -expect_unresolved \*' + archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec_F77='-rpath $libdir' + fi + hardcode_libdir_separator_F77=: + ;; + + solaris*) + no_undefined_flag_F77=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec_F77='-R$libdir' + hardcode_shlibpath_var_F77=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + link_all_deplibs_F77=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_direct_F77=yes + hardcode_minus_L_F77=yes + hardcode_shlibpath_var_F77=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_F77='$CC -r -o $output$reload_objs' + hardcode_direct_F77=no + ;; + motorola) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_F77=no + ;; + + sysv4.3*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + export_dynamic_flag_spec_F77='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_F77=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_F77=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag_F77='${wl}-z,text' + archive_cmds_need_lc_F77=no + hardcode_shlibpath_var_F77=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_F77='${wl}-z,text' + allow_undefined_flag_F77='${wl}-z,nodefs' + archive_cmds_need_lc_F77=no + hardcode_shlibpath_var_F77=no + hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_F77=':' + link_all_deplibs_F77=yes + export_dynamic_flag_spec_F77='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_F77='-L$libdir' + hardcode_shlibpath_var_F77=no + ;; + + *) + ld_shlibs_F77=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 +echo "${ECHO_T}$ld_shlibs_F77" >&6; } +test "$ld_shlibs_F77" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_F77" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_F77=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_F77 in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_F77 + pic_flag=$lt_prog_compiler_pic_F77 + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_F77 + allow_undefined_flag_F77= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_F77=no + else + archive_cmds_need_lc_F77=yes + fi + allow_undefined_flag_F77=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # find out which ABI we are using + libsuff= + case "$host_cpu" in + x86_64*|s390x*|powerpc64*) + echo '#line 16004 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *64-bit*) + libsuff=64 + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + ;; + esac + fi + rm -rf conftest* + ;; + esac + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_F77= +if test -n "$hardcode_libdir_flag_spec_F77" || \ + test -n "$runpath_var_F77" || \ + test "X$hardcode_automatic_F77" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_F77" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && + test "$hardcode_minus_L_F77" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_F77=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_F77=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_F77=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 +echo "${ECHO_T}$hardcode_action_F77" >&6; } + +if test "$hardcode_action_F77" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_F77 \ + CC_F77 \ + LD_F77 \ + lt_prog_compiler_wl_F77 \ + lt_prog_compiler_pic_F77 \ + lt_prog_compiler_static_F77 \ + lt_prog_compiler_no_builtin_flag_F77 \ + export_dynamic_flag_spec_F77 \ + thread_safe_flag_spec_F77 \ + whole_archive_flag_spec_F77 \ + enable_shared_with_static_runtimes_F77 \ + old_archive_cmds_F77 \ + old_archive_from_new_cmds_F77 \ + predep_objects_F77 \ + postdep_objects_F77 \ + predeps_F77 \ + postdeps_F77 \ + compiler_lib_search_path_F77 \ + archive_cmds_F77 \ + archive_expsym_cmds_F77 \ + postinstall_cmds_F77 \ + postuninstall_cmds_F77 \ + old_archive_from_expsyms_cmds_F77 \ + allow_undefined_flag_F77 \ + no_undefined_flag_F77 \ + export_symbols_cmds_F77 \ + hardcode_libdir_flag_spec_F77 \ + hardcode_libdir_flag_spec_ld_F77 \ + hardcode_libdir_separator_F77 \ + hardcode_automatic_F77 \ + module_cmds_F77 \ + module_expsym_cmds_F77 \ + lt_cv_prog_compiler_c_o_F77 \ + exclude_expsyms_F77 \ + include_expsyms_F77; do + + case $var in + old_archive_cmds_F77 | \ + old_archive_from_new_cmds_F77 | \ + archive_cmds_F77 | \ + archive_expsym_cmds_F77 | \ + module_cmds_F77 | \ + module_expsym_cmds_F77 | \ + old_archive_from_expsyms_cmds_F77 | \ + export_symbols_cmds_F77 | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_F77 + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_F77 + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_F77 + +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_F77 + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_F77 + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_F77 +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_F77 + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_F77 +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_F77 +archive_expsym_cmds=$lt_archive_expsym_cmds_F77 +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_F77 +module_expsym_cmds=$lt_module_expsym_cmds_F77 + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=\`echo $lt_predep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=\`echo $lt_postdep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_F77 + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_F77 + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_F77 + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_F77 + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_F77 + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77 + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_F77 + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_F77 + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_F77 + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_F77 + +# Compile-time system search path for libraries +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_F77" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_F77 + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_F77 + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_F77 + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_F77 + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +objext_GCJ=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${GCJ-"gcj"} +compiler=$CC +compiler_GCJ=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + +LD_GCJ="$LD" + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +archive_cmds_need_lc_GCJ=no + +old_archive_cmds_GCJ=$old_archive_cmds + + +lt_prog_compiler_no_builtin_flag_GCJ= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' + + +{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:16782: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:16786: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" +else + : +fi + +fi + +lt_prog_compiler_wl_GCJ= +lt_prog_compiler_pic_GCJ= +lt_prog_compiler_static_GCJ= + +{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 +echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_static_GCJ='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + amigaos*) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_GCJ='-fno-common' + ;; + + interix3*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared_GCJ=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_GCJ=-Kconform_pic + fi + ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_GCJ='-fPIC' + ;; + esac + ;; + + *) + lt_prog_compiler_pic_GCJ='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl_GCJ='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_GCJ='-Bstatic' + else + lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic_GCJ='-qnocommon' + lt_prog_compiler_wl_GCJ='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl_GCJ='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_GCJ='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl_GCJ='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + newsos6) + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + linux*) + case $cc_basename in + icc* | ecc*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-fpic' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl_GCJ='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static_GCJ='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl_GCJ='-Qoption ld ';; + *) + lt_prog_compiler_wl_GCJ='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl_GCJ='-Qoption ld ' + lt_prog_compiler_pic_GCJ='-PIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic_GCJ='-Kconform_pic' + lt_prog_compiler_static_GCJ='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_pic_GCJ='-KPIC' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl_GCJ='-Wl,' + lt_prog_compiler_can_build_shared_GCJ=no + ;; + + uts4*) + lt_prog_compiler_pic_GCJ='-pic' + lt_prog_compiler_static_GCJ='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_GCJ"; then + +{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 +echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_pic_works_GCJ=no + ac_outfile=conftest.$ac_objext + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_GCJ" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:17050: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:17054: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_pic_works_GCJ=yes + fi + fi + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } + +if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then + case $lt_prog_compiler_pic_GCJ in + "" | " "*) ;; + *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; + esac +else + lt_prog_compiler_pic_GCJ= + lt_prog_compiler_can_build_shared_GCJ=no +fi + +fi +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_GCJ= + ;; + *) + lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" + ;; +esac + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" +{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } +if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_prog_compiler_static_works_GCJ=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_prog_compiler_static_works_GCJ=yes + fi + else + lt_prog_compiler_static_works_GCJ=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 +echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; } + +if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then + : +else + lt_prog_compiler_static_GCJ= +fi + + +{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } +if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + lt_cv_prog_compiler_c_o_GCJ=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:17154: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:17158: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_GCJ=yes + fi + fi + chmod u+w . 2>&5 + $rm conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files + $rm out/* && rmdir out + cd .. + rmdir conftest + $rm conftest* + +fi +{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 +echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 +echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; } + hard_links=yes + $rm conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { echo "$as_me:$LINENO: result: $hard_links" >&5 +echo "${ECHO_T}$hard_links" >&6; } + if test "$hard_links" = no; then + { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + +{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } + + runpath_var= + allow_undefined_flag_GCJ= + enable_shared_with_static_runtimes_GCJ=no + archive_cmds_GCJ= + archive_expsym_cmds_GCJ= + old_archive_From_new_cmds_GCJ= + old_archive_from_expsyms_cmds_GCJ= + export_dynamic_flag_spec_GCJ= + whole_archive_flag_spec_GCJ= + thread_safe_flag_spec_GCJ= + hardcode_libdir_flag_spec_GCJ= + hardcode_libdir_flag_spec_ld_GCJ= + hardcode_libdir_separator_GCJ= + hardcode_direct_GCJ=no + hardcode_minus_L_GCJ=no + hardcode_shlibpath_var_GCJ=unsupported + link_all_deplibs_GCJ=unknown + hardcode_automatic_GCJ=no + module_cmds_GCJ= + module_expsym_cmds_GCJ= + always_export_symbols_GCJ=no + export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms_GCJ= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + extract_expsyms_cmds= + # Just being paranoid about ensuring that cc_basename is set. + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + case $host_os in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + ld_shlibs_GCJ=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_GCJ= + fi + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs_GCJ=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + ld_shlibs_GCJ=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_GCJ=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_GCJ='-L$libdir' + allow_undefined_flag_GCJ=unsupported + always_export_symbols_GCJ=no + enable_shared_with_static_runtimes_GCJ=yes + export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + interix3*) + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_addflag= + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + esac + archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test $supports_anon_versioning = yes; then + archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + $echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + else + ld_shlibs_GCJ=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs_GCJ=no + cat <&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs_GCJ=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs_GCJ=no + fi + ;; + esac + + if test "$ld_shlibs_GCJ" = no; then + runpath_var= + hardcode_libdir_flag_spec_GCJ= + export_dynamic_flag_spec_GCJ= + whole_archive_flag_spec_GCJ= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag_GCJ=unsupported + always_export_symbols_GCJ=yes + archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L_GCJ=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct_GCJ=unsupported + fi + ;; + + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_GCJ='' + hardcode_direct_GCJ=yes + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + hardcode_direct_GCJ=yes + else + # We have old collect2 + hardcode_direct_GCJ=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_GCJ=yes + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_libdir_separator_GCJ= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols_GCJ=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_GCJ='-berok' + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_GCJ="-z nodefs" + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_GCJ=' ${wl}-bernotok' + allow_undefined_flag_GCJ=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_GCJ='$convenience' + archive_cmds_need_lc_GCJ=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + # see comment about different semantics on the GNU ld section + ld_shlibs_GCJ=no + ;; + + bsdi[45]*) + export_dynamic_flag_spec_GCJ=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_GCJ=' ' + allow_undefined_flag_GCJ=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_From_new_cmds_GCJ='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes_GCJ=yes + ;; + + darwin* | rhapsody*) + case $host_os in + rhapsody* | darwin1.[012]) + allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[012]) + allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + archive_cmds_need_lc_GCJ=no + hardcode_direct_GCJ=no + hardcode_automatic_GCJ=yes + hardcode_shlibpath_var_GCJ=unsupported + whole_archive_flag_spec_GCJ='' + link_all_deplibs_GCJ=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case $cc_basename in + xlc*) + output_verbose_link_cmd='echo' + archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds + archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + ld_shlibs_GCJ=no + ;; + esac + fi + ;; + + dgux*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + freebsd1*) + ld_shlibs_GCJ=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu | dragonfly*) + archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_direct_GCJ=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' + hardcode_direct_GCJ=no + hardcode_shlibpath_var_GCJ=no + ;; + *) + hardcode_direct_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L_GCJ=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' + fi + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + link_all_deplibs_GCJ=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + newsos6) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + hardcode_shlibpath_var_GCJ=no + ;; + + openbsd*) + hardcode_direct_GCJ=yes + hardcode_shlibpath_var_GCJ=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + export_dynamic_flag_spec_GCJ='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-R$libdir' + ;; + *) + archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_minus_L_GCJ=yes + allow_undefined_flag_GCJ=unsupported + archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_GCJ=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag_GCJ=' -expect_unresolved \*' + archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec_GCJ='-rpath $libdir' + fi + hardcode_libdir_separator_GCJ=: + ;; + + solaris*) + no_undefined_flag_GCJ=' -z text' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + wlarc='' + archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' + fi + hardcode_libdir_flag_spec_GCJ='-R$libdir' + hardcode_shlibpath_var_GCJ=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine linker options so we + # cannot just pass the convience library names through + # without $wl, iff we do not link with $LD. + # Luckily, gcc supports the same syntax we need for Sun Studio. + # Supported since Solaris 2.6 (maybe 2.5.1?) + case $wlarc in + '') + whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; + *) + whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; + esac ;; + esac + link_all_deplibs_GCJ=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_direct_GCJ=yes + hardcode_minus_L_GCJ=yes + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds_GCJ='$CC -r -o $output$reload_objs' + hardcode_direct_GCJ=no + ;; + motorola) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var_GCJ=no + ;; + + sysv4.3*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + export_dynamic_flag_spec_GCJ='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var_GCJ=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs_GCJ=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) + no_undefined_flag_GCJ='${wl}-z,text' + archive_cmds_need_lc_GCJ=no + hardcode_shlibpath_var_GCJ=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_GCJ='${wl}-z,text' + allow_undefined_flag_GCJ='${wl}-z,nodefs' + archive_cmds_need_lc_GCJ=no + hardcode_shlibpath_var_GCJ=no + hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator_GCJ=':' + link_all_deplibs_GCJ=yes + export_dynamic_flag_spec_GCJ='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec_GCJ='-L$libdir' + hardcode_shlibpath_var_GCJ=no + ;; + + *) + ld_shlibs_GCJ=no + ;; + esac + fi + +{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 +echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } +test "$ld_shlibs_GCJ" = no && can_build_shared=no + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_GCJ" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_GCJ=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_GCJ in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 +echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } + $rm conftest* + printf "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_GCJ + pic_flag=$lt_prog_compiler_pic_GCJ + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ + allow_undefined_flag_GCJ= + if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 + (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + then + archive_cmds_need_lc_GCJ=no + else + archive_cmds_need_lc_GCJ=yes + fi + allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 +echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } + ;; + esac + fi + ;; +esac + +{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 +echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix4* | aix5*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # find out which ABI we are using + libsuff= + case "$host_cpu" in + x86_64*|s390x*|powerpc64*) + echo '#line 18619 "configure"' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.$ac_objext` in + *64-bit*) + libsuff=64 + sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" + ;; + esac + fi + rm -rf conftest* + ;; + esac + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +nto-qnx*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + export_dynamic_flag_spec='${wl}-Blargedynsym' + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5 +echo "${ECHO_T}$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 +echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } +hardcode_action_GCJ= +if test -n "$hardcode_libdir_flag_spec_GCJ" || \ + test -n "$runpath_var_GCJ" || \ + test "X$hardcode_automatic_GCJ" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$hardcode_direct_GCJ" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && + test "$hardcode_minus_L_GCJ" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_GCJ=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_GCJ=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_GCJ=unsupported +fi +{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 +echo "${ECHO_T}$hardcode_action_GCJ" >&6; } + +if test "$hardcode_action_GCJ" = relink; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_GCJ \ + CC_GCJ \ + LD_GCJ \ + lt_prog_compiler_wl_GCJ \ + lt_prog_compiler_pic_GCJ \ + lt_prog_compiler_static_GCJ \ + lt_prog_compiler_no_builtin_flag_GCJ \ + export_dynamic_flag_spec_GCJ \ + thread_safe_flag_spec_GCJ \ + whole_archive_flag_spec_GCJ \ + enable_shared_with_static_runtimes_GCJ \ + old_archive_cmds_GCJ \ + old_archive_from_new_cmds_GCJ \ + predep_objects_GCJ \ + postdep_objects_GCJ \ + predeps_GCJ \ + postdeps_GCJ \ + compiler_lib_search_path_GCJ \ + archive_cmds_GCJ \ + archive_expsym_cmds_GCJ \ + postinstall_cmds_GCJ \ + postuninstall_cmds_GCJ \ + old_archive_from_expsyms_cmds_GCJ \ + allow_undefined_flag_GCJ \ + no_undefined_flag_GCJ \ + export_symbols_cmds_GCJ \ + hardcode_libdir_flag_spec_GCJ \ + hardcode_libdir_flag_spec_ld_GCJ \ + hardcode_libdir_separator_GCJ \ + hardcode_automatic_GCJ \ + module_cmds_GCJ \ + module_expsym_cmds_GCJ \ + lt_cv_prog_compiler_c_o_GCJ \ + exclude_expsyms_GCJ \ + include_expsyms_GCJ; do + + case $var in + old_archive_cmds_GCJ | \ + old_archive_from_new_cmds_GCJ | \ + archive_cmds_GCJ | \ + archive_expsym_cmds_GCJ | \ + module_cmds_GCJ | \ + module_expsym_cmds_GCJ | \ + old_archive_from_expsyms_cmds_GCJ | \ + export_symbols_cmds_GCJ | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_GCJ + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_GCJ + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_GCJ + +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_GCJ + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_GCJ + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_GCJ +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_GCJ + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_GCJ +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_GCJ +archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_GCJ +module_expsym_cmds=$lt_module_expsym_cmds_GCJ + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=\`echo $lt_predep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=\`echo $lt_postdep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_GCJ + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_GCJ + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_GCJ + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_GCJ + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_GCJ + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_GCJ + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_GCJ + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_GCJ + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_GCJ + +# Compile-time system search path for libraries +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_GCJ" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_GCJ + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_GCJ + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_GCJ + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_GCJ + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + else + tagname="" + fi + ;; + + RC) + + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +objext_RC=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +printf "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$rm conftest* + +ac_outfile=conftest.$ac_objext +printf "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$rm conftest* + + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +CC=${RC-"windres"} +compiler=$CC +compiler_RC=$CC +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + +lt_cv_prog_compiler_c_o_RC=yes + +# The else clause should only fire when bootstrapping the +# libtool distribution, otherwise you forgot to ship ltmain.sh +# with your package, and you will get complaints that there are +# no rules to generate ltmain.sh. +if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Now quote all the things that may contain metacharacters while being + # careful not to overquote the AC_SUBSTed values. We take copies of the + # variables and quote the copies for generation of the libtool script. + for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ + SED SHELL STRIP \ + libname_spec library_names_spec soname_spec extract_expsyms_cmds \ + old_striplib striplib file_magic_cmd finish_cmds finish_eval \ + deplibs_check_method reload_flag reload_cmds need_locks \ + lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ + lt_cv_sys_global_symbol_to_c_name_address \ + sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ + old_postinstall_cmds old_postuninstall_cmds \ + compiler_RC \ + CC_RC \ + LD_RC \ + lt_prog_compiler_wl_RC \ + lt_prog_compiler_pic_RC \ + lt_prog_compiler_static_RC \ + lt_prog_compiler_no_builtin_flag_RC \ + export_dynamic_flag_spec_RC \ + thread_safe_flag_spec_RC \ + whole_archive_flag_spec_RC \ + enable_shared_with_static_runtimes_RC \ + old_archive_cmds_RC \ + old_archive_from_new_cmds_RC \ + predep_objects_RC \ + postdep_objects_RC \ + predeps_RC \ + postdeps_RC \ + compiler_lib_search_path_RC \ + archive_cmds_RC \ + archive_expsym_cmds_RC \ + postinstall_cmds_RC \ + postuninstall_cmds_RC \ + old_archive_from_expsyms_cmds_RC \ + allow_undefined_flag_RC \ + no_undefined_flag_RC \ + export_symbols_cmds_RC \ + hardcode_libdir_flag_spec_RC \ + hardcode_libdir_flag_spec_ld_RC \ + hardcode_libdir_separator_RC \ + hardcode_automatic_RC \ + module_cmds_RC \ + module_expsym_cmds_RC \ + lt_cv_prog_compiler_c_o_RC \ + exclude_expsyms_RC \ + include_expsyms_RC; do + + case $var in + old_archive_cmds_RC | \ + old_archive_from_new_cmds_RC | \ + archive_cmds_RC | \ + archive_expsym_cmds_RC | \ + module_cmds_RC | \ + module_expsym_cmds_RC | \ + old_archive_from_expsyms_cmds_RC | \ + export_symbols_cmds_RC | \ + extract_expsyms_cmds | reload_cmds | finish_cmds | \ + postinstall_cmds | postuninstall_cmds | \ + old_postinstall_cmds | old_postuninstall_cmds | \ + sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) + # Double-quote double-evaled strings. + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" + ;; + *) + eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" + ;; + esac + done + + case $lt_echo in + *'\$0 --fallback-echo"') + lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` + ;; + esac + +cfgfile="$ofile" + + cat <<__EOF__ >> "$cfgfile" +# ### BEGIN LIBTOOL TAG CONFIG: $tagname + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_RC + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# LTCC compiler flags. +LTCFLAGS=$lt_LTCFLAGS + +# A language-specific compiler. +CC=$lt_compiler_RC + +# Is the compiler the GNU C compiler? +with_gcc=$GCC_RC + +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_LD_RC + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_RC + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_RC +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_RC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_old_archive_cmds_RC +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC + +# Commands used to build and install a shared archive. +archive_cmds=$lt_archive_cmds_RC +archive_expsym_cmds=$lt_archive_expsym_cmds_RC +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_module_cmds_RC +module_expsym_cmds=$lt_module_expsym_cmds_RC + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=\`echo $lt_predep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=\`echo $lt_postdep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_predeps_RC + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_postdeps_RC + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_RC + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_RC + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_RC + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$hardcode_direct_RC + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$hardcode_minus_L_RC + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_RC + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$hardcode_automatic_RC + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_RC + +# Compile-time system search path for libraries +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$fix_srcfile_path_RC" + +# Set to yes if exported symbols are required. +always_export_symbols=$always_export_symbols_RC + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_RC + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_RC + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_RC + +# ### END LIBTOOL TAG CONFIG: $tagname + +__EOF__ + + +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + ;; + + *) + { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 +echo "$as_me: error: Unsupported tag name: $tagname" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 +echo "$as_me: error: unable to update list of available tagged configurations." >&2;} + { (exit 1); exit 1; }; } + fi +fi + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + +# Prevent multiple expansion + + + + + + + + + + + + + + + + + + + + + +case "$INSTALL" in + *install-sh*) + INSTALL='\${KERNEL_ROOT_DIR}'/adm_local/unix/config_files/install-sh + ;; +esac + +echo +echo --------------------------------------------- +echo testing python +echo --------------------------------------------- +echo + + + + { echo "$as_me:$LINENO: checking for LIB_LOCATION_SUFFIX..." >&5 +echo "$as_me: checking for LIB_LOCATION_SUFFIX..." >&6;} + LIB_LOCATION_SUFFIX="" + + { echo "$as_me:$LINENO: result: LIB_LOCATION_SUFFIX is $LIB_LOCATION_SUFFIX" >&5 +echo "${ECHO_T}LIB_LOCATION_SUFFIX is $LIB_LOCATION_SUFFIX" >&6; } + + for opt in "-Xlinker -export-dynamic" -transitive_link; do + + { echo "$as_me:$LINENO: checking wether $CXX accepts $opt" >&5 +echo $ECHO_N "checking wether $CXX accepts $opt... $ECHO_C" >&6; } + cat > conftest.cxx < conftest.log 2>&1 + var=`echo $opt | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + eval flag=no + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + LDEXPDYNFLAGS="${LDEXPDYNFLAGS} $opt" + eval flag=yes + fi + + if test "$flag" = "yes"; then + break + fi + done + + + for opt in "-Xlinker -enable-new-dtags" ; do + + { echo "$as_me:$LINENO: checking wether $CXX accepts $opt" >&5 +echo $ECHO_N "checking wether $CXX accepts $opt... $ECHO_C" >&6; } + cat > conftest.cxx < conftest.log 2>&1 + var=`echo $opt | sed -e "s, .*$,," | sed -e "s,^-,,"` +#CCRT if ! grep -e $var conftest.log > /dev/null 2>&1 ; then + if grep -e $var conftest.log > /dev/null 2>&1 ; then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + eval + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + LDFLAGS="${LDFLAGS} $opt" + eval + fi + + done + + + case $host_os in + osf*) + STDLIB="-lcxxstd" + ;; + *) + STDLIB="-lstdc++" + ;; + esac + + + + python_ok=yes + + +# Check whether --with-python was given. +if test "${with_python+set}" = set; then + withval=$with_python; PYTHON="$withval/bin/python" + { echo "$as_me:$LINENO: result: \"select python distribution in $withval\"" >&5 +echo "${ECHO_T}\"select python distribution in $withval\"" >&6; } + +else + + # Extract the first word of "python", so it can be a program name with args. +set dummy python; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_PYTHON+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { echo "$as_me:$LINENO: result: $PYTHON" >&5 +echo "${ECHO_T}$PYTHON" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + +fi + + + { echo "$as_me:$LINENO: checking local Python configuration..." >&5 +echo "$as_me: checking local Python configuration..." >&6;} + + + PYTHON_PREFIX=`echo $PYTHON | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + PYTHON_PREFIX=`echo $PYTHON_PREFIX | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + PYTHONHOME=$PYTHON_PREFIX + + + + + PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` + + + PY_MAKEFILE=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/Makefile + if test ! -f "$PY_MAKEFILE"; then + if test "${build_cpu::6}" = "x86_64" ; then + PY_MAKEFILE=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile + fi + fi + if test ! -f "$PY_MAKEFILE"; then + { echo "$as_me:$LINENO: WARNING: *** Couldn't find ${PY_MAKEFILE}. Maybe you are +*** missing the development portion of the python installation" >&5 +echo "$as_me: WARNING: *** Couldn't find ${PY_MAKEFILE}. Maybe you are +*** missing the development portion of the python installation" >&2;} + python_ok=no + fi + + + + + PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION + PYTHON_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" + PYTHON_LIB=$PYTHON_LIBS + PYTHON_LIBA=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a + if test "${build_cpu::6}" = "x86_64" ; then + if test "$PY_MAKEFILE" = "${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile" ; then + PYTHON_LIBS="-L${PYTHON_PREFIX}/lib64/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" + PYTHON_LIB=$PYTHON_LIBS + PYTHON_LIBA=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a + fi + fi + + + + PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` + + + +# Check whether --with-python-site was given. +if test "${with_python_site+set}" = set; then + withval=$with_python_site; + + PYTHON_SITE="$withval" + python_site_given=yes +else + PYTHON_SITE=${prefix}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages + python_site_given=no +fi + + + + PYTHON_SITE_PACKAGE=$PYTHON_SITE/$PACKAGE + + + + + +# Check whether --with-python-site-exec was given. +if test "${with_python_site_exec+set}" = set; then + withval=$with_python_site_exec; PYTHON_SITE_EXEC="$withval" +else + if test "$python_site_given" = yes; then + PYTHON_SITE_EXEC=$PYTHON_SITE + else + PYTHON_SITE_EXEC=${PYTHON_EXEC_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages + fi +fi + + + PYTHON_SITE_INSTALL=$PYTHON_SITE_PACKAGE + + + + pythondir=${PYTHON_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/ + + + { echo "$as_me:$LINENO: checking if we need libdb" >&5 +echo $ECHO_N "checking if we need libdb... $ECHO_C" >&6; } + PY_NEEDOPENDB=`nm $PYTHON_LIBA | grep dbopen | grep U` + if test "x$PY_NEEDOPENDB" != "x"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + { echo "$as_me:$LINENO: checking for dbopen in -ldb" >&5 +echo $ECHO_N "checking for dbopen in -ldb... $ECHO_C" >&6; } +if test "${ac_cv_lib_db_dbopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldb $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dbopen (); +int +main () +{ +return dbopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_db_dbopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_db_dbopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_db_dbopen" >&5 +echo "${ECHO_T}$ac_cv_lib_db_dbopen" >&6; } +if test $ac_cv_lib_db_dbopen = yes; then + PYTHON_LIBS="$PYTHON_LIBS -ldb" +else + db_ok=no +fi + + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + + { echo "$as_me:$LINENO: checking if we need libdl" >&5 +echo $ECHO_N "checking if we need libdl... $ECHO_C" >&6; } + PY_NEEDOPENDL=`nm $PYTHON_LIBA | grep dlopen | grep U` + if test "x$PY_NEEDOPENDL" != "x"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + PYTHON_LIBS="$PYTHON_LIBS -ldl" +else + dl_ok=no +fi + + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + + { echo "$as_me:$LINENO: checking if we need libutil" >&5 +echo $ECHO_N "checking if we need libutil... $ECHO_C" >&6; } + PY_NEEDOPENPTY=`nm $PYTHON_LIBA | grep openpty | grep U` + if test "x$PY_NEEDOPENPTY" != "x"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + { echo "$as_me:$LINENO: checking for openpty in -lutil" >&5 +echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6; } +if test "${ac_cv_lib_util_openpty+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char openpty (); +int +main () +{ +return openpty (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_util_openpty=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_util_openpty=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_util_openpty" >&5 +echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6; } +if test $ac_cv_lib_util_openpty = yes; then + PYTHON_LIBS="$PYTHON_LIBS -lutil" +else + openpty_ok=no +fi + + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + + { echo "$as_me:$LINENO: checking if we need tcltk" >&5 +echo $ECHO_N "checking if we need tcltk... $ECHO_C" >&6; } + PY_NEEDTCLTK=`nm $PYTHON_LIBA | grep Tcl_Init | grep U` + if test "x$PY_NEEDTCLTK" != "x"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + { echo "$as_me:$LINENO: checking for Tcl_Init in -ltcl" >&5 +echo $ECHO_N "checking for Tcl_Init in -ltcl... $ECHO_C" >&6; } +if test "${ac_cv_lib_tcl_Tcl_Init+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ltcl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char Tcl_Init (); +int +main () +{ +return Tcl_Init (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_tcl_Tcl_Init=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_tcl_Tcl_Init=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_tcl_Tcl_Init" >&5 +echo "${ECHO_T}$ac_cv_lib_tcl_Tcl_Init" >&6; } +if test $ac_cv_lib_tcl_Tcl_Init = yes; then + PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk" +else + tclinit_ok=no +fi + + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + + if test "$python_ok" == "yes"; then + { echo "$as_me:$LINENO: result: looks good" >&5 +echo "${ECHO_T}looks good" >&6; } + fi + + + + + + + if test -n "$PYTHON"; then + # If the user set $PYTHON, use it and don't search something else. + { echo "$as_me:$LINENO: checking whether $PYTHON version >= 2.3" >&5 +echo $ECHO_N "checking whether $PYTHON version >= 2.3... $ECHO_C" >&6; } + prog="import sys, string +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +minver = map(int, string.split('2.3', '.')) + [0, 0, 0] +minverhex = 0 +for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] +sys.exit(sys.hexversion < minverhex)" + if { echo "$as_me:$LINENO: $PYTHON -c "$prog"" >&5 + ($PYTHON -c "$prog") >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { { echo "$as_me:$LINENO: error: too old" >&5 +echo "$as_me: error: too old" >&2;} + { (exit 1); exit 1; }; } +fi + + am_display_PYTHON=$PYTHON + else + # Otherwise, try each interpreter until we find one that satisfies + # VERSION. + { echo "$as_me:$LINENO: checking for a Python interpreter with version >= 2.3" >&5 +echo $ECHO_N "checking for a Python interpreter with version >= 2.3... $ECHO_C" >&6; } +if test "${am_cv_pathless_PYTHON+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + for am_cv_pathless_PYTHON in python python2 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5 none; do + test "$am_cv_pathless_PYTHON" = none && break + prog="import sys, string +# split strings by '.' and convert to numeric. Append some zeros +# because we need at least 4 digits for the hex conversion. +minver = map(int, string.split('2.3', '.')) + [0, 0, 0] +minverhex = 0 +for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[i] +sys.exit(sys.hexversion < minverhex)" + if { echo "$as_me:$LINENO: $am_cv_pathless_PYTHON -c "$prog"" >&5 + ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + break +fi + + done +fi +{ echo "$as_me:$LINENO: result: $am_cv_pathless_PYTHON" >&5 +echo "${ECHO_T}$am_cv_pathless_PYTHON" >&6; } + # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. + if test "$am_cv_pathless_PYTHON" = none; then + PYTHON=: + else + # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args. +set dummy $am_cv_pathless_PYTHON; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_PYTHON+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { echo "$as_me:$LINENO: result: $PYTHON" >&5 +echo "${ECHO_T}$PYTHON" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi + am_display_PYTHON=$am_cv_pathless_PYTHON + fi + + + if test "$PYTHON" = :; then + { { echo "$as_me:$LINENO: error: no suitable Python interpreter found" >&5 +echo "$as_me: error: no suitable Python interpreter found" >&2;} + { (exit 1); exit 1; }; } + else + + + { echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5 +echo $ECHO_N "checking for $am_display_PYTHON version... $ECHO_C" >&6; } +if test "${am_cv_python_version+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"` +fi +{ echo "$as_me:$LINENO: result: $am_cv_python_version" >&5 +echo "${ECHO_T}$am_cv_python_version" >&6; } + PYTHON_VERSION=$am_cv_python_version + + + + PYTHON_PREFIX='${prefix}' + + PYTHON_EXEC_PREFIX='${exec_prefix}' + + + + { echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5 +echo $ECHO_N "checking for $am_display_PYTHON platform... $ECHO_C" >&6; } +if test "${am_cv_python_platform+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"` +fi +{ echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5 +echo "${ECHO_T}$am_cv_python_platform" >&6; } + PYTHON_PLATFORM=$am_cv_python_platform + + + + + { echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5 +echo $ECHO_N "checking for $am_display_PYTHON script directory... $ECHO_C" >&6; } +if test "${am_cv_python_pythondir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || + echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"` +fi +{ echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5 +echo "${ECHO_T}$am_cv_python_pythondir" >&6; } + pythondir=$am_cv_python_pythondir + + + + pkgpythondir=\${pythondir}/$PACKAGE + + + { echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5 +echo $ECHO_N "checking for $am_display_PYTHON extension module directory... $ECHO_C" >&6; } +if test "${am_cv_python_pyexecdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || + echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"` +fi +{ echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5 +echo "${ECHO_T}$am_cv_python_pyexecdir" >&6; } + pyexecdir=$am_cv_python_pyexecdir + + + + pkgpyexecdir=\${pyexecdir}/$PACKAGE + + + + fi + + + +echo +echo --------------------------------------------- +echo testing omniORB +echo --------------------------------------------- +echo + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +acx_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + { echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 +echo $ECHO_N "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... $ECHO_C" >&6; } + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + acx_pthread_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + { echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5 +echo "${ECHO_T}$acx_pthread_ok" >&6; } + if test x"$acx_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case "${host_cpu}-${host_os}" in + *linux*) + + # On linux "none" works, but boost requires -pthread, so, try first "-pthread" +acx_pthread_flags="-pthread pthreads none -Kthread -kthread lthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + ;; + + *solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthread or + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags" + ;; +esac + +if test x"$acx_pthread_ok" = xno; then +for flag in $acx_pthread_flags; do + + case $flag in + none) + { echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5 +echo $ECHO_N "checking whether pthreads work without any flags... $ECHO_C" >&6; } + ;; + + -*) + { echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5 +echo $ECHO_N "checking whether pthreads work with $flag... $ECHO_C" >&6; } + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_acx_pthread_config+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$acx_pthread_config"; then + ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_acx_pthread_config="yes" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" +fi +fi +acx_pthread_config=$ac_cv_prog_acx_pthread_config +if test -n "$acx_pthread_config"; then + { echo "$as_me:$LINENO: result: $acx_pthread_config" >&5 +echo "${ECHO_T}$acx_pthread_config" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + if test x"$acx_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5 +echo $ECHO_N "checking for the pthreads library -l$flag... $ECHO_C" >&6; } + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +pthread_t th; pthread_join(th, 0); + pthread_attr_init(0); pthread_cleanup_push(0, 0); + pthread_create(0,0,0,0); pthread_cleanup_pop(0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + acx_pthread_ok=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + { echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5 +echo "${ECHO_T}$acx_pthread_ok" >&6; } + if test "x$acx_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$acx_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: threads are created detached by default + # and the JOINABLE attribute has a nonstandard name (UNDETACHED). + { echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5 +echo $ECHO_N "checking for joinable pthread attribute... $ECHO_C" >&6; } + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int attr=PTHREAD_CREATE_JOINABLE; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ok=PTHREAD_CREATE_JOINABLE +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ok=unknown +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + if test x"$ok" = xunknown; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int attr=PTHREAD_CREATE_UNDETACHED; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ok=PTHREAD_CREATE_UNDETACHED +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ok=unknown +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + fi + if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then + +cat >>confdefs.h <<\_ACEOF +#define PTHREAD_CREATE_JOINABLE $ok +_ACEOF + + fi + { echo "$as_me:$LINENO: result: ${ok}" >&5 +echo "${ECHO_T}${ok}" >&6; } + if test x"$ok" = xunknown; then + { echo "$as_me:$LINENO: WARNING: we do not know how to create joinable pthreads" >&5 +echo "$as_me: WARNING: we do not know how to create joinable pthreads" >&2;} + fi + + { echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5 +echo $ECHO_N "checking if more special flags are required for pthreads... $ECHO_C" >&6; } + flag=no + case "${host_cpu}-${host_os}" in + *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; + *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; + esac + { echo "$as_me:$LINENO: result: ${flag}" >&5 +echo "${ECHO_T}${flag}" >&6; } + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: must compile with cc_r + # Extract the first word of "cc_r", so it can be a program name with args. +set dummy cc_r; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_PTHREAD_CC="cc_r" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_PTHREAD_CC" && ac_cv_prog_PTHREAD_CC="${CC}" +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5 +echo "${ECHO_T}$PTHREAD_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +else + PTHREAD_CC="$CC" +fi + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$acx_pthread_ok" = xyes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PTHREAD 1 +_ACEOF + + : +else + acx_pthread_ok=no + +fi +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + + + +{ echo "$as_me:$LINENO: checking for omniORB..." >&5 +echo "$as_me: checking for omniORB..." >&6;} +omniORB_ok=yes + +if test "x$PYTHON" = "x" +then + + python_ok=yes + + +# Check whether --with-python was given. +if test "${with_python+set}" = set; then + withval=$with_python; PYTHON="$withval/bin/python" + { echo "$as_me:$LINENO: result: \"select python distribution in $withval\"" >&5 +echo "${ECHO_T}\"select python distribution in $withval\"" >&6; } + +else + + # Extract the first word of "python", so it can be a program name with args. +set dummy python; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_PYTHON+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { echo "$as_me:$LINENO: result: $PYTHON" >&5 +echo "${ECHO_T}$PYTHON" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + +fi + + + { echo "$as_me:$LINENO: checking local Python configuration..." >&5 +echo "$as_me: checking local Python configuration..." >&6;} + + + PYTHON_PREFIX=`echo $PYTHON | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + PYTHON_PREFIX=`echo $PYTHON_PREFIX | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + PYTHONHOME=$PYTHON_PREFIX + + + + + PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` + + + PY_MAKEFILE=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/Makefile + if test ! -f "$PY_MAKEFILE"; then + if test "${build_cpu::6}" = "x86_64" ; then + PY_MAKEFILE=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile + fi + fi + if test ! -f "$PY_MAKEFILE"; then + { echo "$as_me:$LINENO: WARNING: *** Couldn't find ${PY_MAKEFILE}. Maybe you are +*** missing the development portion of the python installation" >&5 +echo "$as_me: WARNING: *** Couldn't find ${PY_MAKEFILE}. Maybe you are +*** missing the development portion of the python installation" >&2;} + python_ok=no + fi + + + + + PYTHON_INCLUDES=-I$PYTHON_PREFIX/include/python$PYTHON_VERSION + PYTHON_LIBS="-L${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" + PYTHON_LIB=$PYTHON_LIBS + PYTHON_LIBA=${PYTHON_PREFIX}/lib${LIB_LOCATION_SUFFIX}/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a + if test "${build_cpu::6}" = "x86_64" ; then + if test "$PY_MAKEFILE" = "${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/Makefile" ; then + PYTHON_LIBS="-L${PYTHON_PREFIX}/lib64/python${PYTHON_VERSION}/config -lpython${PYTHON_VERSION}" + PYTHON_LIB=$PYTHON_LIBS + PYTHON_LIBA=${PYTHON_PREFIX}/lib64/python$PYTHON_VERSION/config/libpython$PYTHON_VERSION.a + fi + fi + + + + PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` + + + +# Check whether --with-python-site was given. +if test "${with_python_site+set}" = set; then + withval=$with_python_site; + + PYTHON_SITE="$withval" + python_site_given=yes +else + PYTHON_SITE=${prefix}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages + python_site_given=no +fi + + + + PYTHON_SITE_PACKAGE=$PYTHON_SITE/$PACKAGE + + + + + +# Check whether --with-python-site-exec was given. +if test "${with_python_site_exec+set}" = set; then + withval=$with_python_site_exec; PYTHON_SITE_EXEC="$withval" +else + if test "$python_site_given" = yes; then + PYTHON_SITE_EXEC=$PYTHON_SITE + else + PYTHON_SITE_EXEC=${PYTHON_EXEC_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/site-packages + fi +fi + + + PYTHON_SITE_INSTALL=$PYTHON_SITE_PACKAGE + + + + pythondir=${PYTHON_PREFIX}"/lib${LIB_LOCATION_SUFFIX}/python"${PYTHON_VERSION}/ + + + { echo "$as_me:$LINENO: checking if we need libdb" >&5 +echo $ECHO_N "checking if we need libdb... $ECHO_C" >&6; } + PY_NEEDOPENDB=`nm $PYTHON_LIBA | grep dbopen | grep U` + if test "x$PY_NEEDOPENDB" != "x"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + { echo "$as_me:$LINENO: checking for dbopen in -ldb" >&5 +echo $ECHO_N "checking for dbopen in -ldb... $ECHO_C" >&6; } +if test "${ac_cv_lib_db_dbopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldb $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dbopen (); +int +main () +{ +return dbopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_db_dbopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_db_dbopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_db_dbopen" >&5 +echo "${ECHO_T}$ac_cv_lib_db_dbopen" >&6; } +if test $ac_cv_lib_db_dbopen = yes; then + PYTHON_LIBS="$PYTHON_LIBS -ldb" +else + db_ok=no +fi + + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + + { echo "$as_me:$LINENO: checking if we need libdl" >&5 +echo $ECHO_N "checking if we need libdl... $ECHO_C" >&6; } + PY_NEEDOPENDL=`nm $PYTHON_LIBA | grep dlopen | grep U` + if test "x$PY_NEEDOPENDL" != "x"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 +echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_dl_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 +echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } +if test $ac_cv_lib_dl_dlopen = yes; then + PYTHON_LIBS="$PYTHON_LIBS -ldl" +else + dl_ok=no +fi + + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + + { echo "$as_me:$LINENO: checking if we need libutil" >&5 +echo $ECHO_N "checking if we need libutil... $ECHO_C" >&6; } + PY_NEEDOPENPTY=`nm $PYTHON_LIBA | grep openpty | grep U` + if test "x$PY_NEEDOPENPTY" != "x"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + { echo "$as_me:$LINENO: checking for openpty in -lutil" >&5 +echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6; } +if test "${ac_cv_lib_util_openpty+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char openpty (); +int +main () +{ +return openpty (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_util_openpty=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_util_openpty=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_util_openpty" >&5 +echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6; } +if test $ac_cv_lib_util_openpty = yes; then + PYTHON_LIBS="$PYTHON_LIBS -lutil" +else + openpty_ok=no +fi + + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + + { echo "$as_me:$LINENO: checking if we need tcltk" >&5 +echo $ECHO_N "checking if we need tcltk... $ECHO_C" >&6; } + PY_NEEDTCLTK=`nm $PYTHON_LIBA | grep Tcl_Init | grep U` + if test "x$PY_NEEDTCLTK" != "x"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + { echo "$as_me:$LINENO: checking for Tcl_Init in -ltcl" >&5 +echo $ECHO_N "checking for Tcl_Init in -ltcl... $ECHO_C" >&6; } +if test "${ac_cv_lib_tcl_Tcl_Init+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ltcl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char Tcl_Init (); +int +main () +{ +return Tcl_Init (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_tcl_Tcl_Init=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_tcl_Tcl_Init=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_tcl_Tcl_Init" >&5 +echo "${ECHO_T}$ac_cv_lib_tcl_Tcl_Init" >&6; } +if test $ac_cv_lib_tcl_Tcl_Init = yes; then + PYTHON_LIBS="$PYTHON_LIBS -ltcl -ltk" +else + tclinit_ok=no +fi + + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + fi + + if test "$python_ok" == "yes"; then + { echo "$as_me:$LINENO: result: looks good" >&5 +echo "${ECHO_T}looks good" >&6; } + fi + +fi + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + +# Extract the first word of "omniidl", so it can be a program name with args. +set dummy omniidl; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_OMNIORB_IDL+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $OMNIORB_IDL in + [\\/]* | ?:[\\/]*) + ac_cv_path_OMNIORB_IDL="$OMNIORB_IDL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_OMNIORB_IDL="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +OMNIORB_IDL=$ac_cv_path_OMNIORB_IDL +if test -n "$OMNIORB_IDL"; then + { echo "$as_me:$LINENO: result: $OMNIORB_IDL" >&5 +echo "${ECHO_T}$OMNIORB_IDL" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +if test "x$OMNIORB_IDL" = "x" +then + omniORB_ok=no + { echo "$as_me:$LINENO: result: omniORB binaries not in PATH variable" >&5 +echo "${ECHO_T}omniORB binaries not in PATH variable" >&6; } +else + omniORB_ok=yes +fi + +if test "x$omniORB_ok" = "xyes" +then + + + OMNIORB_BIN=`echo ${OMNIORB_IDL} | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + OMNIORB_ROOT=${OMNIORB_BIN} + # one-level up + OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + # + # + if test -d $OMNIORB_ROOT/include ; then + # if $OMNIORB_ROOT/include exists, there are a lot of chance that + # this is omniORB4.x installed via configure && make && make install + OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin\$,lib,"` + OMNIORB_VERSION=4 + else + # omniORB has been installed old way + OMNIORB_LIB=`echo ${OMNIORB_BIN} | sed -e "s,bin/,lib/,"` + # one-level up again + OMNIORB_ROOT=`echo ${OMNIORB_ROOT} | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` + if test -d $OMNIORB_ROOT/include/omniORB4 ; then + OMNIORB_VERSION=4 + else + OMNIORB_VERSION=3 + fi + fi + + + OMNIORB_INCLUDES="-I$OMNIORB_ROOT/include -I$OMNIORB_ROOT/include/omniORB${OMNIORB_VERSION} -I$OMNIORB_ROOT/include/COS" + + + + + +if test x"$enable_pthreads_done" != xyes; then + if test x"$acx_pthread_ok" = xyes; then + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" + LIBS="$LIBS $PTHREAD_LIBS" + threads_ok=yes + else + threads_ok=no + fi + enable_pthreads_done=yes +fi + + + OMNIORB_CXXFLAGS="-DOMNIORB_VERSION=$OMNIORB_VERSION" + case $build_cpu in + sparc*) + # AC_DEFINE(__sparc__) + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sparc__" + ;; + *86*) + # AC_DEFINE(__x86__) + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__x86__" + ;; + esac + case $build_os in + osf*) + # AC_DEFINE(__osf1__) + __OSVERSION__=5 + +cat >>confdefs.h <<\_ACEOF +#define __OSVERSION__ 5 +_ACEOF + + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__osf1__" + ;; + solaris*) + # AC_DEFINE(__sunos__) + __OSVERSION__=5 + +cat >>confdefs.h <<\_ACEOF +#define __OSVERSION__ 5 +_ACEOF + + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__sunos__" + ;; + linux*) + # AC_DEFINE(__linux__) + __OSVERSION__=2 + +cat >>confdefs.h <<\_ACEOF +#define __OSVERSION__ 2 +_ACEOF + + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -D__linux__" + ;; + esac + + + CPPFLAGS_old=$CPPFLAGS + CPPFLAGS="$CPPFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + if test "${ac_cv_header_CORBA_h+set}" = set; then + { echo "$as_me:$LINENO: checking for CORBA.h" >&5 +echo $ECHO_N "checking for CORBA.h... $ECHO_C" >&6; } +if test "${ac_cv_header_CORBA_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_CORBA_h" >&5 +echo "${ECHO_T}$ac_cv_header_CORBA_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking CORBA.h usability" >&5 +echo $ECHO_N "checking CORBA.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking CORBA.h presence" >&5 +echo $ECHO_N "checking CORBA.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: CORBA.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: CORBA.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: CORBA.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: CORBA.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: CORBA.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: CORBA.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: CORBA.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: CORBA.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: CORBA.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: CORBA.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: CORBA.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: CORBA.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: CORBA.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: CORBA.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: CORBA.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: CORBA.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------------- ## +## Report this to webmaster.salome@opencascade.com ## +## ----------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for CORBA.h" >&5 +echo $ECHO_N "checking for CORBA.h... $ECHO_C" >&6; } +if test "${ac_cv_header_CORBA_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_CORBA_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_CORBA_h" >&5 +echo "${ECHO_T}$ac_cv_header_CORBA_h" >&6; } + +fi +if test $ac_cv_header_CORBA_h = yes; then + omniORB_ok="yes" +else + omniORB_ok="no" +fi + + + + CPPFLAGS=$CPPFLAGS_old + +fi + +if test "x$omniORB_ok" = "xyes" +then + if test "x$OMNIORB_LIB" = "x/usr/lib" + then + OMNIORB_LDFLAGS="" + OMNIORB_RFLAGS="" + else + OMNIORB_LDFLAGS="-L$OMNIORB_LIB" + OMNIORB_RFLAGS="-Wl,-R$OMNIORB_LIB" + fi + + LIBS_old=$LIBS + LIBS="$LIBS $OMNIORB_LDFLAGS -lomnithread" + + CXXFLAGS_old=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" + + { echo "$as_me:$LINENO: checking whether we can link with omnithreads" >&5 +echo $ECHO_N "checking whether we can link with omnithreads... $ECHO_C" >&6; } + if test "${salome_cv_lib_omnithreads+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +omni_mutex my_mutex + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "salome_cv_lib_omnithreads=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "salome_cv_lib_omnithreads=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi + + + omniORB_ok="$salome_cv_lib_omnithreads" + if test "x$omniORB_ok" = "xno" + then + { echo "$as_me:$LINENO: result: omnithreads not found" >&5 +echo "${ECHO_T}omnithreads not found" >&6; } + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + fi + + LIBS=$LIBS_old + CXXFLAGS=$CXXFLAGS_old +fi + + +if test "x$omniORB_ok" = "xyes" +then + + { echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 +echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6; } +if test "${ac_cv_lib_socket_socket+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_socket_socket=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_socket_socket=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6; } +if test $ac_cv_lib_socket_socket = yes; then + LIBS="-lsocket $LIBS" +fi + + { echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 +echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; } +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_nsl_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_nsl_gethostbyname=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; } +if test $ac_cv_lib_nsl_gethostbyname = yes; then + LIBS="-lnsl $LIBS" +fi + + + LIBS_old=$LIBS + OMNIORB_LIBS="$OMNIORB_LDFLAGS" + OMNIORB_LIBS="$OMNIORB_LIBS -lomniORB${OMNIORB_VERSION}" + OMNIORB_LIBS="$OMNIORB_LIBS -lomniDynamic${OMNIORB_VERSION}" + OMNIORB_LIBS="$OMNIORB_LIBS -lCOS${OMNIORB_VERSION}" + OMNIORB_LIBS="$OMNIORB_LIBS -lCOSDynamic${OMNIORB_VERSION}" + OMNIORB_LIBS="$OMNIORB_LIBS -lomnithread" + OMNIORB_LIBS="$OMNIORB_LIBS ${OMNIORB_RFLAGS}" + if test $OMNIORB_VERSION = 3 ; then + OMNIORB_LIBS="$OMNIORB_LIBS -ltcpwrapGK" + fi + + + LIBS="$OMNIORB_LIBS $LIBS" + CXXFLAGS_old=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" + + { echo "$as_me:$LINENO: checking whether we can link with omniORB" >&5 +echo $ECHO_N "checking whether we can link with omniORB... $ECHO_C" >&6; } + if test "${salome_cv_lib_omniorb+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +CORBA::ORB_var orb + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "salome_cv_lib_omniorb3=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "salome_cv_lib_omniorb3=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi + + omniORB_ok="$salome_cv_lib_omniorb3" + + omniORB_ok=yes + if test "x$omniORB_ok" = "xno" + then + { echo "$as_me:$LINENO: result: omniORB library linking failed" >&5 +echo "${ECHO_T}omniORB library linking failed" >&6; } + omniORB_ok=no + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + fi + LIBS="$LIBS_old" + CXXFLAGS=$CXXFLAGS_old +fi + + +if test "x$omniORB_ok" = "xyes" +then + + OMNIORB_IDLCXXFLAGS="-Wba -nf -I${OMNIORB_ROOT}/idl" + OMNIORB_PACOIDLCXXFLAGS="-nf -I${OMNIORB_ROOT}/idl" + OMNIORB_IDLPYFLAGS_1='-bpython -nf ' + OMNIORB_IDLPYFLAGS_2=" -I${OMNIORB_ROOT}/idl" + OMNIORB_IDLPYFLAGS=${OMNIORB_IDLPYFLAGS_1}${OMNIORB_IDLPYFLAGS_2} + + + + + + OMNIORB_IDL_CLN_H=.hh + OMNIORB_IDL_CLN_CXX=SK.cc + OMNIORB_IDL_CLN_OBJ=SK.o + + + + + OMNIORB_IDL_SRV_H=.hh + OMNIORB_IDL_SRV_CXX=SK.cc + OMNIORB_IDL_SRV_OBJ=SK.o + + + + + OMNIORB_IDL_TIE_H= + OMNIORB_IDL_TIE_CXX= + + + + +cat >>confdefs.h <<\_ACEOF +#define OMNIORB +_ACEOF + + + CORBA_HAVE_POA=1 + +cat >>confdefs.h <<\_ACEOF +#define CORBA_HAVE_POA +_ACEOF + + + CORBA_ORB_INIT_HAVE_3_ARGS=1 + +cat >>confdefs.h <<\_ACEOF +#define CORBA_ORB_INIT_HAVE_3_ARGS +_ACEOF + + CORBA_ORB_INIT_THIRD_ARG='"omniORB"' + +cat >>confdefs.h <<\_ACEOF +#define CORBA_ORB_INIT_THIRD_ARG +_ACEOF + + +fi + +omniORBpy_ok=no +if test "x$omniORB_ok" = "xyes" +then + { echo "$as_me:$LINENO: checking omniORBpy" >&5 +echo $ECHO_N "checking omniORBpy... $ECHO_C" >&6; } + $PYTHON -c "import omniORB" &> /dev/null + if test $? = 0 ; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + omniORBpy_ok=yes + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + omniORBpy_ok=no + fi +fi + + +{ echo "$as_me:$LINENO: result: for omniORBpy: $omniORBpy_ok" >&5 +echo "${ECHO_T}for omniORBpy: $omniORBpy_ok" >&6; } +{ echo "$as_me:$LINENO: result: for omniORB: $omniORB_ok" >&5 +echo "${ECHO_T}for omniORB: $omniORB_ok" >&6; } + +# Save cache +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + + +CXXFLAGS_old=$CXXFLAGS +CXXFLAGS="$CXXFLAGS $OMNIORB_CXXFLAGS $OMNIORB_INCLUDES" +LIBS_old=$LIBS +LIBS="$LIBS $OMNIORB_LDFLAGS $OMNIORB_LIBS" +{ echo "$as_me:$LINENO: checking whether we have double and CORBA::Double compatibility" >&5 +echo $ECHO_N "checking whether we have double and CORBA::Double compatibility... $ECHO_C" >&6; } +if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int main () +{ + CORBA::Double *a=new CORBA::Double(2.5); + double c=2.5; + double *b; + b=(double *)a; + + if( (c==*b) && (sizeof(double)==sizeof(CORBA::Double)) ){ + delete a; + exit(0); + } + else{ + delete a; + exit(1); + } +} + +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + DOUBLECOMP="yes" +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +DOUBLECOMP="no" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +if test "$DOUBLECOMP" = yes; then + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_DOUBLE" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +{ echo "$as_me:$LINENO: checking whether we have int and CORBA::Long compatibility" >&5 +echo $ECHO_N "checking whether we have int and CORBA::Long compatibility... $ECHO_C" >&6; } +if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int main () +{ + CORBA::Long *a=new CORBA::Long(2); + int c=2; + int *b; + b=(int *)a; + + if( (c==*b) && (sizeof(int)==sizeof(CORBA::Long)) ) + exit(0); + else + exit(1); +} + +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + LONGCOMP="yes" +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +LONGCOMP="no" +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +if test "$LONGCOMP" = yes; then + OMNIORB_CXXFLAGS="$OMNIORB_CXXFLAGS -DCOMP_CORBA_LONG" + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +CXXFLAGS=$CXXFLAGS_old +LIBS=$LIBS_old + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + +echo +echo --------------------------------------------- +echo default ORB : omniORB +echo --------------------------------------------- +echo + +DEFAULT_ORB=omniORB + + +if test x"$DEFAULT_ORB" = x"omniORB" +then + + # Contient le nom de l'ORB + ORB=omniorb + + { echo "$as_me:$LINENO: result: default orb : omniORB" >&5 +echo "${ECHO_T}default orb : omniORB" >&6; } + IDL=$OMNIORB_IDL + + + CORBA_ROOT=$OMNIORB_ROOT + CORBA_INCLUDES=$OMNIORB_INCLUDES + CORBA_CXXFLAGS=$OMNIORB_CXXFLAGS + CORBA_LIBS=$OMNIORB_LIBS + IDLCXXFLAGS=$OMNIORB_IDLCXXFLAGS + PACOIDLCXXFLAGS=$OMNIORB_PACOIDLCXXFLAGS + IDLPYFLAGS=$OMNIORB_IDLPYFLAGS + + + + + + + + + + IDL_CLN_H=$OMNIORB_IDL_CLN_H + IDL_CLN_CXX=$OMNIORB_IDL_CLN_CXX + IDL_CLN_OBJ=$OMNIORB_IDL_CLN_OBJ + + + + + + IDL_SRV_H=$OMNIORB_IDL_SRV_H + IDL_SRV_CXX=$OMNIORB_IDL_SRV_CXX + IDL_SRV_OBJ=$OMNIORB_IDL_SRV_OBJ + + + + + +else + { echo "$as_me:$LINENO: result: $DEFAULT_ORB unknown orb" >&5 +echo "${ECHO_T}$DEFAULT_ORB unknown orb" >&6; } + +fi + + + + +corba=make_$ORB +CORBA=adm_local/unix/$corba + +echo +echo --------------------------------------------- +echo testing QT +echo --------------------------------------------- +echo + + + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + +# Check whether --with-opengl was given. +if test "${with_opengl+set}" = set; then + withval=$with_opengl; opengl_dir="$withval" +else + dirs="/usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/graphics/OpenGL/lib64 /opt/graphics/OpenGL/lib /usr/openwin/lib64 /usr/openwin/lib /usr/X11R6/lib64 /usr/X11R6/lib" +fi + +{ echo "$as_me:$LINENO: checking for OpenGL..." >&5 +echo "$as_me: checking for OpenGL..." >&6;} +{ echo "$as_me:$LINENO: checking for OpenGL headers..." >&5 +echo "$as_me: checking for OpenGL headers..." >&6;} + +OGL_INCLUDES="" +OGL_LIBS="" + +GL_LIB_PATH="" +GLU_LIB_PATH="" + +OpenGL_ok=no +OpenGL_libs_ok=no +OpenGL_headers_ok=no + +# by default +if test "x${opengl_dir}" != "x" ; then + { echo "$as_me:$LINENO: result: for opengl_dir: $opengl_dir" >&5 +echo "${ECHO_T}for opengl_dir: $opengl_dir" >&6; } + as_ac_Header=`echo "ac_cv_header_${opengl_dir}/include/GL/gl.h" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for ${opengl_dir}/include/GL/gl.h" >&5 +echo $ECHO_N "checking for ${opengl_dir}/include/GL/gl.h... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking ${opengl_dir}/include/GL/gl.h usability" >&5 +echo $ECHO_N "checking ${opengl_dir}/include/GL/gl.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <${opengl_dir}/include/GL/gl.h> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking ${opengl_dir}/include/GL/gl.h presence" >&5 +echo $ECHO_N "checking ${opengl_dir}/include/GL/gl.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <${opengl_dir}/include/GL/gl.h> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: ${opengl_dir}/include/GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: ${opengl_dir}/include/GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: ${opengl_dir}/include/GL/gl.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: ${opengl_dir}/include/GL/gl.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: ${opengl_dir}/include/GL/gl.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: ${opengl_dir}/include/GL/gl.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: ${opengl_dir}/include/GL/gl.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: ${opengl_dir}/include/GL/gl.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: ${opengl_dir}/include/GL/gl.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: ${opengl_dir}/include/GL/gl.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: ${opengl_dir}/include/GL/gl.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: ${opengl_dir}/include/GL/gl.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: ${opengl_dir}/include/GL/gl.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: ${opengl_dir}/include/GL/gl.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: ${opengl_dir}/include/GL/gl.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: ${opengl_dir}/include/GL/gl.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------------- ## +## Report this to webmaster.salome@opencascade.com ## +## ----------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for ${opengl_dir}/include/GL/gl.h" >&5 +echo $ECHO_N "checking for ${opengl_dir}/include/GL/gl.h... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + OpenGL_headers_ok=yes; OGL_INCLUDES="-I${opengl_dir}/include" +else + OpenGL_headers_ok=no +fi + + + if test "x${OpenGL_headers_ok}" = "xyes" ; then + { echo "$as_me:$LINENO: checking for default OpenGL library..." >&5 +echo "$as_me: checking for default OpenGL library..." >&6;} + if test "x${opengl_dir}" = "x/usr" ; then + OGL_LIBS="" + else + OGL_LIBS="-L${opengl_dir}/lib" + fi + LDFLAGS_old="$LDFLAGS" + LDFLAGS="$LDFLAGS $OGL_LIBS" + { echo "$as_me:$LINENO: checking for glBegin in -lGL" >&5 +echo $ECHO_N "checking for glBegin in -lGL... $ECHO_C" >&6; } +if test "${ac_cv_lib_GL_glBegin+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lGL $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char glBegin (); +int +main () +{ +return glBegin (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_GL_glBegin=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_GL_glBegin=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glBegin" >&5 +echo "${ECHO_T}$ac_cv_lib_GL_glBegin" >&6; } +if test $ac_cv_lib_GL_glBegin = yes; then + OpenGL_libs_ok=yes +else + OpenGL_libs_ok=no +fi + + if test "x${OpenGL_libs_ok}" = "xyes" ; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + OpenGL_libs_ok=yes ; OpenGL_ok=yes; OGL_LIBS="$OGL_LIBS -lGL" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + OpenGL_libs_ok=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + fi + LDFLAGS="$LDFLAGS_old" + fi +fi + +if test "x${OpenGL_headers_ok}" = "xno" ; then + if test "${ac_cv_header_GL_gl_h+set}" = set; then + { echo "$as_me:$LINENO: checking for GL/gl.h" >&5 +echo $ECHO_N "checking for GL/gl.h... $ECHO_C" >&6; } +if test "${ac_cv_header_GL_gl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5 +echo "${ECHO_T}$ac_cv_header_GL_gl_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking GL/gl.h usability" >&5 +echo $ECHO_N "checking GL/gl.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking GL/gl.h presence" >&5 +echo $ECHO_N "checking GL/gl.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: GL/gl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: GL/gl.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: GL/gl.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: GL/gl.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: GL/gl.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: GL/gl.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: GL/gl.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: GL/gl.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: GL/gl.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: GL/gl.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: GL/gl.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: GL/gl.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: GL/gl.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------------- ## +## Report this to webmaster.salome@opencascade.com ## +## ----------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for GL/gl.h" >&5 +echo $ECHO_N "checking for GL/gl.h... $ECHO_C" >&6; } +if test "${ac_cv_header_GL_gl_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_GL_gl_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_GL_gl_h" >&5 +echo "${ECHO_T}$ac_cv_header_GL_gl_h" >&6; } + +fi +if test $ac_cv_header_GL_gl_h = yes; then + OpenGL_headers_ok=yes +else + OpenGL_headers_ok=no +fi + + +fi + +# under SunOS ? +if test "x${OpenGL_headers_ok}" = "xno" ; then + +for ac_header in /usr/openwin/share/include/GL/glxmd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------------- ## +## Report this to webmaster.salome@opencascade.com ## +## ----------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + OpenGL_headers_ok=yes; OGL_INCLUDES="-I/usr/openwin/share/include/" +else + OpenGL_headers_ok=no +fi + +done + +fi + +# under IRIX ? +if test "x${OpenGL_headers_ok}" = "xno" ; then + +for ac_header in /opt/graphics/OpenGL/include/GL/glxmd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------------- ## +## Report this to webmaster.salome@opencascade.com ## +## ----------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + OpenGL_headers_ok=yes; OGL_INCLUDES="-I/opt/graphics/OpenGL/include" +else + OpenGL_headers_ok=no +fi + +done + +fi + +# some linux OpenGL servers hide the includes in /usr/X11R6/include/GL +if test "x${OpenGL_headers_ok}" = "xno" ; then + +for ac_header in /usr/X11R6/include/GL/gl.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------------- ## +## Report this to webmaster.salome@opencascade.com ## +## ----------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + OpenGL_headers_ok=yes; OGL_INCLUDES="-I/usr/X11R6/include" +else + OpenGL_headers_ok=no +fi + +done + +fi + +if test "x${OpenGL_headers_ok}" = "xyes" ; then + { echo "$as_me:$LINENO: checking for OpenGL library..." >&5 +echo "$as_me: checking for OpenGL library..." >&6;} + for idir in $dirs; do + if test -r "${idir}/libGL.so"; then + { echo "$as_me:$LINENO: result: in ${idir}" >&5 +echo "${ECHO_T}in ${idir}" >&6; } + if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then + GL_LIB_PATH="" + else + GL_LIB_PATH="-L${idir}" + fi + break + fi + # under IRIX ? + if test -r "${idir}/libGL.sl"; then + { echo "$as_me:$LINENO: result: in ${idir}" >&5 +echo "${ECHO_T}in ${idir}" >&6; } + if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then + GL_LIB_PATH="" + else + GL_LIB_PATH="-L${idir}" + fi + break + fi + done + LDFLAGS_old="${LDFLAGS}" + LDFLAGS="${LDFLAGS} ${GL_LIB_PATH}" + { echo "$as_me:$LINENO: checking for glBegin in -lGL" >&5 +echo $ECHO_N "checking for glBegin in -lGL... $ECHO_C" >&6; } +if test "${ac_cv_lib_GL_glBegin+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lGL $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char glBegin (); +int +main () +{ +return glBegin (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_GL_glBegin=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_GL_glBegin=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_GL_glBegin" >&5 +echo "${ECHO_T}$ac_cv_lib_GL_glBegin" >&6; } +if test $ac_cv_lib_GL_glBegin = yes; then + OpenGL_libs_ok=yes +else + OpenGL_libs_ok=no +fi + + if test "x${OpenGL_libs_ok}" = "xyes" ; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + OpenGL_libs_ok=yes ; OGL_LIBS="${OGL_LIBS} ${GL_LIB_PATH} -lGL" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + OpenGL_libs_ok=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + fi + LDFLAGS="$LDFLAGS_old" +fi + +if test "x${OpenGL_libs_ok}" = "xyes" ; then + for idir in $dirs; do + if test -r "${idir}/libGLU.so"; then + { echo "$as_me:$LINENO: result: in ${idir}" >&5 +echo "${ECHO_T}in ${idir}" >&6; } + if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then + GLU_LIB_PATH="" + else + GLU_LIB_PATH="-L${idir}" + fi + break + fi + # under IRIX ? + if test -r "${idir}/libGLU.sl"; then + { echo "$as_me:$LINENO: result: in ${idir}" >&5 +echo "${ECHO_T}in ${idir}" >&6; } + if test "x${idir}" = "x/usr/lib64" -o "x${idir}" = "x/usr/lib" ; then + GLU_LIB_PATH="" + else + GLU_LIB_PATH="-L${idir}" + fi + break + fi + done + + # workaround a problem with libGL library location + for idir in $dirs; do + if test -r "${idir}/libGLU.la"; then + GLU_LA_PATH="${idir}/libGLU.la" + GL_LA_PATH_TO_CHECK=`cat ${GLU_LA_PATH} | awk '{ for(i=1;i0) print $i } }'` + if test -z ${GL_LA_PATH_TO_CHECK} || test -r ${GL_LA_PATH_TO_CHECK}; then + # nothing to do + break + fi + for jdir in $dirs; do + if test -r "${jdir}/libGL.la"; then + GL_LA_PATH="${jdir}/libGL.la" + # copy the libGLU.la file and set correct libGL.la path in it + NEW_GLU_LA_PATH=${ROOT_BUILDDIR} + NEW_GLU_LA_FILE="${NEW_GLU_LA_PATH}/libGLU.la" + sed -e "s%${GL_LA_PATH_TO_CHECK}%${GL_LA_PATH}%" ${GLU_LA_PATH} > "${NEW_GLU_LA_FILE}" + chmod -f --reference=${GLU_LA_PATH} "${NEW_GLU_LA_FILE}" + # set a new libGLU.la path + GLU_LIB_PATH="-L${NEW_GLU_LA_PATH}" + # create a simbolic link to libGLU.so + for kdir in $dirs; do + if test -r "${kdir}/libGLU.so"; then + cp -fs "${kdir}/libGLU.so" "${NEW_GLU_LA_PATH}/libGLU.so" + break + fi + done + break + fi + done + break + fi + done + + LDFLAGS_old="${LDFLAGS}" + LDFLAGS="${LDFLAGS} ${OGL_LIBS} ${GLU_LIB_PATH}" + { echo "$as_me:$LINENO: checking for gluBeginSurface in -lGLU" >&5 +echo $ECHO_N "checking for gluBeginSurface in -lGLU... $ECHO_C" >&6; } +if test "${ac_cv_lib_GLU_gluBeginSurface+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lGLU $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gluBeginSurface (); +int +main () +{ +return gluBeginSurface (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_GLU_gluBeginSurface=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_GLU_gluBeginSurface=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_GLU_gluBeginSurface" >&5 +echo "${ECHO_T}$ac_cv_lib_GLU_gluBeginSurface" >&6; } +if test $ac_cv_lib_GLU_gluBeginSurface = yes; then + OpenGL_libs_ok=yes +else + OpenGL_libs_ok=no +fi + + if test "x${OpenGL_libs_ok}" = "xyes" ; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + OpenGL_libs_ok=yes ; OGL_LIBS="${OGL_LIBS} ${GLU_LIB_PATH} -lGLU" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + OpenGL_libs_ok=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + fi + LDFLAGS="$LDFLAGS_old" +fi + +if test "x${OpenGL_headers_ok}" = "xyes" ; then + if test "x${OpenGL_libs_ok}" = "xyes" ; then + OpenGL_ok=yes + fi +fi + +{ echo "$as_me:$LINENO: result: for OpenGL_headers_ok: $OpenGL_headers_ok" >&5 +echo "${ECHO_T}for OpenGL_headers_ok: $OpenGL_headers_ok" >&6; } +{ echo "$as_me:$LINENO: result: for OpenGL_libs_ok: $OpenGL_libs_ok" >&5 +echo "${ECHO_T}for OpenGL_libs_ok: $OpenGL_libs_ok" >&6; } +{ echo "$as_me:$LINENO: result: for OpenGL_ok: $OpenGL_ok" >&5 +echo "${ECHO_T}for OpenGL_ok: $OpenGL_ok" >&6; } + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + +# Check whether --with-qt was given. +if test "${with_qt+set}" = set; then + withval=$with_qt; with_qt=$withval +else + with_qt="" +fi + + + + + +{ echo "$as_me:$LINENO: checking for Qt..." >&5 +echo "$as_me: checking for Qt..." >&6;} + +if test "x$OpenGL_ok" != "xyes" ; then + { echo "$as_me:$LINENO: WARNING: Qt needs OpenGL correct configuration" >&5 +echo "$as_me: WARNING: Qt needs OpenGL correct configuration" >&2;} +fi + +qt_ok=yes + +QTDIR=$(echo $QTDIR | sed 's%/\+$%%') + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + +if test -z $with_qt ; then + with_qt="" +fi +if test "x$with_qt" = "xyes" ; then + with_qt="" +fi +if test "x$with_qt" = "xauto" ; then + with_qt="" +fi +if test "x$with_qt" = "xno" ; then + with_qt="" + { echo "$as_me:$LINENO: WARNING: Value no" >&5 +echo "$as_me: WARNING: Value no" >&2;} +fi + +if test "x$with_qt" != "x" ; then + QTDIR="$with_qt" +elif test "$QTDIR" = "/usr/lib/qt3" ; then + { echo "$as_me:$LINENO: result: current QTDIR is $QTDIR" >&5 +echo "${ECHO_T}current QTDIR is $QTDIR" >&6; } + if test -d /usr/lib/qt4 ; then + { echo "$as_me:$LINENO: result: it is strange for a qt4 installation !" >&5 +echo "${ECHO_T}it is strange for a qt4 installation !" >&6; } + { echo "$as_me:$LINENO: result: /usr/lib/qt4 is present" >&5 +echo "${ECHO_T}/usr/lib/qt4 is present" >&6; } + { echo "$as_me:$LINENO: result: replacing QTDIR by /usr/lib/qt4" >&5 +echo "${ECHO_T}replacing QTDIR by /usr/lib/qt4" >&6; } + QTDIR=/usr/lib/qt4 + fi +elif test -z $QTDIR ; then + { echo "$as_me:$LINENO: WARNING: undefined QTDIR variable which specify where Qt product was installed" >&5 +echo "$as_me: WARNING: undefined QTDIR variable which specify where Qt product was installed" >&2;} + for d in /usr/local/lib/qt4 /usr/lib/qt4 /usr ; do + if test -f ${d}/lib/libQtCore.so ; then + { echo "$as_me:$LINENO: result: trying ${d}" >&5 +echo "${ECHO_T}trying ${d}" >&6; } + QTDIR="${d}" + break + elif test -f ${d}/lib64/libQtCore.so ; then + { echo "$as_me:$LINENO: result: trying ${d}" >&5 +echo "${ECHO_T}trying ${d}" >&6; } + QTDIR="${d}" + break + elif test -f ${d}/libQtCore.so ; then + { echo "$as_me:$LINENO: result: trying ${d}" >&5 +echo "${ECHO_T}trying ${d}" >&6; } + QTDIR="${d}" + break + fi + done +fi + +# +# check QTDIR environment variable +# +if test "x$QTDIR" = "x" +then + { echo "$as_me:$LINENO: result: Please define correct path in \"--with-qt\" option or use correct $QTDIR variable" >&5 +echo "${ECHO_T}Please define correct path in \"--with-qt\" option or use correct $QTDIR variable" >&6; } + qt_ok=no +fi + +# +# check Qt version +# +if test "x$qt_ok" = "xyes" +then + qt_inc_ok=no + QTINC="" + as_ac_File=`echo "ac_cv_file_${QTDIR}/include/qt4/QtCore/qglobal.h" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for ${QTDIR}/include/qt4/QtCore/qglobal.h" >&5 +echo $ECHO_N "checking for ${QTDIR}/include/qt4/QtCore/qglobal.h... $ECHO_C" >&6; } +if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + test "$cross_compiling" = yes && + { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 +echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} + { (exit 1); exit 1; }; } +if test -r "${QTDIR}/include/qt4/QtCore/qglobal.h"; then + eval "$as_ac_File=yes" +else + eval "$as_ac_File=no" +fi +fi +ac_res=`eval echo '${'$as_ac_File'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_File'}'` = yes; then + QTINC="/qt4" +else + QTINC="" +fi + + if test "x$QTINC" = "x" + then + as_ac_File=`echo "ac_cv_file_${QTDIR}/include${QTINC}/QtCore/qglobal.h" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for ${QTDIR}/include${QTINC}/QtCore/qglobal.h" >&5 +echo $ECHO_N "checking for ${QTDIR}/include${QTINC}/QtCore/qglobal.h... $ECHO_C" >&6; } +if { as_var=$as_ac_File; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + test "$cross_compiling" = yes && + { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5 +echo "$as_me: error: cannot check for file existence when cross compiling" >&2;} + { (exit 1); exit 1; }; } +if test -r "${QTDIR}/include${QTINC}/QtCore/qglobal.h"; then + eval "$as_ac_File=yes" +else + eval "$as_ac_File=no" +fi +fi +ac_res=`eval echo '${'$as_ac_File'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_File'}'` = yes; then + qt_inc_ok=yes +else + qt_inc_ok=no +fi + + else + qt_inc_ok=yes + fi + if test "x$qt_inc_ok" = "xyes" + then + { echo "$as_me:$LINENO: checking whether Qt version >= 4.0" >&5 +echo $ECHO_N "checking whether Qt version >= 4.0... $ECHO_C" >&6; } + QT_VERSION=`grep "QT_VERSION_STR" ${QTDIR}/include${QTINC}/QtCore/qglobal.h | sed -e 's%^#define QT_VERSION_STR[[:space:]]*\"\([[:digit:]\.]*\)\"%\1%g'` + QT_VERSION_ID=`echo $QT_VERSION | awk -F. '{v=$1*10000+$2*100+$3;print v}'` + if test $QT_VERSION_ID -ge 40000 + then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + qt_ok=no + fi + { echo "$as_me:$LINENO: checking Qt version" >&5 +echo $ECHO_N "checking Qt version... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $QT_VERSION" >&5 +echo "${ECHO_T}$QT_VERSION" >&6; } + else + qt_ok=no + fi +fi + +# +# check moc presence (meta-object compiler) +# +qt_add=no + +if test "x$qt_ok" = "xyes" +then + if test -f ${QTDIR}/bin/moc + then + MOC=${QTDIR}/bin/moc + else + # Extract the first word of "moc", so it can be a program name with args. +set dummy moc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_MOC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $MOC in + [\\/]* | ?:[\\/]*) + ac_cv_path_MOC="$MOC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_MOC="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +MOC=$ac_cv_path_MOC +if test -n "$MOC"; then + { echo "$as_me:$LINENO: result: $MOC" >&5 +echo "${ECHO_T}$MOC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi + if test "x$MOC" = "x" + then + qt_ok=no + { echo "$as_me:$LINENO: result: moc (Qt meta-object compiler) is not in the PATH variable" >&5 +echo "${ECHO_T}moc (Qt meta-object compiler) is not in the PATH variable" >&6; } + else + qt_ok=yes + { echo "$as_me:$LINENO: result: moc (Qt meta-object compiler) is found" >&5 +echo "${ECHO_T}moc (Qt meta-object compiler) is found" >&6; } + fi + + if test "x$qt_ok" = "xyes" + then + { echo "$as_me:$LINENO: checking equality Qt and moc tool version" >&5 +echo $ECHO_N "checking equality Qt and moc tool version... $ECHO_C" >&6; } + MOC_VERSION=`$MOC -v 2>&1 | awk 'BEGIN{FS="[ ()]"};{print $(NF-1)}'` + if test "x$QT_VERSION" = "x$MOC_VERSION" + then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + qt_ok=yes + else + { echo "$as_me:$LINENO: result: moc tool and Qt product are incompatible $MOC_VERSION" >&5 +echo "${ECHO_T}moc tool and Qt product are incompatible $MOC_VERSION" >&6; } + QT_VERSION_MAJ=`echo $QT_VERSION | awk -F. '{v=$1;print v}'` + { echo "$as_me:$LINENO: checking for moc-qt$QT_VERSION_MAJ compatible version" >&5 +echo $ECHO_N "checking for moc-qt$QT_VERSION_MAJ compatible version... $ECHO_C" >&6; } + if test -f ${QTDIR}/bin/moc-qt$QT_VERSION_MAJ + then + MOC=${QTDIR}/bin/moc-qt$QT_VERSION_MAJ + qt_ok=yes + qt_add=$QT_VERSION_MAJ + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + qt_ok=no + fi + fi + fi +fi +{ echo "$as_me:$LINENO: checking moc tool and Qt product done" >&5 +echo $ECHO_N "checking moc tool and Qt product done... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +# +# check uic presence (user interface compiler) +# +if test "x$qt_ok" = "xyes" +then + if test "x$qt_add" = "xno" + then + { echo "$as_me:$LINENO: checking uic" >&5 +echo $ECHO_N "checking uic... $ECHO_C" >&6; } + if test -f ${QTDIR}/bin/uic + then + UIC=${QTDIR}/bin/uic + else + # Extract the first word of "uic", so it can be a program name with args. +set dummy uic; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_UIC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $UIC in + [\\/]* | ?:[\\/]*) + ac_cv_path_UIC="$UIC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +UIC=$ac_cv_path_UIC +if test -n "$UIC"; then + { echo "$as_me:$LINENO: result: $UIC" >&5 +echo "${ECHO_T}$UIC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + else + { echo "$as_me:$LINENO: checking uic-qt$qt_add" >&5 +echo $ECHO_N "checking uic-qt$qt_add... $ECHO_C" >&6; } + if test -f ${QTDIR}/bin/uic-qt$qt_add + then + UIC=${QTDIR}/bin/uic-qt$qt_add + else + # Extract the first word of "uic", so it can be a program name with args. +set dummy uic; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_UIC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $UIC in + [\\/]* | ?:[\\/]*) + ac_cv_path_UIC="$UIC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_UIC="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +UIC=$ac_cv_path_UIC +if test -n "$UIC"; then + { echo "$as_me:$LINENO: result: $UIC" >&5 +echo "${ECHO_T}$UIC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + fi + + if test "x$UIC" = "x" + then + qt_ok=no + { echo "$as_me:$LINENO: result: uic (Qt user interface compiler) is not in the PATH variable" >&5 +echo "${ECHO_T}uic (Qt user interface compiler) is not in the PATH variable" >&6; } + else + qt_ok=yes + { echo "$as_me:$LINENO: result: uic (Qt user interface compiler) is found" >&5 +echo "${ECHO_T}uic (Qt user interface compiler) is found" >&6; } + fi + + if test "x$qt_ok" = "xyes" + then + { echo "$as_me:$LINENO: checking cheching equality Qt and uic tool version" >&5 +echo $ECHO_N "checking cheching equality Qt and uic tool version... $ECHO_C" >&6; } + UIC_VERSION=`$UIC -version 2>&1 | awk '{print $NF}'` + if test "x$QT_VERSION" = "x$UIC_VERSION" + then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + qt_ok=yes + else + { echo "$as_me:$LINENO: result: uic tool and Qt product are incompatible" >&5 +echo "${ECHO_T}uic tool and Qt product are incompatible" >&6; } + qt_ok=no + fi + fi +fi + +# +# check rcc presence (resources compiler) +# +if test "x$qt_ok" = "xyes" +then + if test "x$qt_add" = "xno" + then + if test -f ${QTDIR}/bin/rcc + then + QRCC=${QTDIR}/bin/rcc + else + # Extract the first word of "rcc", so it can be a program name with args. +set dummy rcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_QRCC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $QRCC in + [\\/]* | ?:[\\/]*) + ac_cv_path_QRCC="$QRCC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_QRCC="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +QRCC=$ac_cv_path_QRCC +if test -n "$QRCC"; then + { echo "$as_me:$LINENO: result: $QRCC" >&5 +echo "${ECHO_T}$QRCC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi + else + if test -f ${QTDIR}/bin/rcc-qt$qt_add + then + QRCC=${QTDIR}/bin/rcc-qt$qt_add + else + # Extract the first word of "rcc", so it can be a program name with args. +set dummy rcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_QRCC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $QRCC in + [\\/]* | ?:[\\/]*) + ac_cv_path_QRCC="$QRCC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_QRCC="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +QRCC=$ac_cv_path_QRCC +if test -n "$QRCC"; then + { echo "$as_me:$LINENO: result: $QRCC" >&5 +echo "${ECHO_T}$QRCC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi + fi + if test "x$QRCC" = "x" + then + qt_ok=no + { echo "$as_me:$LINENO: result: rcc (Qt resources compiler) is not in the PATH variable" >&5 +echo "${ECHO_T}rcc (Qt resources compiler) is not in the PATH variable" >&6; } + else + qt_ok=yes + { echo "$as_me:$LINENO: result: rcc (Qt resources compiler) is found" >&5 +echo "${ECHO_T}rcc (Qt resources compiler) is found" >&6; } + fi + + if test "x$qt_ok" = "xyes" + then + { echo "$as_me:$LINENO: checking cheching equality Qt and rcc tool version" >&5 +echo $ECHO_N "checking cheching equality Qt and rcc tool version... $ECHO_C" >&6; } + QRCC_VERSION=`$QRCC -v 2>&1 | awk '{print $NF}'` + if test "x$QT_VERSION" = "x$QRCC_VERSION" + then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + qt_ok=yes + else + { echo "$as_me:$LINENO: result: rcc tool and Qt product are incompatible" >&5 +echo "${ECHO_T}rcc tool and Qt product are incompatible" >&6; } + qt_ok=no + fi + fi +fi + +# +# check lrelease presence (translation files compiler) +# +if test "x$qt_ok" = "xyes" +then + if test "x$qt_add" = "xno" + then + if test -f ${QTDIR}/bin/lrelease + then + LRELEASE=${QTDIR}/bin/lrelease + else + # Extract the first word of "lrelease", so it can be a program name with args. +set dummy lrelease; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_LRELEASE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $LRELEASE in + [\\/]* | ?:[\\/]*) + ac_cv_path_LRELEASE="$LRELEASE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_LRELEASE="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +LRELEASE=$ac_cv_path_LRELEASE +if test -n "$LRELEASE"; then + { echo "$as_me:$LINENO: result: $LRELEASE" >&5 +echo "${ECHO_T}$LRELEASE" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi + else + if test -f ${QTDIR}/bin/lrelease-qt$qt_add + then + LRELEASE=${QTDIR}/bin/lrelease-qt$qt_add + else + # Extract the first word of "lrelease", so it can be a program name with args. +set dummy lrelease; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_LRELEASE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $LRELEASE in + [\\/]* | ?:[\\/]*) + ac_cv_path_LRELEASE="$LRELEASE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_LRELEASE="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +LRELEASE=$ac_cv_path_LRELEASE +if test -n "$LRELEASE"; then + { echo "$as_me:$LINENO: result: $LRELEASE" >&5 +echo "${ECHO_T}$LRELEASE" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi + fi + if test "x$LRELEASE" = "x" + then + qt_ok=no + { echo "$as_me:$LINENO: result: lrelease (Qt translation files compiler) is not in the PATH variable" >&5 +echo "${ECHO_T}lrelease (Qt translation files compiler) is not in the PATH variable" >&6; } + else + qt_ok=yes + { echo "$as_me:$LINENO: result: lrelease (Qt translation files compiler) is found" >&5 +echo "${ECHO_T}lrelease (Qt translation files compiler) is found" >&6; } + fi + + if test "x$qt_ok" = "xyes" + then + { echo "$as_me:$LINENO: checking equality of Qt and lrelease tool version" >&5 +echo $ECHO_N "checking equality of Qt and lrelease tool version... $ECHO_C" >&6; } + LRELEASE_VERSION=`$LRELEASE -version 2>&1 | awk '{print $NF}'` + if test "x$QT_VERSION" = "x$LRELEASE_VERSION" + then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + qt_ok=yes + else + { echo "$as_me:$LINENO: result: lrelease tool and Qt product are incompatible" >&5 +echo "${ECHO_T}lrelease tool and Qt product are incompatible" >&6; } + qt_ok=no + fi + fi +fi + +QT_ROOT=$QTDIR + +# +# check Qt header files +# +if test "x$qt_ok" = "xyes" +then + { echo "$as_me:$LINENO: checking include Qt header files..." >&5 +echo "$as_me: checking include Qt header files..." >&6;} + + CPPFLAGS_old=$CPPFLAGS + CPPFLAGS="$CPPFLAGS -I${QTDIR}/include${QTINC} -I${QTDIR}/include${QTINC}/QtCore" + if test "${ac_cv_header_QObject+set}" = set; then + { echo "$as_me:$LINENO: checking for QObject" >&5 +echo $ECHO_N "checking for QObject... $ECHO_C" >&6; } +if test "${ac_cv_header_QObject+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_QObject" >&5 +echo "${ECHO_T}$ac_cv_header_QObject" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking QObject usability" >&5 +echo $ECHO_N "checking QObject usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking QObject presence" >&5 +echo $ECHO_N "checking QObject presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: QObject: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: QObject: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: QObject: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: QObject: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: QObject: present but cannot be compiled" >&5 +echo "$as_me: WARNING: QObject: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: QObject: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: QObject: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: QObject: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: QObject: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: QObject: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: QObject: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: QObject: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: QObject: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: QObject: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: QObject: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ----------------------------------------------- ## +## Report this to webmaster.salome@opencascade.com ## +## ----------------------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for QObject" >&5 +echo $ECHO_N "checking for QObject... $ECHO_C" >&6; } +if test "${ac_cv_header_QObject+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_QObject=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_QObject" >&5 +echo "${ECHO_T}$ac_cv_header_QObject" >&6; } + +fi +if test $ac_cv_header_QObject = yes; then + qt_ok=yes +else + qt_ok=no +fi + + + CPPFLAGS=$CPPFLAGS_old + + if test "x$qt_ok" = "xno" + then + { echo "$as_me:$LINENO: result: qt header files are not found in $QTDIR/include${QTINC}/QtCore" >&5 +echo "${ECHO_T}qt header files are not found in $QTDIR/include${QTINC}/QtCore" >&6; } + { echo "$as_me:$LINENO: result: QTDIR environment variable may be wrong (probably too old Qt version)" >&5 +echo "${ECHO_T}QTDIR environment variable may be wrong (probably too old Qt version)" >&6; } + else + { echo "$as_me:$LINENO: result: qt header files seem to be OK" >&5 +echo "${ECHO_T}qt header files seem to be OK" >&6; } + QT_INCLUDES="-I${QTDIR}/include${QTINC}" + # user header files + QT_INCLUDES="${QT_INCLUDES} -I${QTDIR}/include${QTINC}/QtCore" + QT_INCLUDES="${QT_INCLUDES} -I${QTDIR}/include${QTINC}/QtGui" + QT_INCLUDES="${QT_INCLUDES} -I${QTDIR}/include${QTINC}/QtOpenGL" + QT_INCLUDES="${QT_INCLUDES} -I${QTDIR}/include${QTINC}/QtXml" + # not used currently header files (uncomment if required) + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtAssistant" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtDBus" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtDesigner" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtNetwork" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtSql" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtSvg" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtTest" + #QT_INCLUDES="${QT_INCLUDES} -I$(QTDIR)/include${QTINC}/QtUiTools" + + QT_ASSISTANT_INCLUDES="${QT_ASSISTANT_INCLUDES} -I${QTDIR}/include${QTINC}/QtAssistant" + QT_ASSISTANT_INCLUDES="${QT_ASSISTANT_INCLUDES} -I${QTDIR}/include${QTINC}/QtNetwork" + + # this flag is obsolete with Qt 4 + QT_MT_INCLUDES="$QT_INCLUDES" + fi +fi + +# +# test Qt libraries +# +if test "x$qt_ok" = "xyes" +then + { echo "$as_me:$LINENO: checking linking against Qt library" >&5 +echo $ECHO_N "checking linking against Qt library... $ECHO_C" >&6; } + + CXXFLAGS_old=$CXXFLAGS + CXXFLAGS="$CXXFLAGS $QT_INCLUDES" + + LIBS_old=$LIBS + if test "x$QTDIR" = "x/usr" ; then + QT_LIB_DIR="" + elif test -d ${QTDIR}/lib; then + QT_LIB_DIR="-L$QTDIR/lib" + elif test -d ${QTDIR}/lib64; then + QT_LIB_DIR="-L$QTDIR/lib64" + elif test "x$QTDIR" = "x/usr/lib/qt4" ; then + QT_LIB_DIR="" + else + { { echo "$as_me:$LINENO: error: Can't detect of Qt library directory " >&5 +echo "$as_me: error: Can't detect of Qt library directory " >&2;} + { (exit 1); exit 1; }; } + qt_ok=no + fi + LIBS="$LIBS $QT_LIB_DIR -lQtCore" + + if test "${salome_cv_lib_qt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +int n; + char **s; + QCoreApplication a(n, s); + a.exec(); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "salome_cv_lib_qt=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "salome_cv_lib_qt=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi + + qt_ok="$salome_cv_lib_qt" + + # BEGIN: for CCRT (installation of qt have only a "lib" directory) + if test "x$qt_ok" = "xno" + then + QT_LIB_DIR="-L$QTDIR/lib" + LIBS="$LIBS_old $QT_LIB_DIR -lQtCore" + + if test "${salome_cv_lib_qt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +int n; + char **s; + QCoreApplication a(n, s); + a.exec(); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "salome_cv_lib_qt=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "salome_cv_lib_qt=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi + + qt_ok="$salome_cv_lib_qt" + fi + # END: for CCRT + + if test "x$qt_ok" = "xno" + then + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + { echo "$as_me:$LINENO: result: unable to link with qt library" >&5 +echo "${ECHO_T}unable to link with qt library" >&6; } + { echo "$as_me:$LINENO: result: QTDIR environment variable may be wrong (probably too old Qt version)" >&5 +echo "${ECHO_T}QTDIR environment variable may be wrong (probably too old Qt version)" >&6; } + else + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + # core libs + QT_CORE_LIBS="$QT_LIB_DIR -lQtCore -lQtXml" + # gui libs + QT_GUI_LIBS="$QT_LIB_DIR -lQtGui -lQtOpenGL" + # other libs (currently not used) + QT_OTHER_LIBS="$QT_LIB_DIR" + # other libs (can be used if necessary) + #QT_OTHER_LIBS="$QT_LIB_DIR -lQt3Support -lQtAssistantClient -lQtDesigner -lQtNetwork -lQtSql -lQtSvg -lQtTest -ltQtUiTools" + QT_ASSISTANT_LIBS="$QT_LIB_DIR -lQtAssistantClient -lQtNetwork" + # all libs + QT_LIBS="$QT_CORE_LIBS $QT_GUI_LIBS $QT_OTHER_LIBS" + # this flag is obsolete with Qt 4 + QT_MT_LIBS="$QT_LIBS" + fi + LIBS=$LIBS_old + CXXFLAGS=$CXXFLAGS_old +fi + + + + + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ echo "$as_me:$LINENO: result: for Qt: $qt_ok" >&5 +echo "${ECHO_T}for Qt: $qt_ok" >&6; } + +# Save cache +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + + + +echo +echo --------------------------------------------- +echo Testing html generators +echo --------------------------------------------- +echo + + + +#AC_CHECKING(for html generators) + +doxygen_ok=yes +# Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_DOXYGEN+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +DOXYGEN=$ac_cv_path_DOXYGEN +if test -n "$DOXYGEN"; then + { echo "$as_me:$LINENO: result: $DOXYGEN" >&5 +echo "${ECHO_T}$DOXYGEN" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +if test "x$DOXYGEN" = "x" +then + { echo "$as_me:$LINENO: WARNING: doxygen not found" >&5 +echo "$as_me: WARNING: doxygen not found" >&2;} + doxygen_ok=no +fi +if test "x$doxygen_ok" = "xyes" +then + version=`$DOXYGEN --version` + { echo "$as_me:$LINENO: result: doxygen version $version" >&5 +echo "${ECHO_T}doxygen version $version" >&6; } + case "$version" in + 1.4.4*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=no + ;; + 1.4.5*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + 1.4.6*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + 1.4.7*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + 1.4.8*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + 1.4.9*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + [1-9].[5-9]*) + DOXYGEN_WITH_PYTHON=yes + DOXYGEN_WITH_STL=yes + ;; + *) + DOXYGEN_WITH_PYTHON=no + DOXYGEN_WITH_STL=no + ;; + esac + { echo "$as_me:$LINENO: result: doxygen with support STL - $DOXYGEN_WITH_STL" >&5 +echo "${ECHO_T}doxygen with support STL - $DOXYGEN_WITH_STL" >&6; } + { echo "$as_me:$LINENO: result: doxygen with support PYTHON - $DOXYGEN_WITH_PYTHON" >&5 +echo "${ECHO_T}doxygen with support PYTHON - $DOXYGEN_WITH_PYTHON" >&6; } + if test "$DOXYGEN_WITH_PYTHON" == "yes" ; then + DOXYGEN_PYTHON_EXTENSION="*.py" + else + DOXYGEN_PYTHON_EXTENSION="" + fi + if test "$DOXYGEN_WITH_STL" == "yes" ; then + DOXYGEN_SUPPORT_STL="YES" + else + DOXYGEN_SUPPORT_STL="NO" + fi + + + + +fi + +graphviz_ok=yes +# Extract the first word of "dot", so it can be a program name with args. +set dummy dot; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_DOT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $DOT in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOT="$DOT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DOT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +DOT=$ac_cv_path_DOT +if test -n "$DOT"; then + { echo "$as_me:$LINENO: result: $DOT" >&5 +echo "${ECHO_T}$DOT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +if test "x$DOT" = "x" ; then + { echo "$as_me:$LINENO: WARNING: graphviz not found" >&5 +echo "$as_me: WARNING: graphviz not found" >&2;} + graphviz_ok=no +fi + +# Extract the first word of "latex", so it can be a program name with args. +set dummy latex; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_LATEX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $LATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_LATEX="$LATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_LATEX="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +LATEX=$ac_cv_path_LATEX +if test -n "$LATEX"; then + { echo "$as_me:$LINENO: result: $LATEX" >&5 +echo "${ECHO_T}$LATEX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +if test "x$LATEX" = "x" ; then + { echo "$as_me:$LINENO: WARNING: latex not found" >&5 +echo "$as_me: WARNING: latex not found" >&2;} +fi + + +# Extract the first word of "dvips", so it can be a program name with args. +set dummy dvips; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_DVIPS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $DVIPS in + [\\/]* | ?:[\\/]*) + ac_cv_path_DVIPS="$DVIPS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_DVIPS="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +DVIPS=$ac_cv_path_DVIPS +if test -n "$DVIPS"; then + { echo "$as_me:$LINENO: result: $DVIPS" >&5 +echo "${ECHO_T}$DVIPS" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +if test "x$DVIPS" = "x" ; then + { echo "$as_me:$LINENO: WARNING: dvips not found" >&5 +echo "$as_me: WARNING: dvips not found" >&2;} +fi + + +# Extract the first word of "pdflatex", so it can be a program name with args. +set dummy pdflatex; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_PDFLATEX+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $PDFLATEX in + [\\/]* | ?:[\\/]*) + ac_cv_path_PDFLATEX="$PDFLATEX" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PDFLATEX="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +PDFLATEX=$ac_cv_path_PDFLATEX +if test -n "$PDFLATEX"; then + { echo "$as_me:$LINENO: result: $PDFLATEX" >&5 +echo "${ECHO_T}$PDFLATEX" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +if test "x$PDFLATEX" = "x" ; then + { echo "$as_me:$LINENO: WARNING: pdflatex not found" >&5 +echo "$as_me: WARNING: pdflatex not found" >&2;} +fi + + +rst2html_ok=yes +# Extract the first word of "rst2html", so it can be a program name with args. +set dummy rst2html; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_RST2HTML+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RST2HTML in + [\\/]* | ?:[\\/]*) + ac_cv_path_RST2HTML="$RST2HTML" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_RST2HTML="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +RST2HTML=$ac_cv_path_RST2HTML +if test -n "$RST2HTML"; then + { echo "$as_me:$LINENO: result: $RST2HTML" >&5 +echo "${ECHO_T}$RST2HTML" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +if test "x$RST2HTML" = "x"; then + # Extract the first word of "rst2html.py", so it can be a program name with args. +set dummy rst2html.py; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_RST2HTML+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $RST2HTML in + [\\/]* | ?:[\\/]*) + ac_cv_path_RST2HTML="$RST2HTML" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_RST2HTML="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +RST2HTML=$ac_cv_path_RST2HTML +if test -n "$RST2HTML"; then + { echo "$as_me:$LINENO: result: $RST2HTML" >&5 +echo "${ECHO_T}$RST2HTML" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi + +if test "x$RST2HTML" = "x"; then + { echo "$as_me:$LINENO: WARNING: rst2html not found" >&5 +echo "$as_me: WARNING: rst2html not found" >&2;} + rst2html_ok=no +fi + + + if test x"$rst2html_ok" = xyes; then + RST2HTML_IS_OK_TRUE= + RST2HTML_IS_OK_FALSE='#' +else + RST2HTML_IS_OK_TRUE='#' + RST2HTML_IS_OK_FALSE= +fi + + + + +echo +echo --------------------------------------------- +echo Testing Kernel +echo --------------------------------------------- +echo + + + +{ echo "$as_me:$LINENO: checking for Kernel..." >&5 +echo "$as_me: checking for Kernel..." >&6;} + +Kernel_ok=no + +KERNEL_LDFLAGS="" +KERNEL_CXXFLAGS="" + + +# Check whether --with-kernel was given. +if test "${with_kernel+set}" = set; then + withval=$with_kernel; KERNEL_DIR="$withval" +else + KERNEL_DIR="" +fi + + +if test "x${KERNEL_DIR}" = "x" ; then + { echo "$as_me:$LINENO: result: for \${KERNEL_ROOT_DIR}: ${KERNEL_ROOT_DIR}" >&5 +echo "${ECHO_T}for \${KERNEL_ROOT_DIR}: ${KERNEL_ROOT_DIR}" >&6; } + # no --with-kernel-dir option used + if test "x${KERNEL_ROOT_DIR}" != "x" ; then + # KERNEL_ROOT_DIR environment variable defined + KERNEL_DIR=${KERNEL_ROOT_DIR} + else + # search Kernel binaries in PATH variable + # Extract the first word of "runSalome", so it can be a program name with args. +set dummy runSalome; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_TEMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $TEMP in + [\\/]* | ?:[\\/]*) + ac_cv_path_TEMP="$TEMP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_TEMP="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +TEMP=$ac_cv_path_TEMP +if test -n "$TEMP"; then + { echo "$as_me:$LINENO: result: $TEMP" >&5 +echo "${ECHO_T}$TEMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + if test "x${TEMP}" != "x" ; then + { echo "$as_me:$LINENO: result: runSalome was found at : ${TEMP}" >&5 +echo "${ECHO_T}runSalome was found at : ${TEMP}" >&6; } + KERNEL_BIN_DIR=`dirname ${TEMP}` + KERNEL_DIR=`cd ${KERNEL_BIN_DIR}/../..; pwd` + fi + fi +fi + +if test -f ${KERNEL_DIR}/bin/salome/runSalome ; then + { echo "$as_me:$LINENO: result: Using Kernel module distribution in ${KERNEL_DIR}" >&5 +echo "${ECHO_T}Using Kernel module distribution in ${KERNEL_DIR}" >&6; } + Kernel_ok=yes + + if test "x${KERNEL_ROOT_DIR}" = "x" ; then + KERNEL_ROOT_DIR=${KERNEL_DIR} + fi + + if test "x${KERNEL_SITE_DIR}" = "x" ; then + KERNEL_SITE_DIR=${KERNEL_ROOT_DIR} + fi + + + + + KERNEL_LDFLAGS=-L${KERNEL_DIR}/lib${LIB_LOCATION_SUFFIX}/salome + KERNEL_CXXFLAGS=-I${KERNEL_DIR}/include/salome + + + +else + { echo "$as_me:$LINENO: WARNING: \"Cannot find compiled Kernel module distribution\"" >&5 +echo "$as_me: WARNING: \"Cannot find compiled Kernel module distribution\"" >&2;} +fi + +{ echo "$as_me:$LINENO: result: for Kernel: $Kernel_ok" >&5 +echo "${ECHO_T}for Kernel: $Kernel_ok" >&6; } + + + +echo +echo --------------------------------------------- +echo Testing GUI +echo --------------------------------------------- +echo + + + + +LightGUI_ok=no +FullGUI_ok=no + +GUI_LDFLAGS="" +GUI_CXXFLAGS="" + +SALOME_GUI_DIR="" + + +# Check whether --with-gui was given. +if test "${with_gui+set}" = set; then + withval=$with_gui; +else + with_gui=auto +fi + + +if test "${with_gui}" = "no"; then + SalomeGUI_need=no +else + # define SALOME_GUI_DIR + if test "${with_gui}" = "yes" -o "${with_gui}" = "auto"; then + SalomeGUI_need="$with_gui" + { echo "$as_me:$LINENO: result: try \${GUI_ROOT_DIR}: ${GUI_ROOT_DIR}" >&5 +echo "${ECHO_T}try \${GUI_ROOT_DIR}: ${GUI_ROOT_DIR}" >&6; } + if test "x${GUI_ROOT_DIR}" != "x" ; then + # GUI_ROOT_DIR environment variable defined + SALOME_GUI_DIR=${GUI_ROOT_DIR} + else + # search Salome binaries in PATH variable + # Extract the first word of "SUITApp", so it can be a program name with args. +set dummy SUITApp; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_TEMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $TEMP in + [\\/]* | ?:[\\/]*) + ac_cv_path_TEMP="$TEMP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_TEMP="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +TEMP=$ac_cv_path_TEMP +if test -n "$TEMP"; then + { echo "$as_me:$LINENO: result: $TEMP" >&5 +echo "${ECHO_T}$TEMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + if test "x${TEMP}" != "x" ; then + { echo "$as_me:$LINENO: result: SUITApp was found at : ${TEMP}" >&5 +echo "${ECHO_T}SUITApp was found at : ${TEMP}" >&6; } + SALOME_BIN_DIR=`dirname ${TEMP}` + SALOME_GUI_DIR=`cd ${SALOME_BIN_DIR}/../..; pwd` + fi + fi + else + # GUI directory defined by user + SalomeGUI_need=yes + SALOME_GUI_DIR="$with_gui" + fi + + # check GUI installation + { echo "$as_me:$LINENO: checking for light GUI..." >&5 +echo "$as_me: checking for light GUI..." >&6;} + if test -f ${SALOME_GUI_DIR}/bin/salome/SUITApp ; then + LightGUI_ok=yes + { echo "$as_me:$LINENO: result: Using SALOME GUI distribution in ${SALOME_GUI_DIR}" >&5 +echo "${ECHO_T}Using SALOME GUI distribution in ${SALOME_GUI_DIR}" >&6; } + + GUI_ROOT_DIR=${SALOME_GUI_DIR} + + GUI_LDFLAGS=-L${SALOME_GUI_DIR}/lib${LIB_LOCATION_SUFFIX}/salome + GUI_CXXFLAGS=-I${SALOME_GUI_DIR}/include/salome + + { echo "$as_me:$LINENO: checking for full GUI..." >&5 +echo "$as_me: checking for full GUI..." >&6;} + if test -f ${SALOME_GUI_DIR}/bin/salome/SALOME_Session_Server ; then + FullGUI_ok=yes + fi + else + { echo "$as_me:$LINENO: WARNING: \"Cannot find compiled SALOME GUI distribution\"" >&5 +echo "$as_me: WARNING: \"Cannot find compiled SALOME GUI distribution\"" >&2;} + fi + { echo "$as_me:$LINENO: result: for light GUI: ${LightGUI_ok}" >&5 +echo "${ECHO_T}for light GUI: ${LightGUI_ok}" >&6; } + { echo "$as_me:$LINENO: result: for full GUI: ${FullGUI_ok}" >&5 +echo "${ECHO_T}for full GUI: ${FullGUI_ok}" >&6; } +fi + + + + + + + SalomeGUI_ok=${LightGUI_ok} + + +echo +echo --------------------------------------------- +echo Testing full GUI +echo --------------------------------------------- +echo + + + + +LightGUI_ok=no +FullGUI_ok=no + +GUI_LDFLAGS="" +GUI_CXXFLAGS="" + +SALOME_GUI_DIR="" + + +# Check whether --with-gui was given. +if test "${with_gui+set}" = set; then + withval=$with_gui; +else + with_gui=auto +fi + + +if test "${with_gui}" = "no"; then + SalomeGUI_need=no +else + # define SALOME_GUI_DIR + if test "${with_gui}" = "yes" -o "${with_gui}" = "auto"; then + SalomeGUI_need="$with_gui" + { echo "$as_me:$LINENO: result: try \${GUI_ROOT_DIR}: ${GUI_ROOT_DIR}" >&5 +echo "${ECHO_T}try \${GUI_ROOT_DIR}: ${GUI_ROOT_DIR}" >&6; } + if test "x${GUI_ROOT_DIR}" != "x" ; then + # GUI_ROOT_DIR environment variable defined + SALOME_GUI_DIR=${GUI_ROOT_DIR} + else + # search Salome binaries in PATH variable + # Extract the first word of "SUITApp", so it can be a program name with args. +set dummy SUITApp; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_TEMP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $TEMP in + [\\/]* | ?:[\\/]*) + ac_cv_path_TEMP="$TEMP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_TEMP="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + ;; +esac +fi +TEMP=$ac_cv_path_TEMP +if test -n "$TEMP"; then + { echo "$as_me:$LINENO: result: $TEMP" >&5 +echo "${ECHO_T}$TEMP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + if test "x${TEMP}" != "x" ; then + { echo "$as_me:$LINENO: result: SUITApp was found at : ${TEMP}" >&5 +echo "${ECHO_T}SUITApp was found at : ${TEMP}" >&6; } + SALOME_BIN_DIR=`dirname ${TEMP}` + SALOME_GUI_DIR=`cd ${SALOME_BIN_DIR}/../..; pwd` + fi + fi + else + # GUI directory defined by user + SalomeGUI_need=yes + SALOME_GUI_DIR="$with_gui" + fi + + # check GUI installation + { echo "$as_me:$LINENO: checking for light GUI..." >&5 +echo "$as_me: checking for light GUI..." >&6;} + if test -f ${SALOME_GUI_DIR}/bin/salome/SUITApp ; then + LightGUI_ok=yes + { echo "$as_me:$LINENO: result: Using SALOME GUI distribution in ${SALOME_GUI_DIR}" >&5 +echo "${ECHO_T}Using SALOME GUI distribution in ${SALOME_GUI_DIR}" >&6; } + + GUI_ROOT_DIR=${SALOME_GUI_DIR} + + GUI_LDFLAGS=-L${SALOME_GUI_DIR}/lib${LIB_LOCATION_SUFFIX}/salome + GUI_CXXFLAGS=-I${SALOME_GUI_DIR}/include/salome + + { echo "$as_me:$LINENO: checking for full GUI..." >&5 +echo "$as_me: checking for full GUI..." >&6;} + if test -f ${SALOME_GUI_DIR}/bin/salome/SALOME_Session_Server ; then + FullGUI_ok=yes + fi + else + { echo "$as_me:$LINENO: WARNING: \"Cannot find compiled SALOME GUI distribution\"" >&5 +echo "$as_me: WARNING: \"Cannot find compiled SALOME GUI distribution\"" >&2;} + fi + { echo "$as_me:$LINENO: result: for light GUI: ${LightGUI_ok}" >&5 +echo "${ECHO_T}for light GUI: ${LightGUI_ok}" >&6; } + { echo "$as_me:$LINENO: result: for full GUI: ${FullGUI_ok}" >&5 +echo "${ECHO_T}for full GUI: ${FullGUI_ok}" >&6; } +fi + + + + + + + CORBA_IN_GUI=${FullGUI_ok} + + + +if test "x${CORBA_IN_GUI}" != "xyes"; then + echo "failed : For configure :sat:{PYCMP} module necessary full GUI !" + exit +fi + +echo +echo --------------------------------------------- +echo Summary +echo --------------------------------------------- +echo + +echo Configure +variables="python_ok omniORB_ok qt_ok doxygen_ok Kernel_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 + +if test "X$GMAKE" = "Xyes"; then + SETX=":" +else + SETX="set -x" +fi +echo +echo --------------------------------------------- +echo generating Makefiles and configure files +echo --------------------------------------------- +echo + +ac_config_commands="$ac_config_commands default-1" + + + +cat > hack_libtool <.in to manage. When you execute +# autoscan, the Makefile list is generated in the output file configure.scan. +# This could be helpfull to update de configuration. +ac_config_files="$ac_config_files adm_local/Makefile adm_local/unix/Makefile adm_local/unix/config_files/Makefile bin/VERSION bin/runAppli bin/Makefile doc/Makefile doc/doxyfile doc/static/header.html src/Makefile src/:sat:{PYCMP}/Makefile src/:sat:{PYCMP}GUI/Makefile resources/Makefile resources/:sat:{PYCMP}Catalog.xml idl/Makefile Makefile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +ac_script=' +t clear +:clear +s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g +t quote +s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g +t quote +b any +:quote +s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g +s/\[/\\&/g +s/\]/\\&/g +s/\$/$$/g +H +:any +${ + g + s/^\n// + s/\n/ /g + p +} +' +DEFS=`sed -n "$ac_script" confdefs.h` + + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${RST2HTML_IS_OK_TRUE}" && test -z "${RST2HTML_IS_OK_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"RST2HTML_IS_OK\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"RST2HTML_IS_OK\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/bash" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by Salome2 Project :sat:{PYCMP} module $as_me 6.3.0, which was +generated by GNU Autoconf 2.61. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + +Configuration files: +$config_files + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +Salome2 Project :sat:{PYCMP} module config.status 6.3.0 +configured by $0, generated by GNU Autoconf 2.61, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --he | --h | --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; + "hack_libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS hack_libtool" ;; + "adm_local/Makefile") CONFIG_FILES="$CONFIG_FILES adm_local/Makefile" ;; + "adm_local/unix/Makefile") CONFIG_FILES="$CONFIG_FILES adm_local/unix/Makefile" ;; + "adm_local/unix/config_files/Makefile") CONFIG_FILES="$CONFIG_FILES adm_local/unix/config_files/Makefile" ;; + "bin/VERSION") CONFIG_FILES="$CONFIG_FILES bin/VERSION" ;; + "bin/runAppli") CONFIG_FILES="$CONFIG_FILES bin/runAppli" ;; + "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "doc/doxyfile") CONFIG_FILES="$CONFIG_FILES doc/doxyfile" ;; + "doc/static/header.html") CONFIG_FILES="$CONFIG_FILES doc/static/header.html" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/:sat:{PYCMP}/Makefile") CONFIG_FILES="$CONFIG_FILES src/:sat:{PYCMP}/Makefile" ;; + "src/:sat:{PYCMP}GUI/Makefile") CONFIG_FILES="$CONFIG_FILES src/:sat:{PYCMP}GUI/Makefile" ;; + "resources/Makefile") CONFIG_FILES="$CONFIG_FILES resources/Makefile" ;; + "resources/:sat:{PYCMP}Catalog.xml") CONFIG_FILES="$CONFIG_FILES resources/:sat:{PYCMP}Catalog.xml" ;; + "idl/Makefile") CONFIG_FILES="$CONFIG_FILES idl/Makefile" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + +_ACEOF + +# Create sed commands to just substitute file output variables. + +# Remaining file output variables are in a fragment that also has non-file +# output varibles. + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +target!$target$ac_delim +target_cpu!$target_cpu$ac_delim +target_vendor!$target_vendor$ac_delim +target_os!$target_os$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +am__isrc!$am__isrc$ac_delim +CYGPATH_W!$CYGPATH_W$ac_delim +PACKAGE!$PACKAGE$ac_delim +VERSION!$VERSION$ac_delim +ACLOCAL!$ACLOCAL$ac_delim +AUTOCONF!$AUTOCONF$ac_delim +AUTOMAKE!$AUTOMAKE$ac_delim +AUTOHEADER!$AUTOHEADER$ac_delim +MAKEINFO!$MAKEINFO$ac_delim +install_sh!$install_sh$ac_delim +STRIP!$STRIP$ac_delim +INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim +mkdir_p!$mkdir_p$ac_delim +AWK!$AWK$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +am__leading_dot!$am__leading_dot$ac_delim +AMTAR!$AMTAR$ac_delim +am__tar!$am__tar$ac_delim +am__untar!$am__untar$ac_delim +XVERSION!$XVERSION$ac_delim +MODULE_NAME!$MODULE_NAME$ac_delim +ROOT_SRCDIR!$ROOT_SRCDIR$ac_delim +ROOT_BUILDDIR!$ROOT_BUILDDIR$ac_delim +AR!$AR$ac_delim +INSTALL!$INSTALL$ac_delim +GLOBAL_INSTALL!$GLOBAL_INSTALL$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +DEPDIR!$DEPDIR$ac_delim +am__include!$am__include$ac_delim +am__quote!$am__quote$ac_delim +AMDEP_TRUE!$AMDEP_TRUE$ac_delim +AMDEP_FALSE!$AMDEP_FALSE$ac_delim +AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim +CCDEPMODE!$CCDEPMODE$ac_delim +am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim +am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 94; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +/^[ ]*@CORBA@[ ]*$/{ +r $CORBA +d +} +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +LN_S!$LN_S$ac_delim +ECHO!$ECHO$ac_delim +RANLIB!$RANLIB$ac_delim +CPP!$CPP$ac_delim +CXX!$CXX$ac_delim +CXXFLAGS!$CXXFLAGS$ac_delim +ac_ct_CXX!$ac_ct_CXX$ac_delim +CXXDEPMODE!$CXXDEPMODE$ac_delim +am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim +am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim +CXXCPP!$CXXCPP$ac_delim +F77!$F77$ac_delim +FFLAGS!$FFLAGS$ac_delim +ac_ct_F77!$ac_ct_F77$ac_delim +LIBTOOL!$LIBTOOL$ac_delim +PYTHON!$PYTHON$ac_delim +LIB_LOCATION_SUFFIX!$LIB_LOCATION_SUFFIX$ac_delim +LDEXPDYNFLAGS!$LDEXPDYNFLAGS$ac_delim +STDLIB!$STDLIB$ac_delim +PYTHON_PREFIX!$PYTHON_PREFIX$ac_delim +PYTHONHOME!$PYTHONHOME$ac_delim +PYTHON_VERSION!$PYTHON_VERSION$ac_delim +PYTHON_INCLUDES!$PYTHON_INCLUDES$ac_delim +PYTHON_LIBS!$PYTHON_LIBS$ac_delim +PYTHON_PLATFORM!$PYTHON_PLATFORM$ac_delim +PYTHON_SITE!$PYTHON_SITE$ac_delim +PYTHON_SITE_PACKAGE!$PYTHON_SITE_PACKAGE$ac_delim +PYTHON_SITE_EXEC!$PYTHON_SITE_EXEC$ac_delim +PYTHON_SITE_INSTALL!$PYTHON_SITE_INSTALL$ac_delim +pythondir!$pythondir$ac_delim +PYTHON_EXEC_PREFIX!$PYTHON_EXEC_PREFIX$ac_delim +pkgpythondir!$pkgpythondir$ac_delim +pyexecdir!$pyexecdir$ac_delim +pkgpyexecdir!$pkgpyexecdir$ac_delim +OMNIORB_IDL!$OMNIORB_IDL$ac_delim +OMNIORB_ROOT!$OMNIORB_ROOT$ac_delim +OMNIORB_INCLUDES!$OMNIORB_INCLUDES$ac_delim +acx_pthread_config!$acx_pthread_config$ac_delim +PTHREAD_CC!$PTHREAD_CC$ac_delim +PTHREAD_LIBS!$PTHREAD_LIBS$ac_delim +PTHREAD_CFLAGS!$PTHREAD_CFLAGS$ac_delim +OMNIORB_CXXFLAGS!$OMNIORB_CXXFLAGS$ac_delim +OMNIORB_LIBS!$OMNIORB_LIBS$ac_delim +OMNIORB_IDLCXXFLAGS!$OMNIORB_IDLCXXFLAGS$ac_delim +OMNIORB_PACOIDLCXXFLAGS!$OMNIORB_PACOIDLCXXFLAGS$ac_delim +OMNIORB_IDLPYFLAGS!$OMNIORB_IDLPYFLAGS$ac_delim +OMNIORB_IDL_CLN_H!$OMNIORB_IDL_CLN_H$ac_delim +OMNIORB_IDL_CLN_CXX!$OMNIORB_IDL_CLN_CXX$ac_delim +OMNIORB_IDL_CLN_OBJ!$OMNIORB_IDL_CLN_OBJ$ac_delim +OMNIORB_IDL_SRV_H!$OMNIORB_IDL_SRV_H$ac_delim +OMNIORB_IDL_SRV_CXX!$OMNIORB_IDL_SRV_CXX$ac_delim +OMNIORB_IDL_SRV_OBJ!$OMNIORB_IDL_SRV_OBJ$ac_delim +OMNIORB_IDL_TIE_H!$OMNIORB_IDL_TIE_H$ac_delim +OMNIORB_IDL_TIE_CXX!$OMNIORB_IDL_TIE_CXX$ac_delim +IDL!$IDL$ac_delim +CORBA_ROOT!$CORBA_ROOT$ac_delim +CORBA_INCLUDES!$CORBA_INCLUDES$ac_delim +CORBA_CXXFLAGS!$CORBA_CXXFLAGS$ac_delim +CORBA_LIBS!$CORBA_LIBS$ac_delim +IDLCXXFLAGS!$IDLCXXFLAGS$ac_delim +PACOIDLCXXFLAGS!$PACOIDLCXXFLAGS$ac_delim +IDLPYFLAGS!$IDLPYFLAGS$ac_delim +IDL_CLN_H!$IDL_CLN_H$ac_delim +IDL_CLN_CXX!$IDL_CLN_CXX$ac_delim +IDL_CLN_OBJ!$IDL_CLN_OBJ$ac_delim +IDL_SRV_H!$IDL_SRV_H$ac_delim +IDL_SRV_CXX!$IDL_SRV_CXX$ac_delim +IDL_SRV_OBJ!$IDL_SRV_OBJ$ac_delim +OGL_INCLUDES!$OGL_INCLUDES$ac_delim +OGL_LIBS!$OGL_LIBS$ac_delim +MOC!$MOC$ac_delim +UIC!$UIC$ac_delim +QRCC!$QRCC$ac_delim +LRELEASE!$LRELEASE$ac_delim +QTDIR!$QTDIR$ac_delim +QT_ROOT!$QT_ROOT$ac_delim +QT_INCLUDES!$QT_INCLUDES$ac_delim +QT_MT_INCLUDES!$QT_MT_INCLUDES$ac_delim +QT_ASSISTANT_INCLUDES!$QT_ASSISTANT_INCLUDES$ac_delim +QT_LIB_DIR!$QT_LIB_DIR$ac_delim +QT_CORE_LIBS!$QT_CORE_LIBS$ac_delim +QT_GUI_LIBS!$QT_GUI_LIBS$ac_delim +QT_OTHER_LIBS!$QT_OTHER_LIBS$ac_delim +QT_LIBS!$QT_LIBS$ac_delim +QT_MT_LIBS!$QT_MT_LIBS$ac_delim +QT_ASSISTANT_LIBS!$QT_ASSISTANT_LIBS$ac_delim +QT_VERSION!$QT_VERSION$ac_delim +QT_VERSION_ID!$QT_VERSION_ID$ac_delim +DOXYGEN!$DOXYGEN$ac_delim +DOXYGEN_WITH_PYTHON!$DOXYGEN_WITH_PYTHON$ac_delim +DOXYGEN_PYTHON_EXTENSION!$DOXYGEN_PYTHON_EXTENSION$ac_delim +DOXYGEN_WITH_STL!$DOXYGEN_WITH_STL$ac_delim +DOXYGEN_SUPPORT_STL!$DOXYGEN_SUPPORT_STL$ac_delim +DOT!$DOT$ac_delim +LATEX!$LATEX$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +DVIPS!$DVIPS$ac_delim +PDFLATEX!$PDFLATEX$ac_delim +RST2HTML!$RST2HTML$ac_delim +RST2HTML_IS_OK_TRUE!$RST2HTML_IS_OK_TRUE$ac_delim +RST2HTML_IS_OK_FALSE!$RST2HTML_IS_OK_FALSE$ac_delim +TEMP!$TEMP$ac_delim +KERNEL_ROOT_DIR!$KERNEL_ROOT_DIR$ac_delim +KERNEL_SITE_DIR!$KERNEL_SITE_DIR$ac_delim +KERNEL_LDFLAGS!$KERNEL_LDFLAGS$ac_delim +KERNEL_CXXFLAGS!$KERNEL_CXXFLAGS$ac_delim +GUI_LDFLAGS!$GUI_LDFLAGS$ac_delim +GUI_CXXFLAGS!$GUI_CXXFLAGS$ac_delim +GUI_ROOT_DIR!$GUI_ROOT_DIR$ac_delim +CORBA_IN_GUI!$CORBA_IN_GUI$ac_delim +SETX!$SETX$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 17; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + + + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + "default-1":C) \ + chmod +x ./bin/*; \ + ;; + "hack_libtool":C) +sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\ + $(pwd)/hack_libtool \1 \"\$@\" \n\ +}\n\ +CC=\"hack_libtool\"%g" libtool +sed -i "s%\(\s*\)for searchdir in \$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path; do%\1searchdirs=\"\$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path\"\n\1for searchdir in \$searchdirs; do%g" libtool +sed -i "s%\(\s*\)searchdirs=\"\$newlib_search_path \$lib_search_path \(.*\)\"%\1searchdirs=\"\$newlib_search_path \$lib_search_path\"\n\1sss_beg=\"\"\n\1sss_end=\"\2\"%g" libtool +sed -i "s%\(\s*\)\(for searchdir in \$searchdirs; do\)%\1for sss in \$searchdirs; do\n\1 if ! test -d \$sss; then continue; fi\n\1 ssss=\$(cd \$sss; pwd)\n\1 if test \"\$ssss\" != \"\" \&\& test -d \$ssss; then\n\1 case \$ssss in\n\1 /usr/lib | /usr/lib64 ) ;;\n\1 * ) sss_beg=\"\$sss_beg \$ssss\" ;;\n\1 esac\n\1 fi\n\1done\n\1searchdirs=\"\$sss_beg \$sss_end\"\n\1\2%g" libtool + ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff --git a/data/templates/PythonComponent/configure.ac b/data/templates/PythonComponent/configure.ac new file mode 100755 index 0000000..785769c --- /dev/null +++ b/data/templates/PythonComponent/configure.ac @@ -0,0 +1,256 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# 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([Salome2 Project :sat:{PYCMP} module], [6.3.0], [webmaster.salome@opencascade.com], [Salome:sat:{PYCMP}]) +AC_CONFIG_AUX_DIR(adm_local/unix/config_files) +AC_CANONICAL_HOST +AC_CANONICAL_TARGET +AM_INIT_AUTOMAKE([-Wno-portability]) + +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=:sat:{PYCMP_minus} +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 +AC_LOCAL_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='\${KERNEL_ROOT_DIR}'/adm_local/unix/config_files/install-sh + ;; +esac + +echo +echo --------------------------------------------- +echo testing python +echo --------------------------------------------- +echo + +CHECK_PYTHON + +AM_PATH_PYTHON(2.3) + +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 QT +echo --------------------------------------------- +echo + +CHECK_QT + +echo +echo --------------------------------------------- +echo Testing html generators +echo --------------------------------------------- +echo + +CHECK_HTML_GENERATORS + +echo +echo --------------------------------------------- +echo Testing Kernel +echo --------------------------------------------- +echo + +CHECK_KERNEL + +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 :sat:{PYCMP} module necessary full GUI !" + exit +fi + +echo +echo --------------------------------------------- +echo Summary +echo --------------------------------------------- +echo + +echo Configure +variables="python_ok omniORB_ok qt_ok doxygen_ok Kernel_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/*; \ +]) + +AC_HACK_LIBTOOL +AC_CONFIG_COMMANDS([hack_libtool],[ +sed -i "s%^CC=\"\(.*\)\"%hack_libtool (){ \n\ + $(pwd)/hack_libtool \1 \"\$[@]\" \n\ +}\n\ +CC=\"hack_libtool\"%g" libtool +sed -i "s%\(\s*\)for searchdir in \$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path; do%\1searchdirs=\"\$newlib_search_path \$lib_search_path \$sys_lib_search_path \$shlib_search_path\"\n\1for searchdir in \$searchdirs; do%g" libtool +sed -i "s%\(\s*\)searchdirs=\"\$newlib_search_path \$lib_search_path \(.*\)\"%\1searchdirs=\"\$newlib_search_path \$lib_search_path\"\n\1sss_beg=\"\"\n\1sss_end=\"\2\"%g" libtool +sed -i "s%\(\s*\)\(for searchdir in \$searchdirs; do\)%\1for sss in \$searchdirs; do\n\1 if ! test -d \$sss; then continue; fi\n\1 ssss=\$(cd \$sss; pwd)\n\1 if test \"\$ssss\" != \"\" \&\& test -d \$ssss; then\n\1 case \$ssss in\n\1 /usr/lib | /usr/lib64 ) ;;\n\1 * ) sss_beg=\"\$sss_beg \$ssss\" ;;\n\1 esac\n\1 fi\n\1done\n\1searchdirs=\"\$sss_beg \$sss_end\"\n\1\2%g" libtool +],[]) + +# This list is initiated using autoscan and must be updated manually +# when adding a new file .in to manage. When you execute +# autoscan, the Makefile list is generated in the output file configure.scan. +# This could be helpfull to update de configuration. +AC_OUTPUT([ \ + adm_local/Makefile \ + adm_local/unix/Makefile \ + adm_local/unix/config_files/Makefile \ + bin/VERSION \ + bin/runAppli \ + bin/Makefile \ + doc/Makefile \ + doc/doxyfile \ + doc/static/header.html \ + src/Makefile \ + src/Controller/Makefile \ + src/Dialog/Makefile \ + src/Model/Makefile \ + src/View/Makefile \ + src/Tools/Makefile \ + src/:sat:{PYCMP}GUI/Makefile \ + resources/Makefile \ + resources/:sat:{PYCMP}Catalog.xml \ + idl/Makefile \ + Makefile \ +]) diff --git a/data/templates/PythonComponent/doc/Makefile.am b/data/templates/PythonComponent/doc/Makefile.am new file mode 100755 index 0000000..fc2ac4b --- /dev/null +++ b/data/templates/PythonComponent/doc/Makefile.am @@ -0,0 +1,54 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +EXTRA_DIST += images static/footer.html static/doxygen.css + +guidocdir = $(docdir)/gui/:sat:{PYCMP} +guidoc_DATA = images/head.png + +usr_docs: doxyfile + $(DOXYGEN) doxyfile + +docs: usr_docs + +dev_docs: + +clean-local: + @for filen in `find . -maxdepth 1` ; do \ + case $${filen} in \ + ./Makefile | ./doxyfile ) ;; \ + . | .. | ./static ) ;; \ + *) echo "Removing $${filen}" ; rm -rf $${filen} ;; \ + esac ; \ + done ; + +install-data-local: usr_docs + $(INSTALL) -d $(DESTDIR)$(docdir)/gui/:sat:{PYCMP} + @for filen in `find . -maxdepth 1` ; do \ + case $${filen} in \ + ./Makefile | ./doxyfile | ./doxyfile.bak ) ;; \ + . | .. | ./static ) ;; \ + *) echo "Installing $${filen}" ; cp -rp $${filen} $(DESTDIR)$(docdir)/gui/:sat:{PYCMP} ;;\ + esac ; \ + done ; + +uninstall-local: + rm -rf $(DESTDIR)$(docdir)/gui/:sat:{PYCMP} diff --git a/data/templates/PythonComponent/doc/Makefile.in b/data/templates/PythonComponent/doc/Makefile.in new file mode 100755 index 0000000..71dfed1 --- /dev/null +++ b/data/templates/PythonComponent/doc/Makefile.in @@ -0,0 +1,601 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/doxyfile.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am +subdir = doc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = doxyfile +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(guidocdir)" +guidocDATA_INSTALL = $(INSTALL_DATA) +DATA = $(guidoc_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) \ + images static/footer.html static/doxygen.css +guidocdir = $(docdir)/gui/:sat:{PYCMP} +guidoc_DATA = images/head.png +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +doxyfile: $(top_builddir)/config.status $(srcdir)/doxyfile.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-guidocDATA: $(guidoc_DATA) + @$(NORMAL_INSTALL) + test -z "$(guidocdir)" || $(MKDIR_P) "$(DESTDIR)$(guidocdir)" + @list='$(guidoc_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(guidocDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(guidocdir)/$$f'"; \ + $(guidocDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(guidocdir)/$$f"; \ + done + +uninstall-guidocDATA: + @$(NORMAL_UNINSTALL) + @list='$(guidoc_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(guidocdir)/$$f'"; \ + rm -f "$(DESTDIR)$(guidocdir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(guidocdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-data-local install-guidocDATA + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-guidocDATA uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + clean-local distclean distclean-generic distclean-libtool \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-data-local \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-guidocDATA install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-guidocDATA uninstall-local + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; + +usr_docs: doxyfile + $(DOXYGEN) doxyfile + +docs: usr_docs + +dev_docs: + +clean-local: + @for filen in `find . -maxdepth 1` ; do \ + case $${filen} in \ + ./Makefile | ./doxyfile ) ;; \ + . | .. | ./static ) ;; \ + *) echo "Removing $${filen}" ; rm -rf $${filen} ;; \ + esac ; \ + done ; + +install-data-local: usr_docs + $(INSTALL) -d $(DESTDIR)$(docdir)/gui/:sat:{PYCMP} + @for filen in `find . -maxdepth 1` ; do \ + case $${filen} in \ + ./Makefile | ./doxyfile | ./doxyfile.bak ) ;; \ + . | .. | ./static ) ;; \ + *) echo "Installing $${filen}" ; cp -rp $${filen} $(DESTDIR)$(docdir)/gui/:sat:{PYCMP} ;;\ + esac ; \ + done ; + +uninstall-local: + rm -rf $(DESTDIR)$(docdir)/gui/:sat:{PYCMP} +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/doc/doxyfile.in b/data/templates/PythonComponent/doc/doxyfile.in new file mode 100755 index 0000000..90f9501 --- /dev/null +++ b/data/templates/PythonComponent/doc/doxyfile.in @@ -0,0 +1,81 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +PROJECT_NAME = ":sat:{PYCMP} sample module reference manual v.@VERSION@" +OUTPUT_DIRECTORY = . +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +TAB_SIZE = 5 + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES + +#--------------------------------------------------------------------------- +#Input related options +#--------------------------------------------------------------------------- +INPUT = @srcdir@ +FILE_PATTERNS = *.doc +EXCLUDE = +IMAGE_PATH = @srcdir@/images +EXAMPLE_PATH = + +#--------------------------------------------------------------------------- +#HTML related options +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = . +HTML_HEADER = @builddir@/static/header.html +HTML_FOOTER = @srcdir@/static/footer.html +HTML_STYLESHEET = @srcdir@/static/doxygen.css +TOC_EXPAND = YES +DISABLE_INDEX = NO +GENERATE_TREEVIEW = YES +TREEVIEW_WIDTH = 300 + +#--------------------------------------------------------------------------- +#SORT related options +#--------------------------------------------------------------------------- +SORT_GROUP_NAMES = NO + + +#--------------------------------------------------------------------------- +#LaTeX related option +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO + +#--------------------------------------------------------------------------- +#RTF related options +#--------------------------------------------------------------------------- +GENERATE_RTF = NO + +#--------------------------------------------------------------------------- +#External reference options +#--------------------------------------------------------------------------- +TAGFILES = +ALLEXTERNALS = NO +SEARCHENGINE = NO diff --git a/data/templates/PythonComponent/doc/images/head.png b/data/templates/PythonComponent/doc/images/head.png new file mode 100755 index 0000000000000000000000000000000000000000..307d9ef9a4c07f8fba2c8721309a978433bcf63c GIT binary patch literal 78545 zcmV(=K-s^EP)KLZ*U+9)Gc>Uwq5=^`M4BQav zC@~mCR4i{s){CyJy!Z0*`{S%{?X&l}`|Q2XS{DG4r!SY621@~u$`kN|Je=tfkx_K) z0Du7=V1OwAOjbs^U$A=!5XsBUg`OdD0$&6H@OoIh0&vsNGk{J9|DU8;>3o6cm;e!* zvpE?o5f_L!B}hR1Px(02E1V7jRgKA~q2*i60W=BI4x$ z;7AEyaokrd;A9KLmvTu<&*5_u5(RV}mM-1Y+L}T4YB~8euXQVS(9J=A3hxi`{{&gM(L7aFFpTiSHgo&n% z%S#Zoo5$t~xM@5(m-nBV_z%PWq{X=wiPHEHP-BdM)O9LAe(eV+3K1aD`^8=Vqi??W zFd%+;;VP4hbN}x*{b#|Y;w6Kd@Hx&UD1^=u@-r9r#Lp6-0Rcz?Dv$@tKpp4+LtqB1 zfGuzYZonJ(gAfo2Rs$AD1gU@zvOpf#1PVbh*a`N4YETCnK{IFt$3Z7J13Xv3lIchAu>dPU)xk0{A5EKc;LJ1HL5<+>_t9A*$Rj+w(^vGQ1b ztR2=L%ft$>h1e?WQS4dl5OxCl21mrH;LLFDxF{SCmyfH!9l@Q!4dEtn3wSBKCf)|` zk7wg^@TK@hd^i3&egeNhkS1so>_C83pYk??@5*JW(Ig>h2k8*$9O*9UC7DdtB0G|!$O7^Xax?h?`4Rbz1VzF~!b^fJ zu|c9nqC;Xx;<+SVQd81Nay<4KR#Ayj<$@V3!ONN%r%Pp02 zl;g-1$+gMdmU|~pmv@s-mft1cDgRIbrJ$z}sF0L~^(u2np!*snOJq^#tjl&(~zbU|rGnWpThoTOZ?d`5X%g`#4w!c{3(Iji!NE=zZ! zr_d|uz4TdCMO9B#p=!PAfa-#pwpyrKzFM2wLv?~WLp@%-T)jtqRzpR@Pa{vGMdO|( zUX!7jsJU0OPjg;NTPs{^t5&Dhl(w9*gyjC_sqjXI5<8*3Ox z8SgUgGyZ5|VUl9fXma0F#?;$1-?ZEGcQZXRmRXJ2EpxKDyZHw5F7p@5^p|m#?O%4s zf@0xkvDKo-;)A7?CEv2ua@tD6D%PsjYJ@>$1Tab%m#xv(&ej{OPg%dUv9uA`9Jl$+ z*3dTD_K5A&a_!}u<&De7?bPg;cJ+3n_H_GL`vdl)4yq1JhX#koj_QtV$0o-~Ctar` zr=w2KolTti&h5_gE;cUfT+X>7t{$#Mt^;l|ZlP|~Zjap6+!Nee+-E&3Jl1-g^F(|4 zc<%BX@lx_)c{O{@dRuv~^X~N_`2_n^`#kp5^X2D$*}0K=CJv2 z*YL9N(Fo&+brIJh6(YHjT~XMmu&Ab}xs`4!_pF?Vwuml_9$uxrDtpzH)e5UqR-cZM zjA6!{h(*VS#~z7&&-7UTb~$^RW5+4uOvc;Am&H#d*d^>v zm`-#^tVo>Ux^SzxFOocy>XPP@{gV$Re@Y2YX-mbW#-^U+$?%eSy=ls6*=d96`ssz~ zqibx|>{&C*_u)5XKpCqtx&&0w&s4uqN4P~emT8|^lldkqEbBzJbT%)$KSwWTd(LF8 zd+xVuQEORid-7ECHsy`2b6Quw9$Fu_zGs8_hJpTWll-#$SDV8( zcNZuXY%Cbx;<2TrP@<4uII`7tYuz@~Htx28?dIF7wtp;Q7hNqjDXu7fU&1Q6`iQBE%}Du1;nX3v$1WfgUM344Wm zM=O0RyQ(y*c2>QwPOQFN<6P5Lt600ec77jw-_U-?{jGIMb;Wh>4sZ|LsrRVwXwYh? zIEXozdGJYNSYzL}jBlHp6q<^gJ{;m58a*6zxVPD=x%r6Vk*;`ZQh=^oC;Q|`XFmw9jD{>BIB2SpF19#%Y3 zeAMu>?$2$bmZPV~T*vw!2S2_)&KiIAOU5tnCkmdBpHxh$Og2xMO`V!{pT6;Q<CYBs3V)UUwf4Er^B;b5{H=dBVs_#M|HY@@OJ2&qJoIYWtDd=lxks;4UoXrTy^()& z_$}jY-@EX4lM7kzvF|HC=zi$_==1Txr_@iM{sjY=^Zb#(TH62s00d`2O+f$vv5tKE zQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-DC;~}D zK~#9!oK{Vb+(Z!Vs%qO~?+jX2$toOJgplBnQx5P$_@&&qA>}7T;v)(YryN3v5M(#D z$L+47x_hSMv1f)&tQpJhkLp*iUR4?Flkb_?7y}@B7ZCt3y9?q^r$EQe;U$wrAA02@ zmS$&bomTHE{SxQ z>2m=xnvy+JhpIlKg!$miwW)5?^Lr?JHfEujZOM=hVuP4DISP1r?sDq9FH^u%$z{y< zWMjHg;*|{^)4+*zm~1?iK~rG&%VP7t$$0;`XADG?(H@n=Q6r~fbpG{}M|e2C19R5d znRsBqXV#edlIs5q{4`bbbB#X}6YpiMQu6Zaj7S@L0$pAA*DEKMxtc_3K`9O-%i!cR|i$IxHY)*%uA@!g@ zbVf=`X3IJtTq1dt@T7}LK)$`XdbBBmU!l)|XR1s2@%f)^j}}Mmw#++%Aao^Ng+9
eZ_V9+g<-2P3vp5# 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 D4zrO! literal 0 HcmV?d00001 diff --git a/data/templates/PythonComponent/doc/index.doc b/data/templates/PythonComponent/doc/index.doc new file mode 100755 index 0000000..a5fd6a4 --- /dev/null +++ b/data/templates/PythonComponent/doc/index.doc @@ -0,0 +1,666 @@ +/*! + +\mainpage Introduction to :sat:{PYCMP} sample module + +The purpose of the \b :sat:{PYCMP} module is to describe briefly the different +steps in the development of a SALOME module in Python. + +Contents: +- \subpage dev_steps +- \subpage tree_structure +- \subpage build_proc_files +- \subpage idl_dir +- \subpage src_dir +- \subpage bin_dir +- \subpage doc_dir +- \subpage build_procedure +- \subpage run_procedure +- \subpage load_module +- \subpage catalog_def +- \subpage load_lcc +- \subpage load_iapp + +\ref dev_steps ">> Next" + +\page dev_steps Steps in construction of the example module + +The example module chosen to illustrate the process of SALOME module +development is extremely simple. The module contains a single +component and this component provides a single service called \b +makeBanner that accepts a character string as the sole argument and +that returns a character string obtained by the concatenation of a +':sat:{PYCMP}' and the input string. The component also provides a simple +GUI. + +The steps in the development are as follows: +- create a module tree structure +- create a SALOME component that can be loaded by a Python SALOME container +- configure the module so that the component is known to SALOME +- add a graphic GUI + +\ref main "<< Previous"
\ref tree_structure ">> Next" + +\page tree_structure Create the module tree structure + +The first step in the development process is the creation of the +module tree file structure. The typical SALOME module usually includes +some set of the configuration files (used in the build procedure of a +module), Makefiles, IDL file that provides a definition of a CORBA +services implemented in a module and a set of source Python files +which implement the module CORBA engine and (optionally) its GUI. + +The following file structure is typical for the SALOME module: + +
++ :sat:{PYCMP}1_SRC
+   + build_configure
+   + configure.ac
+   + Makefile.am
+   + adm_local
+     + Makefile.am
+     + unix
+       + Makefile.am
+       + make_common_starter.am
+       + config_files
+         + Makefile.am
+         + check_:sat:{PYCMP}.m4
+   + bin
+     + Makefile.am
+     + VERSION.in
+     + runAppli.in
+     + myrunSalome.py
+   + idl
+     + Makefile.am
+     + :sat:{PYCMP}_Gen.idl
+   + src
+     + Makefile.am
+     + :sat:{PYCMP}
+       + Makefile.am
+       + :sat:{PYCMP}.py
+       + :sat:{PYCMP}_utils.py
+     + :sat:{PYCMP}GUI
+       + Makefile.am
+       + :sat:{PYCMP}GUI.py
+       + :sat:{PYCMP}_msg_en.ts
+       + :sat:{PYCMP}_icons.ts
+   + resources
+     + Makefile.am
+     + :sat:{PYCMP}.png
+     + :sat:{PYCMP}_small.png
+     + Exec:sat:{PYCMP}.png
+     + handshake.png
+     + stop.png
+     + :sat:{PYCMP}Catalog.xml.in
+     + SalomeApp.xml
+   + doc
+     + Makefile.am
+     + doxyfile.in
+     + index.doc
+
+ +Note that other files can be optionally present. For example, in some +SALOME modules sources tree you can find such files as AUTHORS, +INSTALL, ChangeLog, COPYING, NEWS, README, etc. Some files are +specific only for this :sat:{PYCMP} sample module, for example PNG images +in the resources directory which are used in the GUI dialog boxes etc. + +The usual way of the sources directory tree structure initial creation +is to copy it from the existing SALOME module. + +\warning The files of the platform base module (KERNEL) must not be +copied to initialise a module tree structure. It is usually preferable +to copy files from another module such as GEOM or MED. + +The module name is :sat:{PYCMP}, the component name is :sat:{PYCMP} and all the +files are put in a directory named :sat:{PYCMP}1_SRC. +Below is a short description of these files. Note, that files with .in +suffix are the autoconf templates from which the actual files are +generated during the build procedure. + +- build_configure, configure.ac, Makefile.am, make_common_starter.am + +These files are a part of the build system based on GNU +automake/autoconf auto-tools. These files define the build procedure, +namely, compilation and installation rules like compiler and linker +options, installation destination folder, package version etc. + +- adm_local/unix/config_files/check_:sat:{PYCMP}.m4 + +The files in this directory are also a part of the GNU auto-tools +-based build procedure. The scripts written in m4 language are usually +used to test an availability of some 3rd-party pre-requisite product, +compiler feature, different configuration options. + +- bin/VERSION.in + +This file is used to document the module, it must give its version (at +least) and (optionally) compatibilities or incompatibilities with +other modules. This file is strongly recommended but is not essential +for operation of the module. + +- bin/runAppli.in +- bin/runSalome.py + +These files are not essential but make the example easier to +use. These are scripts that can be used to run SALOME session with +:sat:{PYCMP} module. + +- idl/:sat:{PYCMP}_Gen.idl + +This is the CORBA IDL definition of the services implemented by SALOME +:sat:{PYCMP} module. + +- src/:sat:{PYCMP}/:sat:{PYCMP}.py +- src/:sat:{PYCMP}/:sat:{PYCMP}_utils.py + +These files provide the implementation of a CORBA engine of the +:sat:{PYCMP} module. In particular, this is an implementation of the +services defined in the :sat:{PYCMP}_Gen.idl file. + +- src/:sat:{PYCMP}GUI/:sat:{PYCMP}GUI.py + +The src/:sat:{PYCMP}GUI is an optional directory that provides an +implementation of :sat:{PYCMP} module's GUI. Strictly speaking, the +GUI is optional for each SALOME module. In some cases it's +enough to implement CORBA engine only. Then, the services of the +module will be avaiable in a CORBA environment. The module can be +loaded to the SALOME container and its services can be used in the +Supervisor computation schemas, in Python scripts or/and refer to it +in other modules. A GUI is necessary in the cases if it is planned to +access to the module functionality from the SALOME GUI session via +menu actions, dialog boxes and so on. + +- src/:sat:{PYCMP}GUI/:sat:{PYCMP}_msg_en.ts +- src/:sat:{PYCMP}GUI/:sat:{PYCMP}_icons.ts + +These files provide a description (internationalization) of GUI +resources of the :sat:{PYCMP} module. :sat:{PYCMP}_msg_en.ts provides an English +translation of the string resources used in a module. :sat:{PYCMP}_icons.ts +defines images and icons resources used within the GUI of the +:sat:{PYCMP} module. Please refer to Qt linguist documentation for more +details. + +- resources/:sat:{PYCMP}.png +- resources/:sat:{PYCMP}_small.png +- resources/Exec:sat:{PYCMP}.png +- resources/handshake.png +- resources/stop.png + +The resources folder usually includes different resource files used +within the SALOME module. For example, :sat:{PYCMP}.png file provides an icon +of :sat:{PYCMP} module to be shown in the SALOME GUI desktop. Exec:sat:{PYCMP}.png is +an icon for the makeBanner() function used in the menu and +toolbar. The icons handshake.png and stop.png are used in the dialog +boxes and :sat:{PYCMP}_small.png icon is used to display in the Object +browser for root :sat:{PYCMP} entity. + +- resources/:sat:{PYCMP}Catalog.xml.in + +The XML description of the CORBA services provided by the :sat:{PYCMP} +module. This file is parsed by Supervisor and YACS module to generate +the list of service nodes to be used in the calculation schemas. The +simplest way to create this file is to use Catalog Generator utility +provided by the SALOME KERNEL module, that can automatically generate +XML description file from the IDL file. + +- resources/SalomeApp.xml + +This file is essential for the module. It provides some parameters of +the module which define module behavior in SALOME. In particular it +should provide a section with the name corresponding to the name of a +module (":sat:{PYCMP}" in this case) with the following parameters: +\code +
+ + + +
+\endcode + +The "name" parameter defines GUI name of a module. The "icon" +parameter defines a GUI icon of a module. The parameter "library" +specifies the name of the C++ library representing the front-end of +the module in the SALOME GUI desktop. The Python modules which do not +implement its own C++ front-end GUI library should specify +"SalomePyQtGUI" value in this parameter. + +The section "resources" also specifies the directory that contains +resources of a module (icons, translation files, etc). + +\code +
+ +
+\endcode + +- doc/doxyfile.in + +The Doxygen configuration file. The Doxygen is used to build this +documentation. The file doxyfile.in provides a rules for the +generation of module documentation. + +- doc/index.doc + +An input file for the Doxygen, which provides a source of this documentation. + +\ref dev_steps "<< Previous"
\ref build_proc_files ">> Next" + +\page build_proc_files Build procedure input files + +SALOME uses autoconf and automake GNU auto-tools to build the +modules. The configure script is used for the build procedure to test +the system configuration and to pre-configure the module construction +Makefile files. + +The \b build_configure script provides a procedure that uses \b +configure.ac and set of \b Makefile.am files as input and uses autoconf +to generate the configure script and automake to generate Makefile.in +files. + +The files with an .in extension are the skeletons that are the input +of the configure script (to be more precise, these files should be +listed in the end of the configure.ac file in the AC_OUTPUT() +autoconf macro) and are transformed by the configure process. + +Almost all files used for this process are located in the platform +base module KERNEL that is referenced by the KERNEL_ROOT_DIR +environment variable, namely in its salome_adm sub-folder. +Similarly, the GUI_ROOT_DIR environment variable is used for the +graphical user interface (GUI), that also provides a set of +configuration utilities (m4 files) in its adm_local folder. However, +some files must be modified as a function of the target module. This +is the case for build_configure and configure.ac files which usually +need to be adapted to the module needs. + +The file \b make_common_starter.am file in the adm_local directory of +the example module provides basic build rules to be used in other +Makefile.am files. To refer to this file in the Makefile.am it is +necessary to use "include" clause: + +\code +include $(top_srcdir)/adm_local/unix/make_common_starter.am +\endcode + +The adm_local/unix/config_files is a directory in which the m4 files +that are used to test the configuration of the system in the configure +process can be placed. If the salome_adm files are not sufficient, +additional configuration files can be put to the adm_local directory. + +\ref tree_structure "<< Previous"
\ref idl_dir ">> Next" + +\page idl_dir The idl directory + +The idl directory requires a Makefile.am that must make the +compilation of the idl :sat:{PYCMP}_Gen.idl file and install all the +generated files into the correct module installation directories. The +BASEIDL_FILES target has to be modified to reach this goal. + +The idl file itself must define a CORBA module for which the name must +be different from the module name to avoid name conflicts and define a +CORBA interface that is derived at least from the EngineComponent interface +of the Engines module. The name of the CORBA module will be +\b :sat:{PYCMP}_ORB and the name of the interface will be \b :sat:{PYCMP}_Gen. + +\ref build_proc_files "<< Previous"
\ref src_dir ">> Next" + +\page src_dir The src directory + +The src contains all source files required to build and install CORBA +engine and (optionally) GUI of the module. Each of these entities usually +has (but this is not actually obligatory) its own directory. + +The Makefile.am simply triggers the path of sub-directories described +by the SUBDIRS target. + +- The src/:sat:{PYCMP} directory + +This directory contains the Python files that implement the engine +of the module. The Makefile.am defines the rules used to install these +files to the destination folder. The name of the module +engine Python file is predefined and should be set as .py +where is a name of the module. In the case of the :sat:{PYCMP} +module, the name of the engine Python script should be :sat:{PYCMP}.so. + +The :sat:{PYCMP}.py Python script implements :sat:{PYCMP} class that is derived +from the :sat:{PYCMP}_Gen interface of the :sat:{PYCMP}_ORB__POA CORBA module, +the SALOME_ComponentPy_i class (base implementation of SALOME +Python module engine exported by the KERNEL module) and +SALOME_DriverPy_i class that provides base implementation of +persistence mechanism. + +In particular, :sat:{PYCMP} class implements makeBanner() function that is +defined in the IDL interface :sat:{PYCMP}_ORB:::sat:{PYCMP}_Gen. + +\code +def makeBanner( self, name ): + banner = ":sat:{PYCMP} %s!" % name + return banner +\endcode + +Other services +defined in :sat:{PYCMP}_Gen CORBA interface also should be implemented by +this class. + +- The src/:sat:{PYCMP}GUI directory + +This directory contains the Python files that implement the GUI +of :sat:{PYCMP} module. The name of the module GUI Python script is +predefined and should be set as GUI.py where is a +name of the module. In the case of the :sat:{PYCMP} module, the name of the +GUI Python script should be :sat:{PYCMP}GUI.py. + +The implementation of GUI of the :sat:{PYCMP} module should be done +according to the architecture and rules specified by the SALOME GUI +module. The :sat:{PYCMP}.py script should implement a set of the functions +which define the module behavior in GUI, for example, create menus, +toolbars, define context popup menus, objects selection behavior, +implement dialog boxes etc. + +Here below is a short description of these methods. For more details +please refer to the SALOME GUI module documentation. + +- initialize() - module first initialization; usually used to create + GUI actions, menus, toolbars and so on; +- activate() - module activation; perform actions which should + be done when the module is activated by the user; +- deactivate() - module deactivation; perform actions which should + be done when the module is deactivated by the user; +- windows() - get a list and a position of the windows to be + associated with the module; these windows will be automatically + opened and positioned according to the setting defined by the value + returned by this function; +- views() - get a list of the compatible viewers; these viewers + will be automatically opened/raised on the module activation; +- createPopupMenu() - create and return context popup menu according + to the current selection; +- createPreferences() - initialize module's preferences; +- preferenceChanged() - callback function that is called when some + module's preference is changed by the user; allows to perform the + corresponding actions; +- engineIOR() - to get the reference to the module CORBA engine + +Note, that some of these methods are optional and need not be +obligatory implemented because SalomePyQtGUI_Module class provides a +base implementation of these functions. It's sometimes enough to +implement only some of them, depending on the module needs. + +In the case of :sat:{PYCMP} module, some of these functions are +implemented to provide a sample for the development: + +- engineIOR() that initializes :sat:{PYCMP} module's eggine: + +\code +def engineIOR(): + IOR = "" + if getORB() and getEngine(): + IOR = getORB().object_to_string( getEngine() ) + pass + return IOR +\endcode + +- initialize() that sets default module preferences + +\code +def initialize(): + if not sgPyQt.hasSetting( ":sat:{PYCMP}", "def_obj_name"): + sgPyQt.addSetting( ":sat:{PYCMP}", "def_obj_name", GUIcontext.DEFAULT_NAME ) + if not sgPyQt.hasSetting( ":sat:{PYCMP}", "creation_mode"): + sgPyQt.addSetting( ":sat:{PYCMP}", "creation_mode", 0 ) +\endcode + +- createPreferences() that initializes module preferences for the + application's Preferences dialog box + +\code +def createPreferences(): + if verbose() : print ":sat:{PYCMP}GUI.createPreferences() : study : %d" % _getStudyId() + gid = sgPyQt.addPreference( "General" ) + gid = sgPyQt.addPreference( "Object creation", gid ) + pid = sgPyQt.addPreference( "Default name", gid, SalomePyQt.PT_String, ":sat:{PYCMP}", "def_obj_name" ) + pid = sgPyQt.addPreference( "Default creation mode", gid, SalomePyQt.PT_Selector, ":sat:{PYCMP}", "creation_mode" ) + strings = QStringList() + strings.append( "Default name" ) + strings.append( "Generate name" ) + strings.append( "Ask name" ) + indexes = [] + indexes.append( QVariant(0) ) + indexes.append( QVariant(1) ) + indexes.append( QVariant(2) ) + sgPyQt.setPreferenceProperty( pid, "strings", QVariant( strings ) ) + sgPyQt.setPreferenceProperty( pid, "indexes", QVariant( indexes ) ) + pass +\endcode + +- windows() that defines dockable windows layout + +\code +def windows(): + if verbose() : print ":sat:{PYCMP}GUI.windows() : study : %d" % _getStudyId() + wm = {} + wm[SalomePyQt.WT_ObjectBrowser] = Qt.LeftDockWidgetArea + wm[SalomePyQt.WT_PyConsole] = Qt.BottomDockWidgetArea + return wm +\endcode + +Please refer to :sat:{PYCMP}GUI.py script for more details about +implementation of other callback functions. + +An implemention of the Show:sat:{PYCMP}() function is quite simple. It shows +the small dialog box allowing user to enter the name, and then uses +reference to the module CORBA engine to invoke its makeBanner() +service. + +Note, that GUI elements of the Python module are implemented with help +of PyQt toolkit which provides a Python wrappings of the Qt library. + +\ref idl_dir "<< Previous"
\ref bin_dir ">> Next" + +\page bin_dir The bin directory + +The file VERSION.in is used to document the module, it must define its +version and (optionally) its compatibilities or incompatibilities with +other modules. Therefore, it is strongly recommended but is not +essential for correct operation of the module. + +The runAppli.in file is the equivalent of the runSalome script +distributed by the KERNEL module but configured to start SALOME +session with :sat:{PYCMP} module only. + +The myrunSalome.py file reuses part of functionality provided by the +KERNEL's runSalome.py script. It is used to run SALOME session and +start :sat:{PYCMP} module in this session. + +\ref src_dir "<< Previous"
\ref doc_dir ">> Next" + +\page doc_dir The doc directory + +This directory provides documentation files of the module. The +documentation of the module can be implemented in the arbitrary +way. But if you want your documentation to appear in the SALOME GUI +desktop's Help menu, some specific actions should be done as follows. + +The documentation should be generated in the HTML format. For example, +the documentation of the :sat:{PYCMP} module is generated using Doxygen +tool. It allows to generate structured set of HTML pages from the set +of input plain text files. Input source files should include Doxygen +tags and optionally direct HTML tags. For more details please refer to +the Doxygen documentation. + +The resulting documentation of a module should include at least one +file index.html. All the HTML and image files should be exported by +the build procedure to the following directory: +/share/doc/salome/gui/ +where is a module installation folder and +MODULE is its name. For example, for :sat:{PYCMP} module, at least one file +should exist: +<:sat:{PYCMP}_module_installation_dir>/share/doc/salome/gui/:sat:{PYCMP}/index.html. + +The SALOME GUI automatically searches for the index.html file in the +mentioned module directory. If the file is found, the corresponding +menu command is automatically added to the Help menu of the SALOME GUI +desktop. + +\ref bin_dir "<< Previous"
\ref build_procedure ">> Next" + +\page build_procedure Construction, installation + +Before building :sat:{PYCMP} module, please ensure that SALOME environment is +set properly. Assume that SALOME environment is set in env_products.sh +script. In order to build and install :sat:{PYCMP} module, you have to +perform several steps: + +
+[bash% ] source env_products.sh
+[bash% ] mkdir :sat:{PYCMP}_BUILD
+[bash% ] cd :sat:{PYCMP}_BUILD
+[bash% ] ../:sat:{PYCMP}1_SRC/build_configure
+[bash% ] ../:sat:{PYCMP}1_SRC/configure --prefix=<:sat:{PYCMP}_module_installation_dir>
+[bash% ] make
+[bash% ] make install
+
+ +The first command creates a build directory for the :sat:{PYCMP} module. Then +next step is to cd to this build directory. From this directory you +sequentially invoke build_configure, configure, make and make install +commands. On each step, you have to ensure that the operation is +finished correctly (no errors raised). + +The <:sat:{PYCMP}_module_installation_dir> variable above defines the +destination directory to which the :sat:{PYCMP} module should be +installed. After the last step is finished, the :sat:{PYCMP} module is built +and installed to the <:sat:{PYCMP}_module_installation_dir> directory. + +\ref doc_dir "<< Previous"
\ref run_procedure ">> Next" + +\page run_procedure Running SALOME + +Go to the the <:sat:{PYCMP}_module_installation_dir> directory and type: + +
+[bash% ] ./bin/salome/runAppli
+
+ +This command runs SALOME session configured for KERNEL and the :sat:{PYCMP} +module. At the end of running, the user will be prompted by the +Python interpreter command line configured for SALOME that provides +access to SALOME Python API (including CORBA interfaces). + +The runAppli file is a shell script that executes a Python commands +running SALOME session by passing arguments to it in a command line: + +
+${KERNEL_ROOT_DIR}/bin/salome/envSalome.py python -i $:sat:{PYCMP}_ROOT_DIR/bin/salome/myrunSalome.py --modules=:sat:{PYCMP} --killall
+
+ +These arguments state that the myrunSalome.py script located in the +:sat:{PYCMP} module will be used, that the :sat:{PYCMP} component will be +activated and all previously running SALOME sessions should be +shutdowned. + +This command will not function unless the following environment +variables have previously been set: + +
+export KERNEL_ROOT_DIR=
+export :sat:{PYCMP}_ROOT_DIR=<:sat:{PYCMP} installation path>
+
+ +\warning It is possible that the SALOME run will not reach the end. +In some circumstances, the time to start CORBA servers may be long and +could exceed the timeout. If the reasons is that the time to +load dynamic libraries is long, it is possible that a second run +immediately afterwards will be successful. + +\ref build_procedure "<< Previous"
\ref load_module ">> Next" + +\page load_module Loading :sat:{PYCMP} component + +The :sat:{PYCMP}_ORB module has to be imported before making a request to +load the component into the container, to obtain access to methods of +the component. This container is made accessible in the runSalome.py +by means of the \b container variable: + +
+>> import :sat:{PYCMP}_ORB
+>> c=container.load_impl(":sat:{PYCMP}",":sat:{PYCMP}")
+>> c.makeBanner("Christian")
+
+ +The last instruction returns a string ":sat:{PYCMP} Christian". Proceed as +follows to see the CORBA objects created by these actions: + +
+>> clt.showNS()
+
+ +\ref run_procedure "<< Previous"
\ref catalog_def ">> Next" + +\page catalog_def :sat:{PYCMP} module catalog definition + +In the example from the previous chapter, the :sat:{PYCMP} component was +loaded by making a direct request to the SALOME container. This is not +the standard method for loading of a component. The normal way uses +the SALOME LifeCycle service that invokes SALOME Module Catalog +services to identify the component and its properties and then calls +the requested container to load the component. + +Before this method can be used, the component must be declared in a +catalog in the XML format, for which the name must be +Catalog.xml. In our case, it will be :sat:{PYCMP}Catalog.xml. +Usually this catalog is put to the resources sub-directory of the +directory tree. The simplest way to create this file is to use Catalog +Generator utility provided by the SALOME KERNEL module, that can +automatically generate XML description file from the IDL file. + +\ref load_module "<< Previous"
\ref load_lcc ">> Next" + +\page load_lcc Loading :sat:{PYCMP} component via LifeCycle service + +The method of loading the component is not very different from that +is described above. The services of the LifeCycle module are used in +this case instead of calling the container directly. The call sequence +is contained in the runSalome.Py \b test() function. + +
+    c=test(clt)
+    c.makeBanner("Christian")
+
+ +The test function creates the LifeCycle object. It then asks for the +:sat:{PYCMP} component to be loaded in the FactoryServer container: + +\code +def test(clt): + """ + Test function that creates an instance of :sat:{PYCMP} component + usage : myCompo=test(clt) + """ + import LifeCycleCORBA + lcc = LifeCycleCORBA.LifeCycleCORBA(clt.orb) + import :sat:{PYCMP}_ORB + myCompo = lcc.FindOrLoadComponent("FactoryServePy", ":sat:{PYCMP}") + return myCompo +\endcode + +\ref catalog_def "<< Previous"
\ref load_iapp ">> Next" + +\page load_iapp Loading from the GUI (IAPP) + +In order to activate :sat:{PYCMP} module in the SALOME GUI desktop, the user +should press the :sat:{PYCMP} module's button on the "Modules" toolbar or +select the name of the module in the combo box on this toolbar. + +The image file to be used as an icon of a module should be exported by +the module build procedure. The icon file name is defined in the +corresponding SalomeApp.xml configuration file: +\code +
+ + + +
+\endcode + +\ref load_lcc "<< Previous" + +*/ diff --git a/data/templates/PythonComponent/doc/static/doxygen.css b/data/templates/PythonComponent/doc/static/doxygen.css new file mode 100755 index 0000000..9d051a4 --- /dev/null +++ b/data/templates/PythonComponent/doc/static/doxygen.css @@ -0,0 +1,830 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 12px; +} + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + padding: 2px; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code { + color: #4665A2; +} + +a.codeRef { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.version { + border:1px solid #0000FF; + color: #CCCCCC; + font-family: Arial, Helvetica, sans-serif; + font-size: 9pt; + text-align: center; + width:100px; + -moz-border-radius: 8px; + margin: 5px; +} + +div.footer1 { + background-color: #DFE5F1; + border: 1px solid #AAAAAA; + font-family: Arial, Helvetica, sans-serif; + font-size: 11px; + padding: 10px; + margin-top: 15px; +} + + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 10px; + margin-right: 10px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #C4CFE5; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.memitem { + padding: 0; + margin-bottom: 10px; +} + +.memname { + white-space: nowrap; + font-weight: bold; + margin-left: 6px; +} + +.memproto { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 8px; + border-top-left-radius: 8px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 8px; + -moz-border-radius-topleft: 8px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 8px; + -webkit-border-top-left-radius: 8px; + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + +} + +.memdoc { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 2px 5px; + background-color: #FBFCFD; + border-top-width: 0; + /* opera specific markup */ + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7); + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7)); +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + border-spacing: 6px 2px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + + + + +/* @end */ + +/* @group Directory (tree) */ + +/* for the tree view */ + +.ftvtree { + font-family: sans-serif; + margin: 0px; +} + +/* these are for tree view when used as main index */ + +.directory { + font-size: 9pt; + font-weight: bold; + margin: 5px; +} + +.directory h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +/* +The following two styles can be used to replace the root node title +with an image of your choice. Simply uncomment the next two styles, +specify the name of your image and be sure to set 'height' to the +proper pixel height of your image. +*/ + +/* +.directory h3.swap { + height: 61px; + background-repeat: no-repeat; + background-image: url("yourimage.gif"); +} +.directory h3.swap span { + display: none; +} +*/ + +.directory > h3 { + margin-top: 0; +} + +.directory p { + margin: 0px; + white-space: nowrap; +} + +.directory div { + display: none; + margin: 0px; +} + +.directory img { + vertical-align: -30%; +} + +/* these are for tree view when not used as main index */ + +.directory-alt { + font-size: 100%; + font-weight: bold; +} + +.directory-alt h3 { + margin: 0px; + margin-top: 1em; + font-size: 11pt; +} + +.directory-alt > h3 { + margin-top: 0; +} + +.directory-alt p { + margin: 0px; + white-space: nowrap; +} + +.directory-alt div { + display: none; + margin: 0px; +} + +.directory-alt img { + vertical-align: -30%; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; +} + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug +{ + border-left:4px solid; + padding: 0 0 0 6px; +} + +dl.note +{ + border-color: #D0D000; +} + +dl.warning, dl.attention +{ + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + border-color: #00D000; +} + +dl.deprecated +{ + border-color: #505050; +} + +dl.todo +{ + border-color: #00C0E0; +} + +dl.test +{ + border-color: #3030E0; +} + +dl.bug +{ + border-color: #C08050; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + background-color: #175783; + border: 1px solid; + height: 80px; + background-repeat: no-repeat; +/* font: 300% arial,sans-serif;*/ + margin: 0px; + padding: 0px; +} + +#projectbrief +{ + font: 120% arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + background: url("head.png"); + background-color: #175783; + border: 1px solid; + height: 80px; + background-repeat: no-repeat; + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + diff --git a/data/templates/PythonComponent/doc/static/footer.html b/data/templates/PythonComponent/doc/static/footer.html new file mode 100755 index 0000000..ec09dc6 --- /dev/null +++ b/data/templates/PythonComponent/doc/static/footer.html @@ -0,0 +1,12 @@ + + + +
+
+ Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
+ Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+
+
+ + + diff --git a/data/templates/PythonComponent/doc/static/header.html.in b/data/templates/PythonComponent/doc/static/header.html.in new file mode 100755 index 0000000..9792445 --- /dev/null +++ b/data/templates/PythonComponent/doc/static/header.html.in @@ -0,0 +1,22 @@ + + + + +$title + + + + + + + + + + + +
+
Version: @VERSION@
+ +
diff --git a/data/templates/PythonComponent/idl/Makefile.am b/data/templates/PythonComponent/idl/Makefile.am new file mode 100755 index 0000000..a8f27f3 --- /dev/null +++ b/data/templates/PythonComponent/idl/Makefile.am @@ -0,0 +1,63 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# This 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 = :sat:{PYCMP}_Gen.idl + +# This variable defines the files to be installed +dist_salomeidl_DATA = $(BASEIDL_FILES) + +# 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 + +IDLCXXFLAGS = \ + -bcxx \ + @IDLCXXFLAGS@ \ + -I$(top_builddir)/idl/salome \ + -I$(KERNEL_ROOT_DIR)/idl/salome +IDLPYFLAGS = \ + @IDLPYFLAGS@ \ + -I$(KERNEL_ROOT_DIR)/idl/salome + +install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%) + $(INSTALL) -d $(DESTDIR)$(salomepythondir) + @for file in $^ dummy; do \ + if [ $$file != "dummy" ]; then \ + $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \ + fi ; \ + done ; + +# uninstall-local removes too much, but it works in distcheck +uninstall-local: + rm -rf $(DESTDIR)$(salomepythondir)/* + +mostlyclean-local: + -rm -f *.py + diff --git a/data/templates/PythonComponent/idl/Makefile.in b/data/templates/PythonComponent/idl/Makefile.in new file mode 100755 index 0000000..9fa51a8 --- /dev/null +++ b/data/templates/PythonComponent/idl/Makefile.in @@ -0,0 +1,608 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(dist_salomeidl_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am +subdir = idl +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(salomeidldir)" +dist_salomeidlDATA_INSTALL = $(INSTALL_DATA) +DATA = $(dist_salomeidl_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = \ + -bcxx \ + @IDLCXXFLAGS@ \ + -I$(top_builddir)/idl/salome \ + -I$(KERNEL_ROOT_DIR)/idl/salome + +IDLPYFLAGS = \ + @IDLPYFLAGS@ \ + -I$(KERNEL_ROOT_DIR)/idl/salome + +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ + +# 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 + +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + + +# 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. +# +BASEIDL_FILES = :sat:{PYCMP}_Gen.idl + +# This variable defines the files to be installed +dist_salomeidl_DATA = $(BASEIDL_FILES) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu idl/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu idl/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-dist_salomeidlDATA: $(dist_salomeidl_DATA) + @$(NORMAL_INSTALL) + test -z "$(salomeidldir)" || $(MKDIR_P) "$(DESTDIR)$(salomeidldir)" + @list='$(dist_salomeidl_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_salomeidlDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(salomeidldir)/$$f'"; \ + $(dist_salomeidlDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(salomeidldir)/$$f"; \ + done + +uninstall-dist_salomeidlDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_salomeidl_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(salomeidldir)/$$f'"; \ + rm -f "$(DESTDIR)$(salomeidldir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(salomeidldir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-dist_salomeidlDATA + +install-dvi: install-dvi-am + +install-exec-am: install-exec-local + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dist_salomeidlDATA uninstall-local + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dist_salomeidlDATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-exec-local install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-dist_salomeidlDATA \ + uninstall-local + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; + +install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%) + $(INSTALL) -d $(DESTDIR)$(salomepythondir) + @for file in $^ dummy; do \ + if [ $$file != "dummy" ]; then \ + $(OMNIORB_IDL) $(OMNIORB_IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ; \ + fi ; \ + done ; + +# uninstall-local removes too much, but it works in distcheck +uninstall-local: + rm -rf $(DESTDIR)$(salomepythondir)/* + +mostlyclean-local: + -rm -f *.py +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/idl/PYCMP_Gen.idl b/data/templates/PythonComponent/idl/PYCMP_Gen.idl new file mode 100755 index 0000000..e35d78c --- /dev/null +++ b/data/templates/PythonComponent/idl/PYCMP_Gen.idl @@ -0,0 +1,48 @@ +// Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + +// --- +// File : :sat:{PYCMP}GUI.py +// Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +// --- +// +#ifndef __:sat:{PYCMP}_GEN__ +#define __:sat:{PYCMP}_GEN__ + +#include "SALOME_Component.idl" +#include "SALOMEDS.idl" +#include "SALOME_Exception.idl" + +module :sat:{PYCMP}_ORB +{ + interface :sat:{PYCMP}_Gen : Engines::EngineComponent, SALOMEDS::Driver + { + string makeBanner(in string name) + raises (SALOME::SALOME_Exception); + + void createObject(in SALOMEDS::Study theStudy, + in string name) + raises (SALOME::SALOME_Exception); + }; +}; + +#endif diff --git a/data/templates/PythonComponent/resources/ExecCircle.png b/data/templates/PythonComponent/resources/ExecCircle.png new file mode 100755 index 0000000000000000000000000000000000000000..4241692c8db13b2e27d154c6558dc12efb633a16 GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJEKe85kcif|(++Y0C7f6P|Nq>o zw439u#KU_xw<%8DmbU70^K&)F&o_Uh{fiPdOTQL;L_u+r(#p>(%-TvWh`(H6en8DY z6_ja{<~bkUw`&;pTeB`93HFe6My^H7MQ8v3 literal 0 HcmV?d00001 diff --git a/data/templates/PythonComponent/resources/ExecPYCMP.png b/data/templates/PythonComponent/resources/ExecPYCMP.png new file mode 100755 index 0000000000000000000000000000000000000000..16a20c116e8243a6b49ed862613d2cc49bdf4caa GIT binary patch literal 831 zcmV-F1Hk-=P)A+3!%gdoE?w?yY*XMamxaAW~()k6;QGVVf3ZPpQcy+38CrH3{Qk zoaxN-vWJ+OcH(Y#5qvHK|CitMf1CdUU;7AQ8zF4-#i736F~#EMso~pq*Ek7JMLa$}POH_T(b)M|f)>8t;^3f3 zKA)#ntMKyW+7Z-s>l6xWsZ53jrMAEC5{41RXe`Snj$`6DMr+Vop|xgsc$hE@Sz20V zb@eG)%b|Y+_m{*NND_%L1}POFH@MUObOdhQq^%&CMdWZvC2q+x@_Pg_JQ$DGG%bJbwIyVzG#2o#E=$@5yGf z#Bm5%IplY1BB@I((}Bdlpj1;;nAaqNZEDBWHP2)F0;K|LMcrchIBe@ z&Ye4p5H>e&{)pCc=qTd1Z_6|q4IIZIpUy{Fg7-dG2KQ=nb2l+s9z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-8A(JzRCwB~l|7DwFc3zcQ~LlpfDhmUAknh*asXCz zl-qC%=+dR$W-pN#x~L}tqlWG`i7jL)Xf z7~^f(1*kp@v}MP1yI{)>!0tg;nQWz8w}S@^&;viwdJ|T+gI_X9fpS;_g#bsOkM>j3 z0&9R`0fw98kOeA%T8Y&Q=vnqhpgF}2m~NL)uQT9)DRTFF{r;%i;V*$cBs#zag+X>N zUTi2?l&4B%-2gUpSsFe2}rPL9q0X`+(a{xm<4KU{b2B-!eD)$rc900V|kR1M;QXv2U N002ovPDHLkV1h^Togx4L literal 0 HcmV?d00001 diff --git a/data/templates/PythonComponent/resources/Makefile.am b/data/templates/PythonComponent/resources/Makefile.am new file mode 100755 index 0000000..4efa7e1 --- /dev/null +++ b/data/templates/PythonComponent/resources/Makefile.am @@ -0,0 +1,39 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# -* 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 = \ + :sat:{PYCMP}.png \ + :sat:{PYCMP}_small.png \ + Exec:sat:{PYCMP}.png \ + handshake.png \ + stop.png \ + ExecDelAll.png \ + ExecCircle.png \ + ExecPolyline.png \ + SalomeApp.xml + +# VSR: little trick to avoid putting if :sat:{PYCMP}Catalog.xml to the distribution archive +nodist_salomeres_SCRIPTS = :sat:{PYCMP}Catalog.xml diff --git a/data/templates/PythonComponent/resources/Makefile.in b/data/templates/PythonComponent/resources/Makefile.in new file mode 100755 index 0000000..abb1232 --- /dev/null +++ b/data/templates/PythonComponent/resources/Makefile.in @@ -0,0 +1,613 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(dist_salomeres_DATA) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/:sat:{PYCMP}Catalog.xml.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am +subdir = resources +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = :sat:{PYCMP}Catalog.xml +am__installdirs = "$(DESTDIR)$(salomeresdir)" \ + "$(DESTDIR)$(salomeresdir)" +nodist_salomeresSCRIPT_INSTALL = $(INSTALL_SCRIPT) +SCRIPTS = $(nodist_salomeres_SCRIPTS) +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +dist_salomeresDATA_INSTALL = $(INSTALL_DATA) +DATA = $(dist_salomeres_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + + +# -* Makefile *- +# Author : Patrick GOLDBRONN (CEA) +# Date : 28/06/2001 +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +dist_salomeres_DATA = \ + :sat:{PYCMP}.png \ + :sat:{PYCMP}_small.png \ + Exec:sat:{PYCMP}.png \ + handshake.png \ + stop.png \ + SalomeApp.xml + + +# VSR: little trick to avoid putting if :sat:{PYCMP}:Catalog.xml to the distribution archive +nodist_salomeres_SCRIPTS = :sat:{PYCMP}:Catalog.xml +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu resources/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu resources/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +:sat:{PYCMP}Catalog.xml: $(top_builddir)/config.status $(srcdir)/:sat:{PYCMP}Catalog.xml.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +install-nodist_salomeresSCRIPTS: $(nodist_salomeres_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(salomeresdir)" || $(MKDIR_P) "$(DESTDIR)$(salomeresdir)" + @list='$(nodist_salomeres_SCRIPTS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f $$d$$p; then \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " $(nodist_salomeresSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(salomeresdir)/$$f'"; \ + $(nodist_salomeresSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(salomeresdir)/$$f"; \ + else :; fi; \ + done + +uninstall-nodist_salomeresSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(nodist_salomeres_SCRIPTS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " rm -f '$(DESTDIR)$(salomeresdir)/$$f'"; \ + rm -f "$(DESTDIR)$(salomeresdir)/$$f"; \ + done + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-dist_salomeresDATA: $(dist_salomeres_DATA) + @$(NORMAL_INSTALL) + test -z "$(salomeresdir)" || $(MKDIR_P) "$(DESTDIR)$(salomeresdir)" + @list='$(dist_salomeres_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(dist_salomeresDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(salomeresdir)/$$f'"; \ + $(dist_salomeresDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(salomeresdir)/$$f"; \ + done + +uninstall-dist_salomeresDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_salomeres_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(salomeresdir)/$$f'"; \ + rm -f "$(DESTDIR)$(salomeresdir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(SCRIPTS) $(DATA) +installdirs: + for dir in "$(DESTDIR)$(salomeresdir)" "$(DESTDIR)$(salomeresdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-dist_salomeresDATA \ + install-nodist_salomeresSCRIPTS + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dist_salomeresDATA \ + uninstall-nodist_salomeresSCRIPTS + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dist_salomeresDATA \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-nodist_salomeresSCRIPTS install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-dist_salomeresDATA \ + uninstall-nodist_salomeresSCRIPTS + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/resources/PYCMP.png b/data/templates/PythonComponent/resources/PYCMP.png new file mode 100755 index 0000000000000000000000000000000000000000..2aa523d6f1241c1f39547148472bbf63e21cffd7 GIT binary patch literal 1612 zcmV-S2DABzP)5l2McPmyEDVw~g25ej z=cAMrB*vXFk%b#K#*OiRa7WaIE?5{7Uu=MCLZq~%w6vEZ^hKYyz3+J(f4|e2&Mgz@ zB zW57X>czCl=xT)9c><9seK;!*hXZAg}J8=3x4OLYUi$+fY_={L`4Y&yDbscrx!1VMq zG)+ZUS2rHy^U#7CT3cJOxw#3`FmSM=1CekTa1B0FJh1mOga&9&_2VHzQ3B}e>)jo3 zuYJvk$K!lW<}^1Auef*a+ZjrdQBW&$Z*q>|LdSeawO27+S`2Nfc zOcIGu617?lFNR7;k`Yah;6&C!xl+N{dQcj1%v35>OioUsUauof1)HQI&E<0NZ=k`w zh&1EspLtBL>d<+v&B)G(w@nDsfFTq+0ZUSliEuoGjP@(CsZ|t8ap0 z`m!T{Sp$S?AQ>(ol}Z7AHzK*U3Sp1Xjk;AU;e*o_x-t(C2^qVQDglA8T1GBeafKxf zd2i}Ps*NgQv6%mTAQM&axX9ve)R*6G!t325aAC0si#ftBg>08Jl{Q|=Y}o%+{7PE_ zx0g0{H<^rDLRx(Q8@2$^BdmK&1!DbDTnOPa0W$FJnPa#*`ZFj5x!h7sVKgTcR`xB- z+^WWrJ@Ss6M*kZTIcwv{{1s*Pips5;!8HB0`nT%1d z0x(h3+pr#Z3mt3g{5qFs34&lgHvvJE2a&FW`212k48xGqvXvk6RCqwiz~Vol%UaQu z9vnFSv5Y%G%;`EG#W(@po&^A7-(~1T#lo|*vj~MkvMp)y=xciltur+vub-H2B4J#| zM!CrE5B^`Ky@G@^G%_-B1He2{cMUuT!C+9n2^su=#qktiE_mj@wD7bEuXk zQC?fa%E}6x=B3Ba;ekvK4i0_@V3AM6`xC*>=ny+f&no%Yie2>d^hj}d6LHRr zo_iAEO6TP!V;>qCdY{C{02D#k&w!A83KMiTOe7L4B9~K3OAAV+5({yGNiiGFPRFrN zpF4N%JplKqtqdD}5-?On;Rm@tN_u;_iW`&QWyvoW-ru>eV~#0k>TZ(wB>;2uT@3`k z22A2SJ$%4p%s=YHN5o|k*Wm+NLwp8}a2~+YzxY)wh`L + + + + + + + + + + + + + + + :sat:{PYCMP} + :sat:{PYCMP} GUI + Data + C. Caremoli + @VERSION@ + EDF - RD + 1 + :sat:{PYCMP}.png + 'linux' ~ OS + + + diff --git a/data/templates/PythonComponent/resources/PYCMP_small.png b/data/templates/PythonComponent/resources/PYCMP_small.png new file mode 100755 index 0000000000000000000000000000000000000000..474a537825449f079f68d14de661db882f2466a0 GIT binary patch literal 933 zcmV;W16urvP)Z)o3!APUidL-npO0h0_Oqn-`wvec|O1#@vvAHAeyh zP;&%e^S=aOfEWmX5Qr3z0W{#ud1SKZp_%zi0x2*9#=r#d6tDy=B>t=>EUBf|UObs> z#GZE{Q>|Y2j{f~n<+9rnQRDXN^c^2p-r@;S*(Lb3Z3u_(nSQv$~x75s5Nk(g;rm z_28scPwE~-$RHln4L6@`by`1lFDf-T`baf0oiEwpuzT9A)^{vBvlGuI zm(w&Esc<@cTPo+C%E&vUCTI@RcsL2$jWeZAx|}pDx#%s`YWIb0H-%;0^*e{p>q6yo zl`VcLgg6$)+}H%l;bi$jtHbMw^DO{V9icG|H&c|pyxo|SQ%Ze{H=uYGV9=mNfY z>(y5fiv^rw0Ui0QxjD*tmmp_z@uiK??%uF)X5BHr?zP0jlsC7wUf!N}Ap#=x(fS5g z+Yh78^q zFBMj=&&`7abS7YSx5H7ZP4fNk9NuryYIV7G?HlIX6CnK$%jk2U{E08R00000NkvXX Hu0mjfX(hO6 literal 0 HcmV?d00001 diff --git a/data/templates/PythonComponent/resources/SalomeApp.xml b/data/templates/PythonComponent/resources/SalomeApp.xml new file mode 100755 index 0000000..444bdc5 --- /dev/null +++ b/data/templates/PythonComponent/resources/SalomeApp.xml @@ -0,0 +1,40 @@ + + +
+ + + + + +
+
+ + +
+
+ + +
+
diff --git a/data/templates/PythonComponent/resources/handshake.png b/data/templates/PythonComponent/resources/handshake.png new file mode 100755 index 0000000000000000000000000000000000000000..e840a02ee3040810206b82c1eb6fb90dcaee7cf5 GIT binary patch literal 1835 zcmV+`2h{k9P)7Xv^B`^W$Q2DnK? zK~z}7otIl|ROb=LfAgKQS6{G=!FEgpaVQD*-l9+*+9aw<6qL855~3|q+7hHbwok2~ zeyEzJQQD`rQ6(fKqAF@D1&LH`l_(NO1vg4cNVrtCOF*z--1TL>7w_&l-#2|YXO}hj z0v*X~>Fl1F|J?pFBft7+e@0#Mce(k}fvNfoU{DmN4ub(e0f&GJ4H3WrR-^AhuqfL2 zef&H`P!x&(BSKX=t`@cJ$cKB59ruI4{rTO(?dJv(O4dNlDT3mOAVBn~F%So$hzb@# zfwVxvC?1MI@dOg07{C`WM)5^S3M9pm^b|v7!>Mxm81H^hS`oLnwpYE5i09_6%b)rQJ^i+$rt;d zr7yc4!9xX{M%guun$Upp+4Ee=pF%ZQQKtaDXfwr2N^fR>?`-`!YqNtTcQB{id0;;a%6+y%x0-IOwV&9hG2!zUm0uXvL4|8DaEA*rv zS~NP-)k%i``F-B`>@8}xx~Ps#-CyRLj~yoIWgY;48hSH>9N6|MJ?VkSbCH$`j+Cdo z4AzCb{n;^o_Q4@On0SxS1t^Lt@q30%tDoe>$B&ROnFbXt5O4jrHV%KOqaSs*nYRJP zU&VoKuhW(8j|+~wj7O66lBB#87pDG2H7M{&{tTC=M(9fQ(3>5=h!_9T(UTcuO?CsL zGpF!lvhoa^pU>PIfo-dwrYkepG^%JzZ!4&aYEcYd8+@MUH|$3wqVMa)F^*ms=IAFs zAwQo()gj^`V%XTTo3-hodmQoae$bWfi@c6wRjf~Qb8ei9ou}?<)Wa%)1_Z87U_`E=b$T;{%>wO6_cK!)TOI%+O_ornyfgM&&gW0#Pyz+( zAR=Bvh@&&PmLRN<@jIy6xtKYXLM_jU(O>h@j$cGkz{GQ8VMhH$x-SNygs#etHBZr< z9-yuPbr%r0fWU=>&SFf0nd&s7vmdjwcNbR*=P1>uo3roA+{a9ouhQ2xv?Sg7OVf~Y z^2%@c@Ydg=VT2H%gbJ!r={(l+1i8v}P|Laho@Q77GguceHa$XM=RqC0(tqe{e{{(< z^q1x#VO_`LSk-tMD(l*Z7@r%B#*|t{CjL%Gauu7pzd$7@aHDiF9$V24u zXxOP`J}mNw%fsB5y9DAMgoq-tj^?^>Hg^J0o*O!ZFNx*N$E$QXC~*A3Pq|*cNMePJ z*I!y&R7@gpCU=5Ty~s1`_tTYH6E{a=y^!Xr=+u%cj&pMS4JImMcp}SfV=Dk?VGTt% zH~BsvLVajdRftbu~nwrl>D zbn5uo*&E-!nO4&3Q*+VkP29(=+}?U%31C@xx;22xQg=hFAymWZxs)rBIpX)3?9015 zO1XSJ@q=<`I{=)-6SPr`BJp{?aF#g0I;9-ng&IFYp}`*ZE(lhHdC6X#bL~gYKYR4} Z{{S8^I{Kd)FF61J002ovPDHLkV1iQJY{viq literal 0 HcmV?d00001 diff --git a/data/templates/PythonComponent/resources/stop.png b/data/templates/PythonComponent/resources/stop.png new file mode 100755 index 0000000000000000000000000000000000000000..e8968555bc7f7a17ab1f6d7792e09b79c8a4bdfa GIT binary patch literal 1816 zcmV+z2j}>SP)7ze=fBOU+%2Bk?v zK~z}7wU=v*T~!swe`}v}Uo+F0xifu?5>i1aX{Rlwn(#>qp+Kssq)kLgNc>@~AJjxJ1~n#5{2-A~LL=yeTA5*_U@Z}FXgiPFdE7bY?7f#C_PKZN zZSORGX!p&|Irn7k^q zwLAChub+JHDYJE}DQ>t9OvII5_M?xm$BxncxovOC)V3Q>`=K@KE4SQ;Bq_?3Um`*> z@gDYXZxQR<+}-+dQ#4q3*#Skx(^N-QWikW|sLQ<(li{LB<+16V*Dh3&Uee)th& za1F++pj1JSmF5f7q*s8ZOmlddP9Bwn+I z$Sh~G0;(E-8(xYc3O8-1`{|zqJ=)L{Fj}{u7*!7*a6arLL+2Nuy9b;j-hK;}#}7fV zoI6v{95MUrDCvv80dHx%hvdI#^A@^}96@^f!8vdqY1ufB0PC8^>I84esy%p!C(RKyPm&a73H8(slSS3lHu?YqRb7 zpyA#qIl5ECDaM8W(am3=`_MtCR1gtF45;E%Nq+uIvfuq4$t=cu?8~oEKl~%I_f+eY_u&mjF(#3|xHoPt+CF{tKoRJW!_uh}2I7#8An_+OU zg^U9OsyAV)5QDND32nxwV;jZbPo2WQF$x3y=+rc-9{1K5631jmU&a0E*Wf{_15_T` zM--X1#wIOy3K)-|Mo=-RM7eJ|p&KX_@n@$3U!0#us{LqGpm_Uj$iM*Z-|r(y3SubV z_YKVI)$O1ns6_cTsDSYzgh)sb(B%wn!;fR=>ko#AAl9OZrMP<+cKmJp*>kxLgIT|x z;yrh_HDXmz=bJde7{PeSOQrE}dK&ki50;xlV-@1S528qZSh_1np@^TE33P1?YM}h! z1DNifHWE`5H#XkE077@n8y%WvEIsvOu=b*|FrVLsB2D>d46GL?W?59N6Z)lr=+}Jqt_wU6|Plu<{zyU8Hr>@wM4LAfZyttXDKH!0)#JwAW?}EQLb=KX zC9be&Gvr^_Zqk8Dp>ySFV1~lZJE;8NAf{AqCRB3-YCZ|-8;NJf#+ZNLn=oAqiQ8c| zoX;$=GYW=_n@>v$rZ4>o)KhuvVd(3_2p8~$G$&y1J@(Dx)W7!#)aKAgIu51+cnmUe z-LS6ft-wm-bM6TcWUxwf!&anJT9GaN5hMAVUWQMv2Ao|&u38JV zSyV5086c^r#PkpBKQnpy$huDsl!>^kMuZy+>(;_TttGMH{Pa9agX{h%s=8|Y>-XN3 zOn!LS%+0JK9~Lj$hbSPGF2pEqv5qMCLTN6w@=T#Jc<6up24oiRRFy3N0000 10 : + self.errMessage = 'The number of points must not exceed 10' + return False + return True + + def reInitializeDialog( self ) : + nbPolylines = self.getController().getNbPolylines() + self.entryName.setText( "polyline_" + str(nbPolylines+1) ) + self.entryNbPoints.setText( "10" ) + pass + +pass diff --git a/data/templates/PythonComponent/src/Dialog/Dialog.py b/data/templates/PythonComponent/src/Dialog/Dialog.py new file mode 100755 index 0000000..e0051e9 --- /dev/null +++ b/data/templates/PythonComponent/src/Dialog/Dialog.py @@ -0,0 +1,105 @@ +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class Dialog( QDialog ) : + + def __init__( self, helpFile, controller, widgetDialogBox ) : + """Constructor""" + + # Initializing parent widget + QDialog.__init__( self ) + + # Setting attributes + self.setObjectName( "Dialog" ) + self.setWindowTitle( "Dialog data" ) + self._helpFile = helpFile + self._controller = controller + self._widgetDialogBox = widgetDialogBox + + # Setting layouts + self.mainLayout = QVBoxLayout( self ) + self.h1 = QHBoxLayout( self ) + self.h2 = QHBoxLayout( self ) + self.mainLayout.addLayout( self.h1 ) + self.mainLayout.addLayout( self.h2 ) + self.v11 = QVBoxLayout( self) + self.v12 = QVBoxLayout( self ) + self.h1.addLayout( self.v11 ) + self.h1.addLayout( self.v12 ) + + # Filling layouts with standard widgets( common to all childre ) + self.fillStandardWidgets() + # Adding special widgets to layouts( special to each child ) + self.addSpecialWidgets() + + # Connecting widgets to slots + self.connectSlots() + pass + + def getController( self ) : + return self._controller + + def fillStandardWidgets( self ) : + + lName = QLabel( "Name", self ) + self.v11.addWidget( lName ) + + self.entryName = QLineEdit( self ) + self.v12.addWidget( self.entryName ) + + #Setting buttons + self.bApply = QPushButton( "Apply", self ) + self.h2.addWidget( self.bApply ) + self.bClose = QPushButton( "Close", self ) + self.h2.addWidget( self.bClose ) + self.bHelp = QPushButton( "Help", self ) + self.h2.addWidget( self.bHelp ) + pass + + def addSpecialWidgets( self ) : + print 'Virtual method' + pass + + def connectSlots( self ) : + self.connect( self.bApply, SIGNAL( 'clicked()' ), self.apply ) + self.connect( self.bHelp, SIGNAL( 'clicked()' ), self.help ) + self.connect( self.bClose, SIGNAL( 'clicked()' ), self.close ) + pass + + def apply( self ) : + + self.retrieveUserEntries() + if not self.checkUserEntries() : + QMessageBox.warning( self, 'information faillure', self.errMessage ) + return + self.execApply() + return + + def retrieveUserEntries( self ) : + self.name = str( self.entryName.text() ) + pass + + def checkUserEntries( self ) : + if self.name == "" : + self.errMessage = 'All attributes must be filled' + return False + return True + + def execApply( self ) : + print 'Virtual method' + pass + + def reInitializeDialog( self ) : + print 'Virtual method' + pass + + def help( self ) : + import os + os.system( 'firefox ' + self._helpFile + '&' ) + pass + + def close( self ) : + self._widgetDialogBox.close() + pass + +pass diff --git a/data/templates/PythonComponent/src/Dialog/DialogEdit.py b/data/templates/PythonComponent/src/Dialog/DialogEdit.py new file mode 100755 index 0000000..3d7e348 --- /dev/null +++ b/data/templates/PythonComponent/src/Dialog/DialogEdit.py @@ -0,0 +1,93 @@ +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class DialogEdit( QDialog ) : + + def __init__( self, helpFile, controller, widgetDialogBox ) : + """Constructor""" + + # Initializing parent widget + QDialog.__init__( self ) + + # Setting attributes + self.setObjectName( "Dialog" ) + self.setWindowTitle( "Dialog data" ) + self._helpFile = helpFile + self._controller = controller + self._widgetDialogBox = widgetDialogBox + + # Setting layouts + self.mainLayout = QVBoxLayout( self ) + self.h1 = QHBoxLayout( self ) + self.h2 = QHBoxLayout( self ) + self.mainLayout.addLayout( self.h1 ) + self.mainLayout.addLayout( self.h2 ) + self.v11 = QVBoxLayout( self) + self.v12 = QVBoxLayout( self ) + self.h1.addLayout( self.v11 ) + self.h1.addLayout( self.v12 ) + + # Filling layouts with standard widgets( common to all childre ) + self.fillStandardWidgets() + # Adding special widgets to layouts( special to each child ) + self.addSpecialWidgets() + + # Connecting widgets to slots + self.connectSlots() + pass + + def getController( self ) : + return self._controller + + def fillStandardWidgets( self ) : + + #Setting buttons + self.bOk = QPushButton( "OK", self ) + self.h2.addWidget( self.bOk ) + self.bCancel = QPushButton( "Cancel", self ) + self.h2.addWidget( self.bCancel ) + self.bHelp = QPushButton( "Help", self ) + self.h2.addWidget( self.bHelp ) + pass + + def addSpecialWidgets( self ) : + print 'Virtual method' + pass + + def connectSlots( self ) : + self.connect( self.bOk, SIGNAL( 'clicked()' ), self.apply ) + self.connect( self.bHelp, SIGNAL( 'clicked()' ), self.help ) + self.connect( self.bCancel, SIGNAL( 'clicked()' ), self.close ) + pass + + def apply( self ) : + self.retrieveUserEntries() + if not self.checkUserEntries() : + QMessageBox.warning( self, 'information faillure', self.errMessage ) + return + self.execApply() + self.close() + return + + def retrieveUserEntries( self ) : + print 'Virtual method' + pass + + def checkUserEntries( self ) : + print 'Virtual method' + return True + + def execApply( self ) : + print 'Virtual method' + pass + + def help( self ) : + import os + os.system( 'firefox ' + self._helpFile + '&' ) + pass + + def close( self ) : + self._widgetDialogBox.close() + pass + +pass diff --git a/data/templates/PythonComponent/src/Dialog/EditCenterDialog.py b/data/templates/PythonComponent/src/Dialog/EditCenterDialog.py new file mode 100755 index 0000000..e12fb93 --- /dev/null +++ b/data/templates/PythonComponent/src/Dialog/EditCenterDialog.py @@ -0,0 +1,64 @@ +from DialogEdit import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class EditCenterDialog( DialogEdit ) : + + def __init__( self, helpFile, controller, widgetDialogBox, model, oldCenter ) : + """Constructor""" + + # Initializing parent widget + DialogEdit.__init__( self, helpFile, controller, widgetDialogBox ) + + self._model = model + + # Reading oldX and oldY + oldX = "" + oldY = "" + i = 0 + while oldCenter[i] != ':' : + oldX += oldCenter[i] + i += 1 + pass + for j in range( i+1, len(oldCenter) ) : + oldY += oldCenter[j] + pass + self.entryX.setText( oldX ) + self.entryY.setText( oldY ) + pass + + def addSpecialWidgets( self ) : + floatValidator = QDoubleValidator( self ) + + lX = QLabel( "X", self ) + self.v11.addWidget( lX ) + lY = QLabel( "Y", self ) + self.v11.addWidget( lY ) + + self.entryX = QLineEdit( self ) + self.entryX.setValidator( floatValidator ) + self.v12.addWidget( self.entryX ) + self.entryY = QLineEdit( self ) + self.entryY.setValidator( floatValidator ) + self.v12.addWidget( self.entryY ) + pass + + def execApply( self ) : + newX = float( self.newX ) + newY = float( self.newY ) + newCenter = newX, newY + self.getController().editCenter( self._model, newCenter ) + return + + def retrieveUserEntries( self ) : + self.newX= str( self.entryX.text() ) + self.newY= str( self.entryY.text() ) + pass + + def checkUserEntries( self ) : + if self.newX == "" or self.newY == "" : + self.errMessage = 'All attributes must be filled' + return False + return True + +pass diff --git a/data/templates/PythonComponent/src/Dialog/EditPointDialog.py b/data/templates/PythonComponent/src/Dialog/EditPointDialog.py new file mode 100755 index 0000000..aaf8f46 --- /dev/null +++ b/data/templates/PythonComponent/src/Dialog/EditPointDialog.py @@ -0,0 +1,67 @@ +from DialogEdit import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class EditPointDialog( DialogEdit ) : + + def __init__( self, helpFile, controller, widgetDialogBox, model, oldPoint, pointRange ) : + """Constructor""" + + #Initializing parent widget + DialogEdit.__init__( self, helpFile, controller, widgetDialogBox ) + + self._model = model + + #Reading oldX and oldY + oldX = "" + oldY = "" + i = 0 + while oldPoint[i] != ':' : + oldX += oldPoint[i] + i += 1 + pass + for j in range( i+1, len(oldPoint) ) : + oldY += oldPoint[j] + pass + self.pointRange = pointRange + self.entryX.setText( oldX ) + self.entryY.setText( oldY ) + pass + + def addSpecialWidgets( self ) : + floatValidator = QDoubleValidator( self ) + + lX = QLabel( "X", self ) + self.v11.addWidget( lX ) + lY = QLabel( "Y", self ) + self.v11.addWidget( lY ) + + self.entryX = QLineEdit( self ) + self.entryX.setValidator( floatValidator ) + self.v12.addWidget( self.entryX ) + self.entryY = QLineEdit( self ) + self.entryY.setValidator( floatValidator ) + self.v12.addWidget( self.entryY ) + pass + + def execApply( self ) : + pointRange = self.pointRange + newX = float( self.newX ) + newY = float( self.newY ) + newPoint = newX, newY + self.getController().editPoint( self._model, newPoint, pointRange ) + return + + + def retrieveUserEntries( self ) : + self.newX= str( self.entryX.text() ) + self.newY= str( self.entryY.text() ) + pass + + def checkUserEntries( self ) : + if self.newX == "" or self.newY == "" : + self.errMessage = 'All attributes must be filled' + return False + return True + +pass diff --git a/data/templates/PythonComponent/src/Dialog/EditRadiusDialog.py b/data/templates/PythonComponent/src/Dialog/EditRadiusDialog.py new file mode 100755 index 0000000..479a458 --- /dev/null +++ b/data/templates/PythonComponent/src/Dialog/EditRadiusDialog.py @@ -0,0 +1,43 @@ +from DialogEdit import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class EditRadiusDialog( DialogEdit ) : + + def __init__( self, helpFile, controller, widgetDialogBox, model, oldRadius ) : + """Constructor""" + + #Initializing parent widget + DialogEdit.__init__( self, helpFile, controller, widgetDialogBox ) + + self._model = model + self.entryRadius.setText( oldRadius ) + pass + + def addSpecialWidgets( self ) : + floatValidator = QDoubleValidator( self ) + + lRadius = QLabel( "Radius", self ) + self.v11.addWidget( lRadius ) + self.entryRadius = QLineEdit( self ) + self.entryRadius.setValidator( floatValidator ) + self.v12.addWidget( self.entryRadius ) + pass + + def execApply( self ) : + newRadius = self.newRadius + self.getController().editRadius( self._model, newRadius ) + return + + + def retrieveUserEntries( self ) : + self.newRadius = str( self.entryRadius.text() ) + pass + + def checkUserEntries( self ) : + if self.newRadius == "" : + self.errMessage = 'All attributes must be filled' + return False + return True + +pass diff --git a/data/templates/PythonComponent/src/Dialog/Makefile.am b/data/templates/PythonComponent/src/Dialog/Makefile.am new file mode 100755 index 0000000..f34a4a4 --- /dev/null +++ b/data/templates/PythonComponent/src/Dialog/Makefile.am @@ -0,0 +1,37 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# SuperVisionTest AddComponent : example of component that adds two numbers +# File : Makefile.in +# Author : , CEA +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# Scripts to be installed +dist_salomescript_SCRIPTS = \ + CreateCircleDialog.py \ + CreatePolylineDialog.py \ + DialogEdit.py \ + Dialog.py \ + EditCenterDialog.py \ + EditPointDialog.py \ + EditRadiusDialog.py \ + RenameDialog.py + diff --git a/data/templates/PythonComponent/src/Dialog/RenameDialog.py b/data/templates/PythonComponent/src/Dialog/RenameDialog.py new file mode 100755 index 0000000..1bb8c08 --- /dev/null +++ b/data/templates/PythonComponent/src/Dialog/RenameDialog.py @@ -0,0 +1,39 @@ +from DialogEdit import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class RenameDialog( DialogEdit ) : + + def __init__( self, helpFile, controller, widgetDialogBox, model, oldName ) : + """Constructor""" + + # Initializing parent widget + DialogEdit.__init__( self, helpFile, controller, widgetDialogBox ) + + self._model = model + self.entryName.setText( oldName ) + pass + + def addSpecialWidgets( self ) : + lName = QLabel( "Name", self ) + self.v11.addWidget( lName ) + self.entryName = QLineEdit( self ) + self.v12.addWidget( self.entryName ) + pass + + def execApply( self ) : + newName = self.newName + self.getController().editName( self._model, newName ) + return + + def retrieveUserEntries( self ) : + self.newName = str( self.entryName.text() ) + pass + + def checkUserEntries( self ) : + if self.newName == "" : + self.errMessage = 'All attributes must be filled' + return False + return True + +pass diff --git a/data/templates/PythonComponent/src/Makefile.am b/data/templates/PythonComponent/src/Makefile.am new file mode 100755 index 0000000..e58461d --- /dev/null +++ b/data/templates/PythonComponent/src/Makefile.am @@ -0,0 +1,27 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# File : Makefile.in +# Author : (CEA) +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +SUBDIRS = :sat:{PYCMP}GUI Controller Dialog Model Tools View +#:sat:{PYCMP} diff --git a/data/templates/PythonComponent/src/Makefile.in b/data/templates/PythonComponent/src/Makefile.in new file mode 100755 index 0000000..a7f74e5 --- /dev/null +++ b/data/templates/PythonComponent/src/Makefile.in @@ -0,0 +1,700 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am +subdir = src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + + +# File : Makefile.in +# Author : (CEA) +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +SUBDIRS = :sat:{PYCMP} :sat:{PYCMP}GUI +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/src/Model/Circle.py b/data/templates/PythonComponent/src/Model/Circle.py new file mode 100755 index 0000000..d7e8095 --- /dev/null +++ b/data/templates/PythonComponent/src/Model/Circle.py @@ -0,0 +1,59 @@ +from Model import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +__all__ = [ + "Circle", + ] + +class Circle( Model ): + + def __init__( self, name, center, radius, controller ): + """Constructor""" + + Model.__init__( self,controller ) + self._name = name + self._center = center + self._radius = radius + self.addTreeWidgetItem( self.getName(), controller ) + self.addGraphicScene( controller ) + pass + + def getCenter( self ): + return self._center[0], self._center[1] + + def setCenter( self, center ): + self._center = center + pass + + def getRadius( self ): + return self._radius + + def setRadius( self, radius ): + self._radius = radius + + def addTreeWidgetItem( self, name, controller ): + from CircleTreeWidgetItem import CircleTreeWidgetItem + from TreeWidgetItem import TreeWidgetItem + + myTreeWidgetItem = CircleTreeWidgetItem( name, controller, ["Show", "Rename", "Delete"] ) + newTreeWidgetItem = TreeWidgetItem( str(self.getCenter()[0]) + ':' + str(self.getCenter()[1]), controller, ["Edit"] ) + myTreeWidgetItem.addChild( newTreeWidgetItem ) + newTreeWidgetItem = TreeWidgetItem( str(self.getRadius()), controller, ["Edit"] ) + myTreeWidgetItem.addChild( newTreeWidgetItem ) + myTreeWidgetItem.setModel( self ) + self.getViews().append( myTreeWidgetItem ) + return myTreeWidgetItem + + def addGraphicScene( self, controller ) : + from CircleGraphicsScene import CircleGraphicsScene + + myGraphicsScene = CircleGraphicsScene( controller ) + myGraphicsScene.setModel( self ) + self.getViews().append( myGraphicsScene ) + return myGraphicsScene + + def save( self ): + pass + +pass diff --git a/data/templates/PythonComponent/src/Model/Makefile.am b/data/templates/PythonComponent/src/Model/Makefile.am new file mode 100755 index 0000000..2227051 --- /dev/null +++ b/data/templates/PythonComponent/src/Model/Makefile.am @@ -0,0 +1,32 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# SuperVisionTest AddComponent : example of component that adds two numbers +# File : Makefile.in +# Author : , CEA +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# Scripts to be installed +dist_salomescript_SCRIPTS = \ + Circle.py \ + Polyline.py \ + Model.py + diff --git a/data/templates/PythonComponent/src/Model/Model.py b/data/templates/PythonComponent/src/Model/Model.py new file mode 100755 index 0000000..7b5d4e9 --- /dev/null +++ b/data/templates/PythonComponent/src/Model/Model.py @@ -0,0 +1,34 @@ +from View import * + +class Model: + + def __init__( self, controller ): + """Constructor""" + + self._name = None + self._views = [] + pass + + def getName( self ): + return self._name + + def setName( self, name ): + self._name = name + pass + + def getViews( self ) : + return self._views + + def addView( self ) : + myView = View() + self._views.append( myView ) + return myView + + def updateViews( self, mode ) : + for view in self._views : view.update( mode ) + + def save( self ) : + print 'Virtual method' + pass + +pass diff --git a/data/templates/PythonComponent/src/Model/Polyline.py b/data/templates/PythonComponent/src/Model/Polyline.py new file mode 100755 index 0000000..22e22ec --- /dev/null +++ b/data/templates/PythonComponent/src/Model/Polyline.py @@ -0,0 +1,55 @@ +from Model import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class Polyline( Model ): + + def __init__( self, name, points, controller ): + """Constructor""" + + Model.__init__( self, controller ) + self._name = name + self._points = points + self.addTreeWidgetItem( self.getName(), controller ) + self.addGraphicScene( controller ) + pass + + def getPoints( self ): + return self._points + + def setPoints( self, points ): + self._points = points + pass + + def editPoint( self, pointRange, newPoint ) : + self._points[ pointRange ] = newPoint + pass + + def addTreeWidgetItem( self, name, controller ): + from PolyTreeWidgetItem import PolyTreeWidgetItem + from TreeWidgetItem import TreeWidgetItem + + myTreeWidgetItem = PolyTreeWidgetItem( name, controller, ["Show", "Rename", "Delete"] ) + # Adding list of points + for point in self.getPoints() : + x = point[0] + y = point[1] + newTreeWidgetItem = TreeWidgetItem( str(x) + ":" + str(y), controller, ["Edit"] ) + myTreeWidgetItem.addChild( newTreeWidgetItem ) + pass + myTreeWidgetItem.setModel( self ) + self.getViews().append( myTreeWidgetItem ) + return myTreeWidgetItem + + def addGraphicScene( self, controller ) : + from PolyGraphicsScene import PolyGraphicsScene + + myGraphicsScene = PolyGraphicsScene( controller ) + myGraphicsScene.setModel( self ) + self.getViews().append( myGraphicsScene ) + return myGraphicsScene + + def save( self ): + pass + +pass diff --git a/data/templates/PythonComponent/src/PYCMP/Makefile.am b/data/templates/PythonComponent/src/PYCMP/Makefile.am new file mode 100755 index 0000000..9c29653 --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMP/Makefile.am @@ -0,0 +1,30 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# SuperVisionTest AddComponent : example of component that adds two numbers +# File : Makefile.in +# Author : , CEA +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# Scripts to be installed +dist_salomescript_SCRIPTS = \ + :sat:{PYCMP}.py \ + :sat:{PYCMP}_utils.py diff --git a/data/templates/PythonComponent/src/PYCMP/Makefile.in b/data/templates/PythonComponent/src/PYCMP/Makefile.in new file mode 100755 index 0000000..a761be2 --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMP/Makefile.in @@ -0,0 +1,576 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(dist_salomescript_SCRIPTS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am +subdir = src/:sat:{PYCMP} +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +am__installdirs = "$(DESTDIR)$(salomescriptdir)" +dist_salomescriptSCRIPT_INSTALL = $(INSTALL_SCRIPT) +SCRIPTS = $(dist_salomescript_SCRIPTS) +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + + +# SuperVisionTest AddComponent : example of component that adds two numbers +# File : Makefile.in +# Author : , CEA +# Modified by : Alexander BORODIN (OCN) - autotools usage +# + +# Scripts to be installed +dist_salomescript_SCRIPTS = \ + :sat:{PYCMP}.py \ + :sat:{PYCMP}_utils.py + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/:sat:{PYCMP}/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/:sat:{PYCMP}/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-dist_salomescriptSCRIPTS: $(dist_salomescript_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" + @list='$(dist_salomescript_SCRIPTS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f $$d$$p; then \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " $(dist_salomescriptSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(salomescriptdir)/$$f'"; \ + $(dist_salomescriptSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(salomescriptdir)/$$f"; \ + else :; fi; \ + done + +uninstall-dist_salomescriptSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(dist_salomescript_SCRIPTS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " rm -f '$(DESTDIR)$(salomescriptdir)/$$f'"; \ + rm -f "$(DESTDIR)$(salomescriptdir)/$$f"; \ + done + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(SCRIPTS) +installdirs: + for dir in "$(DESTDIR)$(salomescriptdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-dist_salomescriptSCRIPTS + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dist_salomescriptSCRIPTS + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dist_salomescriptSCRIPTS \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local pdf pdf-am ps ps-am uninstall uninstall-am \ + uninstall-dist_salomescriptSCRIPTS + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/src/PYCMP/PYCMP.py b/data/templates/PythonComponent/src/PYCMP/PYCMP.py new file mode 100755 index 0000000..b1a016b --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMP/PYCMP.py @@ -0,0 +1,101 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# --- +# File : :sat:{PYCMP}.py +# Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +# --- +# +import :sat:{PYCMP}_ORB__POA +import SALOME_ComponentPy +import SALOME_DriverPy + +from :sat:{PYCMP}_utils import * + +class :sat:{PYCMP}(:sat:{PYCMP}_ORB__POA.:sat:{PYCMP}_Gen, + SALOME_ComponentPy.SALOME_ComponentPy_i, + SALOME_DriverPy.SALOME_DriverPy_i): + """ + Construct an instance of :sat:{PYCMP} module engine. + The class :sat:{PYCMP} implements CORBA interface :sat:{PYCMP}_Gen (see :sat:{PYCMP}_Gen.idl). + It is inherited from the classes SALOME_ComponentPy_i (implementation of + Engines::EngineComponent CORBA interface - SALOME component) and SALOME_DriverPy_i + (implementation of SALOMEDS::Driver CORBA interface - SALOME module's engine). + """ + def __init__ ( self, orb, poa, contID, containerName, instanceName, + interfaceName ): + SALOME_ComponentPy.SALOME_ComponentPy_i.__init__(self, orb, poa, + contID, containerName, instanceName, interfaceName, 0) + SALOME_DriverPy.SALOME_DriverPy_i.__init__(self, interfaceName) + # + self._naming_service = SALOME_ComponentPy.SALOME_NamingServicePy_i( self._orb ) + # + pass + + """ + Generate banner. + """ + def makeBanner( self, name ): + banner = "Hello %s!" % name + return banner + + """ + Create object. + """ + def createObject( self, study, name ): + builder = study.NewBuilder() + father = findOrCreateComponent( study ) + object = builder.NewObject( father ) + attr = builder.FindOrCreateAttribute( object, "AttributeName" ) + attr.SetValue( name ) + attr = builder.FindOrCreateAttribute( object, "AttributeLocalID" ) + attr.SetValue( objectID() ) + pass + + """ + Dump module data to the Python script. + """ + def DumpPython( self, study, isPublished ): + abuffer = [] + abuffer.append( "def RebuildData( theStudy ):" ) + names = [] + father = study.FindComponent( moduleName() ) + if father: + iter = study.NewChildIterator( father ) + while iter.More(): + name = iter.Value().GetName() + if name: names.append( name ) + iter.Next() + pass + pass + if names: + abuffer += [ " from batchmode_salome import lcc" ] + abuffer += [ " import :sat:{PYCMP}_ORB" ] + abuffer += [ " " ] + abuffer += [ " myCompo = lcc.FindOrLoadComponent( 'FactoryServerPy', '%s' )" % moduleName() ] + abuffer += [ " " ] + abuffer += [ " myCompo.createObject( theStudy, '%s' )" % name for name in names ] + pass + abuffer += [ " " ] + abuffer.append( " pass" ) + abuffer.append( "\0" ) + return ("\n".join( abuffer ), 1) diff --git a/data/templates/PythonComponent/src/PYCMP/PYCMP_utils.py b/data/templates/PythonComponent/src/PYCMP/PYCMP_utils.py new file mode 100755 index 0000000..56e1557 --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMP/PYCMP_utils.py @@ -0,0 +1,197 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# --- +# File : :sat:{PYCMP}_utils.py +# Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +# --- +# +__all__ = [ + "moduleID", + "objectID", + "unknownID", + "moduleName", + "modulePixmap", + "verbose", + "getORB", + "getNS", + "getLCC", + "getStudyManager", + "getEngine", + "getEngineIOR", + "findOrCreateComponent", + "getObjectID", + ] + +from omniORB import CORBA +from SALOME_NamingServicePy import SALOME_NamingServicePy_i +from LifeCycleCORBA import LifeCycleCORBA +import SALOMEDS +import SALOMEDS_Attributes_idl +import :sat:{PYCMP}_ORB + +### +# Get :sat:{PYCMP} module's ID +### +def moduleID(): + MODULE_ID = 1000 + return MODULE_ID + +### +# Get :sat:{PYCMP} object's ID +### +def objectID(): + OBJECT_ID = 1010 + return OBJECT_ID + +### +# Get unknown ID +### +def unknownID(): + FOREIGN_ID = -1 + return FOREIGN_ID + +### +# Get :sat:{PYCMP} module's name +### +def moduleName(): + return ":sat:{PYCMP}" + +### +# Get module's pixmap name +### +def modulePixmap(): + return ":sat:{PYCMP}_small.png" + +### +# Get verbose level +### +__verbose__ = None +def verbose(): + global __verbose__ + if __verbose__ is None: + try: + __verbose__ = int( os.getenv( 'SALOME_VERBOSE', 0 ) ) + except: + __verbose__ = 0 + pass + pass + return __verbose__ + +### +# Get ORB reference +### +__orb__ = None +def getORB(): + global __orb__ + if __orb__ is None: + __orb__ = CORBA.ORB_init( [''], CORBA.ORB_ID ) + pass + return __orb__ + +### +# Get naming service instance +### +__naming_service__ = None +def getNS(): + global __naming_service__ + if __naming_service__ is None: + __naming_service__ = SALOME_NamingServicePy_i( getORB() ) + pass + return __naming_service__ + +## +# Get life cycle CORBA instance +## +__lcc__ = None +def getLCC(): + global __lcc__ + if __lcc__ is None: + __lcc__ = LifeCycleCORBA( getORB() ) + pass + return __lcc__ + +## +# Get study manager +### +__study_manager__ = None +def getStudyManager(): + global __study_manager__ + if __study_manager__ is None: + obj = getNS().Resolve( '/myStudyManager' ) + __study_manager__ = obj._narrow( SALOMEDS.StudyManager ) + pass + return __study_manager__ + +### +# Get :sat:{PYCMP} engine +### +__engine__ = None +def getEngine(): + global __engine__ + if __engine__ is None: + __engine__ = getLCC().FindOrLoadComponent( "FactoryServerPy", moduleName() ) + pass + return __engine__ + +### +# Get :sat:{PYCMP} engine IOR +### +def getEngineIOR(): + IOR = "" + if getORB() and getEngine(): + IOR = getORB().object_to_string( getEngine() ) + pass + return IOR + +### +# Find or create :sat:{PYCMP} component object in a study +### +def findOrCreateComponent( study ): + father = study.FindComponent( moduleName() ) + if father is None: + builder = study.NewBuilder() + father = builder.NewComponent( moduleName() ) + attr = builder.FindOrCreateAttribute( father, "AttributeName" ) + attr.SetValue( moduleName() ) + attr = builder.FindOrCreateAttribute( father, "AttributePixMap" ) + attr.SetPixMap( modulePixmap() ) + attr = builder.FindOrCreateAttribute( father, "AttributeLocalID" ) + attr.SetValue( moduleID() ) + try: + builder.DefineComponentInstance( father, getEngine() ) + pass + except: + pass + pass + return father + +### +# Get object's ID +### +def getObjectID( study, entry ): + ID = unknownID() + if study and entry: + sobj = study.FindObjectID( entry ) + if sobj is not None: + test, anAttr = sobj.FindAttribute( "AttributeLocalID" ) + if test: ID = anAttr._narrow( SALOMEDS.AttributeLocalID ).Value() + pass + pass + return ID diff --git a/data/templates/PythonComponent/src/PYCMPGUI/Makefile.am b/data/templates/PythonComponent/src/PYCMPGUI/Makefile.am new file mode 100755 index 0000000..bdf3da6 --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMPGUI/Makefile.am @@ -0,0 +1,37 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# SuperVisionTest AddComponent : example of component that adds two numbers +# File : Makefile.in +# Author : , CEA +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# Scripts to be installed +dist_salomescript_SCRIPTS = \ + :sat:{PYCMP}Desktop.py \ + :sat:{PYCMP}GUI.py + + +# resources files +nodist_salomeres_DATA = \ + :sat:{PYCMP}_msg_en.qm \ + :sat:{PYCMP}_msg_fr.qm \ + :sat:{PYCMP}_icons.qm diff --git a/data/templates/PythonComponent/src/PYCMPGUI/Makefile.in b/data/templates/PythonComponent/src/PYCMPGUI/Makefile.in new file mode 100755 index 0000000..9b38cb4 --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMPGUI/Makefile.in @@ -0,0 +1,612 @@ +# Makefile.in generated by automake 1.10 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +DIST_COMMON = $(dist_salomescript_SCRIPTS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in \ + $(top_srcdir)/adm_local/unix/make_common_starter.am +subdir = src/:sat:{PYCMP}GUI +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_CLEAN_FILES = +am__installdirs = "$(DESTDIR)$(salomescriptdir)" \ + "$(DESTDIR)$(salomeresdir)" +dist_salomescriptSCRIPT_INSTALL = $(INSTALL_SCRIPT) +SCRIPTS = $(dist_salomescript_SCRIPTS) +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +nodist_salomeresDATA_INSTALL = $(INSTALL_DATA) +DATA = $(nodist_salomeres_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CORBA_CXXFLAGS = @CORBA_CXXFLAGS@ +CORBA_INCLUDES = @CORBA_INCLUDES@ +CORBA_IN_GUI = @CORBA_IN_GUI@ +CORBA_LIBS = @CORBA_LIBS@ +CORBA_ROOT = @CORBA_ROOT@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DOT = @DOT@ +DOXYGEN = @DOXYGEN@ +DOXYGEN_PYTHON_EXTENSION = @DOXYGEN_PYTHON_EXTENSION@ +DOXYGEN_SUPPORT_STL = @DOXYGEN_SUPPORT_STL@ +DOXYGEN_WITH_PYTHON = @DOXYGEN_WITH_PYTHON@ +DOXYGEN_WITH_STL = @DOXYGEN_WITH_STL@ +DVIPS = @DVIPS@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GLOBAL_INSTALL = @GLOBAL_INSTALL@ +GREP = @GREP@ +GUI_CXXFLAGS = @GUI_CXXFLAGS@ +GUI_LDFLAGS = @GUI_LDFLAGS@ +GUI_ROOT_DIR = @GUI_ROOT_DIR@ +IDL = @IDL@ +IDLCXXFLAGS = @IDLCXXFLAGS@ +IDLPYFLAGS = @IDLPYFLAGS@ +IDL_CLN_CXX = @IDL_CLN_CXX@ +IDL_CLN_H = @IDL_CLN_H@ +IDL_CLN_OBJ = @IDL_CLN_OBJ@ +IDL_SRV_CXX = @IDL_SRV_CXX@ +IDL_SRV_H = @IDL_SRV_H@ +IDL_SRV_OBJ = @IDL_SRV_OBJ@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KERNEL_CXXFLAGS = @KERNEL_CXXFLAGS@ +KERNEL_LDFLAGS = @KERNEL_LDFLAGS@ +KERNEL_ROOT_DIR = @KERNEL_ROOT_DIR@ +KERNEL_SITE_DIR = @KERNEL_SITE_DIR@ +LATEX = @LATEX@ +LDEXPDYNFLAGS = @LDEXPDYNFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_LOCATION_SUFFIX = @LIB_LOCATION_SUFFIX@ +LN_S = @LN_S@ +LRELEASE = @LRELEASE@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +MOC = @MOC@ +MODULE_NAME = @MODULE_NAME@ +OBJEXT = @OBJEXT@ +OGL_INCLUDES = @OGL_INCLUDES@ +OGL_LIBS = @OGL_LIBS@ +OMNIORB_CXXFLAGS = @OMNIORB_CXXFLAGS@ +OMNIORB_IDL = @OMNIORB_IDL@ +OMNIORB_IDLCXXFLAGS = @OMNIORB_IDLCXXFLAGS@ +OMNIORB_IDLPYFLAGS = @OMNIORB_IDLPYFLAGS@ +OMNIORB_IDL_CLN_CXX = @OMNIORB_IDL_CLN_CXX@ +OMNIORB_IDL_CLN_H = @OMNIORB_IDL_CLN_H@ +OMNIORB_IDL_CLN_OBJ = @OMNIORB_IDL_CLN_OBJ@ +OMNIORB_IDL_SRV_CXX = @OMNIORB_IDL_SRV_CXX@ +OMNIORB_IDL_SRV_H = @OMNIORB_IDL_SRV_H@ +OMNIORB_IDL_SRV_OBJ = @OMNIORB_IDL_SRV_OBJ@ +OMNIORB_IDL_TIE_CXX = @OMNIORB_IDL_TIE_CXX@ +OMNIORB_IDL_TIE_H = @OMNIORB_IDL_TIE_H@ +OMNIORB_INCLUDES = @OMNIORB_INCLUDES@ +OMNIORB_LIBS = @OMNIORB_LIBS@ +OMNIORB_PACOIDLCXXFLAGS = @OMNIORB_PACOIDLCXXFLAGS@ +OMNIORB_ROOT = @OMNIORB_ROOT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACOIDLCXXFLAGS = @PACOIDLCXXFLAGS@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PDFLATEX = @PDFLATEX@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +PYTHON = @PYTHON@ +PYTHONHOME = @PYTHONHOME@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_INCLUDES = @PYTHON_INCLUDES@ +PYTHON_LIBS = @PYTHON_LIBS@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_SITE = @PYTHON_SITE@ +PYTHON_SITE_EXEC = @PYTHON_SITE_EXEC@ +PYTHON_SITE_INSTALL = @PYTHON_SITE_INSTALL@ +PYTHON_SITE_PACKAGE = @PYTHON_SITE_PACKAGE@ +PYTHON_VERSION = @PYTHON_VERSION@ +QRCC = @QRCC@ +QTDIR = @QTDIR@ +QT_ASSISTANT_INCLUDES = @QT_ASSISTANT_INCLUDES@ +QT_ASSISTANT_LIBS = @QT_ASSISTANT_LIBS@ +QT_CORE_LIBS = @QT_CORE_LIBS@ +QT_GUI_LIBS = @QT_GUI_LIBS@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LIBS = @QT_LIBS@ +QT_LIB_DIR = @QT_LIB_DIR@ +QT_MT_INCLUDES = @QT_MT_INCLUDES@ +QT_MT_LIBS = @QT_MT_LIBS@ +QT_OTHER_LIBS = @QT_OTHER_LIBS@ +QT_ROOT = @QT_ROOT@ +QT_VERSION = @QT_VERSION@ +QT_VERSION_ID = @QT_VERSION_ID@ +RANLIB = @RANLIB@ +ROOT_BUILDDIR = @ROOT_BUILDDIR@ +ROOT_SRCDIR = @ROOT_SRCDIR@ +RST2HTML = @RST2HTML@ +SETX = @SETX@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STDLIB = @STDLIB@ +STRIP = @STRIP@ +TEMP = @TEMP@ +UIC = @UIC@ +VERSION = @VERSION@ +XVERSION = @XVERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +acx_pthread_config = @acx_pthread_config@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = $(prefix)/bin/salome +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ + +# Documentation directory +docdir = $(datadir)/doc/salome +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = $(prefix)/lib@LIB_LOCATION_SUFFIX@/salome +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ + +# ============================================================ +# The following is to avoid PACKAGE_... env variable +# redefinition compilation warnings +# ============================================================ +# +AM_CXXFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h +AM_CPPFLAGS = @KERNEL_CXXFLAGS@ -include SALOMEconfig.h + +# ============================================================ +# This file defines the common definitions used in several +# Makefile. This file must be included, if needed, by the file +# Makefile.am. +# ============================================================ +# Standard directory for installation +# +salomeincludedir = $(includedir)/salome +salomescriptdir = $(bindir) +salomepythondir = $(pythondir)/salome +salomepyexecdir = $(pyexecdir)/salome + +# Directory for installing idl files +salomeidldir = $(prefix)/idl/salome + +# Directory for installing resource files +salomeresdir = $(prefix)/share/salome/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 = $(salomepythondir)/shared_modules + +# extra distributed files +EXTRA_DIST = $(MOC_FILES:%_moc.cxx=%.h) $(QRC_FILES:qrc_%.cxx=%.qrc) \ + $(UIC_FILES:ui_%.h=%.ui) $(nodist_salomeres_DATA:%.qm=%.ts) + + +# SuperVisionTest AddComponent : example of component that adds two numbers +# File : Makefile.in +# Author : , CEA +# Modified by : Alexander BORODIN (OCN) - autotools usage +# + +# Scripts to be installed +dist_salomescript_SCRIPTS = \ + :sat:{PYCMP}GUI.py + + +# resources files +nodist_salomeres_DATA = \ + :sat:{PYCMP}_msg_en.qm \ + :sat:{PYCMP}_msg_fr.qm \ + :sat:{PYCMP}_icons.qm + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/adm_local/unix/make_common_starter.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/:sat:{PYCMP}GUI/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/:sat:{PYCMP}GUI/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +install-dist_salomescriptSCRIPTS: $(dist_salomescript_SCRIPTS) + @$(NORMAL_INSTALL) + test -z "$(salomescriptdir)" || $(MKDIR_P) "$(DESTDIR)$(salomescriptdir)" + @list='$(dist_salomescript_SCRIPTS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + if test -f $$d$$p; then \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " $(dist_salomescriptSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(salomescriptdir)/$$f'"; \ + $(dist_salomescriptSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(salomescriptdir)/$$f"; \ + else :; fi; \ + done + +uninstall-dist_salomescriptSCRIPTS: + @$(NORMAL_UNINSTALL) + @list='$(dist_salomescript_SCRIPTS)'; for p in $$list; do \ + f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ + echo " rm -f '$(DESTDIR)$(salomescriptdir)/$$f'"; \ + rm -f "$(DESTDIR)$(salomescriptdir)/$$f"; \ + done + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-nodist_salomeresDATA: $(nodist_salomeres_DATA) + @$(NORMAL_INSTALL) + test -z "$(salomeresdir)" || $(MKDIR_P) "$(DESTDIR)$(salomeresdir)" + @list='$(nodist_salomeres_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(nodist_salomeresDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(salomeresdir)/$$f'"; \ + $(nodist_salomeresDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(salomeresdir)/$$f"; \ + done + +uninstall-nodist_salomeresDATA: + @$(NORMAL_UNINSTALL) + @list='$(nodist_salomeres_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(salomeresdir)/$$f'"; \ + rm -f "$(DESTDIR)$(salomeresdir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(SCRIPTS) $(DATA) +installdirs: + for dir in "$(DESTDIR)$(salomescriptdir)" "$(DESTDIR)$(salomeresdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-dist_salomescriptSCRIPTS \ + install-nodist_salomeresDATA + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool \ + mostlyclean-local + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-dist_salomescriptSCRIPTS \ + uninstall-nodist_salomeresDATA + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dist_salomescriptSCRIPTS \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-nodist_salomeresDATA install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool mostlyclean-local pdf pdf-am ps ps-am \ + uninstall uninstall-am uninstall-dist_salomescriptSCRIPTS \ + uninstall-nodist_salomeresDATA + + +# common rules + +# meta object implementation files generation (moc) +%_moc.cxx: %.h + $(MOC) $< -o $@ + +# translation (*.qm) files generation (lrelease) +%.qm: %.ts + $(LRELEASE) $< -qm $@ + +# resource files generation (qrcc) +qrc_%.cxx: %.qrc + $(QRCC) $< -o $@ -name $(*F) + +# qt forms files generation (uic) +ui_%.h: %.ui + $(UIC) -o $@ $< + +# customize clean operation +mostlyclean-local: + rm -f @builddir@/*_moc.cxx + rm -f @builddir@/*.qm + rm -f @builddir@/ui_*.h + rm -f @builddir@/qrc_*.cxx + +# tests +tests: unittest + +unittest: $(UNIT_TEST_PROG) + @if test "x$(UNIT_TEST_PROG)" != "x"; then \ + $(UNIT_TEST_PROG); \ + fi; +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/data/templates/PythonComponent/src/PYCMPGUI/PYCMPDesktop.py b/data/templates/PythonComponent/src/PYCMPGUI/PYCMPDesktop.py new file mode 100755 index 0000000..7fe66c0 --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMPGUI/PYCMPDesktop.py @@ -0,0 +1,102 @@ +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from TreeWidget import TreeWidget +from GraphicsView import GraphicsView +from GraphicsScene import GraphicsScene + +class :sat:{PYCMP}Desktop( QMainWindow ) : + + def __init__( self, sgPyQt, sg ) : + """Constructor""" + + QMainWindow.__init__( self ) + self._controller = None + self._sgPyQt = sgPyQt + self._sg = sg + self._sgDesktop = self._sgPyQt.getDesktop() + + # Menus IDs + self._curveMenuID = 1000 + self._advancedMenuID = 1001 + + # Actions IDs + self._polylineID = 1002 + self._circleID = 1003 + self._deleteAllID = 1004 + + self.createTreeView() + self.createGraphicsView() + pass + + def createTreeView( self ) : + self._globalTree= TreeWidget( self ) + self._globalTree.setHeaderLabel ( "Tree view" ) + self._dockGlobalTree = QDockWidget( self._sgDesktop ) + self._dockGlobalTree.setFeatures( QDockWidget.NoDockWidgetFeatures ) + self._dockGlobalTree.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea ) + self._dockGlobalTree.setWidget( self._globalTree ) + self._sgDesktop.addDockWidget( Qt.LeftDockWidgetArea, self._dockGlobalTree ) + pass + + def createGraphicsView( self ) : + scene = GraphicsScene( self._controller ) + self._globalGraphicsView = GraphicsView( scene ) + self._globalGraphicsViewID = self._sgPyQt.createView( "ViewCurve", self._globalGraphicsView ) + pass + + def createActions( self ) : + self.createPolylineAction = self._sgPyQt.createAction( self._polylineID, "Polyline", "Create Polyline", "Show Polyline dialog box", "ExecPolyline.png" ) + self.createCircleAction = self._sgPyQt.createAction( self._circleID, "Circle", "Create Circle", "Show Circle dialog box", "ExecCircle.png" ) + self.deleteAllAction = self._sgPyQt.createAction( self._deleteAllID, "Delete all", "Delete all", "Delete all objects", "ExecDelAll.png" ) + pass + + def createMenus( self ) : + curveMenu = self._sgPyQt.createMenu( " Curve", -1, self._curveMenuID, self._sgPyQt.defaultMenuGroup() ) + advancedMenu = self._sgPyQt.createMenu( " Advanced", -1, self._advancedMenuID, self._sgPyQt.defaultMenuGroup() ) + + self._sgPyQt.createMenu( self.createPolylineAction, curveMenu ) + self._sgPyQt.createMenu( self.createCircleAction, curveMenu ) + self._sgPyQt.createMenu( self.deleteAllAction, advancedMenu ) + pass + + def createToolBars( self ) : + createPolylineTB = self._sgPyQt.createTool("New polyline") + createCircleTB = self._sgPyQt.createTool("New circle") + deleteAllTB = self._sgPyQt.createTool("Delete all") + + self._sgPyQt.createTool( self.createPolylineAction, createPolylineTB ) + self._sgPyQt.createTool( self.createCircleAction, createCircleTB ) + self._sgPyQt.createTool( self.deleteAllAction, deleteAllTB ) + pass + + def createPopups( self ) : + pass + + def getController( self ) : + return self._controller + + def setController( self, controller ) : + self._controller = controller + pass + + def getGlobalTree( self ) : + return self._globalTree + + def getGlobalGraphicsView( self ) : + return self._globalGraphicsView + + def getGlobalGraphicsViewID( self ) : + return self._globalGraphicsViewID + + def getDockGlobalTree( self ) : + return self._dockGlobalTree + + def updateGlobalGraphicsView( self, scene ) : + self._globalGraphicsView.setScene( scene ) + if scene is None : return + #Resizing the globalGraphicView + sceneRect = scene.getRect() + self._globalGraphicsView.fitInView ( sceneRect, Qt.KeepAspectRatio ) + pass + +pass diff --git a/data/templates/PythonComponent/src/PYCMPGUI/PYCMPGUI.py b/data/templates/PythonComponent/src/PYCMPGUI/PYCMPGUI.py new file mode 100755 index 0000000..550175e --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMPGUI/PYCMPGUI.py @@ -0,0 +1,257 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# --- +# File : :sat:{PYCMP}GUI.py +# Author : Vadim SANDLER, Open CASCADE S.A.S. (vadim.sandler@opencascade.com) +# --- +# +import traceback +import string +import os +import sys +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +#from :sat:{PYCMP}_utils import * + +import salome +from Controller import Controller +from TreeWidget import TreeWidget +from :sat:{PYCMP}Desktop import :sat:{PYCMP}Desktop + +# Get SALOME PyQt interface +import SalomePyQt +import libSALOME_Swig + +######################################################## +# Global variables +######################################################## + +sgPyQt = SalomePyQt.SalomePyQt() +sg = libSALOME_Swig.SALOMEGUI_Swig() +sgDesktop = sgPyQt.getDesktop() +widgetDialogBox = None + +objectsManager = Controller( None ) +moduleDesktop = {} +currentDesktop = None + +CURVE_MENU_ID = 1000 +ADVANCED_MENU_ID = 1001 +POLYLINE_ID = 1002 +CIRCLE_ID = 1003 +DEL_ALL_ID = 1004 + +######################################################## +# Internal methods +######################################################## + +def getStudyId(): + """This method returns the active study ID""" + return sgPyQt.getStudyId() + +def getStudy(): + """This method returns the active study""" + + studyId = _getStudyId() + study = getStudyManager().GetStudyByID( studyId ) + return study + +def getDesktop(): + """This method returns the current :sat:{PYCMP} desktop""" + + global currentDesktop + return currentDesktop + +def setDesktop( studyID ): + """This method sets and returns :sat:{PYCMP} desktop""" + + global moduleDesktop, currentDesktop, objectsManager + + if not moduleDesktop.has_key( studyID ): + moduleDesktop[studyID] = :sat:{PYCMP}Desktop( sgPyQt, sg ) + objectsManager = Controller( moduleDesktop[studyID] ) + moduleDesktop[studyID].setController( objectsManager ) + pass + currentDesktop = moduleDesktop[studyID] + return currentDesktop + +def incObjToMap( m, id ): + """This method incrementes the object counter in the map""" + + if id not in m: m[id] = 0 + m[id] += 1 + pass + +def getSelection(): + """This method analyses selection""" + + selcount = sg.SelectedCount() + seltypes = {} + for i in range( selcount ): + incObjToMap( seltypes, getObjectID( getStudy(), sg.getSelected( i ) ) ) + pass + return selcount, seltypes + +################################################ +# Callback functions +################################################ + +def initialize(): + """This method is called when module is initialized. It performs initialization actions""" + + setDesktop( getStudyId() ) + pass + +def windows(): + """This method is called when module is initialized. It returns a map of popup windows to be used by the module""" + + wm = {} + wm[SalomePyQt.WT_ObjectBrowser] = Qt.LeftDockWidgetArea + wm[SalomePyQt.WT_PyConsole] = Qt.BottomDockWidgetArea + return wm + +def views(): + """This method is called when module is initialized. It returns a list of 2D/3D views to be used by the module""" + return [] + +def createPreferences(): + """This method is called when module is initialized. It exports module preferences""" + pass + +def activate(): + """This method is called when module is initialized. It returns True if activating is successfull, False otherwise""" + + global moduleDesktop, sgPyQt, widgetDialogBox + + widgetDialogBox = QDockWidget( sgDesktop ) + moduleDesktop[getStudyId()].createActions() + moduleDesktop[getStudyId()].createMenus() + moduleDesktop[getStudyId()].createToolBars() + moduleDesktop[getStudyId()].createPopups() + moduleDesktop[getStudyId()].getDockGlobalTree().show() + moduleDesktop[getStudyId()].getGlobalGraphicsView().show() + sgPyQt.activateView( moduleDesktop[getStudyId()].getGlobalGraphicsViewID() ) + return True + +def viewTryClose( wid ): + sgPyQt.setViewClosable(wid, True) + pass + +def deactivate(): + """This method is called when module is deactivated""" + + global moduleDesktop, widgetDialogBox + + widgetDialogBox.close() + moduleDesktop[getStudyId()].getDockGlobalTree().hide() + moduleDesktop[getStudyId()].updateGlobalGraphicsView( None ) + moduleDesktop[getStudyId()].getGlobalGraphicsView().hide() + pass + +def activeStudyChanged( studyID ): + """This method is called when active study is changed""" + + setDesktop( getStudyId() ) + pass + +def createPopupMenu( popup, context ): + """This method is called when popup menu is invocked""" + pass + +def OnGUIEvent( commandID ): + """This method is called when a GUI action is activated""" + + if dict_command.has_key( commandID ): + dict_command[commandID]() + pass + pass + +def preferenceChanged( section, setting ): + """This method is called when module's preferences are changed""" + pass + +def activeViewChanged( viewID ): + """This method is called when active view is changed""" + pass + +def viewCloned( viewID ): + """This method is called when active view is cloned""" + pass + +def viewClosed( viewID ): + """This method is called when active view viewClosed""" + pass + +def engineIOR(): + """This method is called when study is opened. It returns engine IOR""" + return getEngineIOR() + + +################################################ +# GUI actions implementation +################################################ + +def showCreatePolylineDialog() : + from CreatePolylineDialog import CreatePolylineDialog + + global widgetDialogBox + widgetDialogBox = QDockWidget( sgDesktop ) + myDialog = CreatePolylineDialog( "www.cea.fr", objectsManager, widgetDialogBox ) + widgetDialogBox.setWidget( myDialog ) + widgetDialogBox.setWindowTitle( "Polyline definition" ) + sgDesktop.addDockWidget(Qt.LeftDockWidgetArea, widgetDialogBox) + pass + +def showCreateCircleDialog() : + from CreateCircleDialog import CreateCircleDialog + + global widgetDialogBox + widgetDialogBox = QDockWidget( sgDesktop ) + myDialog = CreateCircleDialog( "www.cea.fr", objectsManager, widgetDialogBox ) + widgetDialogBox.setWidget( myDialog ) + widgetDialogBox.setWindowTitle( "Circle definition" ) + sgDesktop.addDockWidget(Qt.LeftDockWidgetArea, widgetDialogBox) + pass + +def deleteAll() : + models = moduleDesktop[getStudyId()].getController().getModels() + if len( models ) == 0 : return + answer = QMessageBox.question( moduleDesktop[getStudyId()], 'Confirmation', 'Do you really want to delete all the existing objects ?' , QMessageBox.Yes | QMessageBox.No ) + if answer == QMessageBox.Yes : + for model in models : + moduleDesktop[getStudyId()].getController().removeModel( model ) + pass + pass + pass + +######################################################## +# Commands dictionary +######################################################## + +dict_command = { POLYLINE_ID : showCreatePolylineDialog, + CIRCLE_ID : showCreateCircleDialog, + DEL_ALL_ID : deleteAll + } + +######################################################## diff --git a/data/templates/PythonComponent/src/PYCMPGUI/PYCMP_icons.ts b/data/templates/PythonComponent/src/PYCMPGUI/PYCMP_icons.ts new file mode 100755 index 0000000..f6bef70 --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMPGUI/PYCMP_icons.ts @@ -0,0 +1,37 @@ + + + + + @default + + ICO_HANDSHAKE + handshake.png + + + ICO_STOP + stop.png + + + diff --git a/data/templates/PythonComponent/src/PYCMPGUI/PYCMP_msg_en.ts b/data/templates/PythonComponent/src/PYCMPGUI/PYCMP_msg_en.ts new file mode 100755 index 0000000..2ee4f7f --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMPGUI/PYCMP_msg_en.ts @@ -0,0 +1,11 @@ + + + + + @default + + + + + + diff --git a/data/templates/PythonComponent/src/PYCMPGUI/PYCMP_msg_fr.ts b/data/templates/PythonComponent/src/PYCMPGUI/PYCMP_msg_fr.ts new file mode 100755 index 0000000..1e4dea3 --- /dev/null +++ b/data/templates/PythonComponent/src/PYCMPGUI/PYCMP_msg_fr.ts @@ -0,0 +1,11 @@ + + + + + @default + + + + + + diff --git a/data/templates/PythonComponent/src/Tools/Desktop.py b/data/templates/PythonComponent/src/Tools/Desktop.py new file mode 100755 index 0000000..0afaeed --- /dev/null +++ b/data/templates/PythonComponent/src/Tools/Desktop.py @@ -0,0 +1,124 @@ +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from TreeWidget import TreeWidget +from GraphicsView import GraphicsView +from GraphicsScene import GraphicsScene + +class Desktop( QMainWindow ) : + + def __init__( self ) : + """Constructor""" + + QMainWindow.__init__( self ) + self._controller = None + + # Creating a dockWidget which will contain globalTree + self._globalTree= TreeWidget( self ) + self._globalTree.setHeaderLabel ( "Object browser" ) + dockGlobalTree = QDockWidget( "Tree view", self ) + dockGlobalTree.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea ) + dockGlobalTree.setWidget( self._globalTree ) + self.addDockWidget( Qt.LeftDockWidgetArea, dockGlobalTree ) + + # Creating a central widget which contains the globalGraphicsView + self._dockGlobalView = QDockWidget( "Graphics view", self ) + scene = GraphicsScene( self._controller ) + self._globalGraphicsView = GraphicsView( scene ) + self._dockGlobalView.setWidget( self._globalGraphicsView ) + self._globalGraphicsView.show() + self.setCentralWidget( self._dockGlobalView ) + + # Creating menus and toolbars + self.createMenus() + self.createToolBars() + pass + + def getController( self ) : + return self._controller + + def setController( self, controller ) : + self._controller = controller + pass + + def getGlobalTree( self ) : + return self._globalTree + + def createMenus( self ) : + # Creating menus + curveMenu = self.menuBar().addMenu( "Curve" ) + toolsMenu = self.menuBar().addMenu( "Tools" ) + # Adding actions + createPolylineAction = QAction( "Polyline", self ) + createCircleAction = QAction( "Circle", self ) + curveMenu.addAction( createPolylineAction ) + curveMenu.addAction( createCircleAction ) + + deleteAllAction = QAction( "Delete all", self ) + toolsMenu.addAction( deleteAllAction ) + # Connecting slots + self.connect( createPolylineAction, SIGNAL( 'triggered()' ), self.showCreatePolylineDialog ) + self.connect( createCircleAction, SIGNAL( 'triggered()' ), self.showCreateCircleDialog ) + self.connect( deleteAllAction, SIGNAL( 'triggered()' ), self.deleteAll ) + pass + + def createToolBars( self ) : + # Creating toolBars + createPolylineTB = self.addToolBar( "New polyline") + createCircleTB = self.addToolBar( "New circle") + createPolylineAction = QAction( "Polyline", self ) + createCircleAction = QAction( "Circle", self ) + # Adding actions + createPolylineTB.addAction( createPolylineAction ) + createCircleTB.addAction( createCircleAction ) + # Connecting slots + self.connect( createPolylineAction, SIGNAL( 'triggered()' ), self.showCreatePolylineDialog ) + self.connect( createCircleAction, SIGNAL( 'triggered()' ), self.showCreateCircleDialog ) + pass + + def showCreatePolylineDialog( self ) : + from CreatePolylineDialog import CreatePolylineDialog + + widgetDialogBox = QDockWidget( "myDockWidget", self ) + myDialog = CreatePolylineDialog( "www.google.fr", self._controller, widgetDialogBox ) + widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea ) + widgetDialogBox.setWidget( myDialog ) + widgetDialogBox.setWindowTitle( "Polyline definition" ) + self.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox ) + pass + + def showCreateCircleDialog( self ) : + from CreateCircleDialog import CreateCircleDialog + + widgetDialogBox = QDockWidget( "myDockWidget", self ) + myDialog = CreateCircleDialog( "www.cea.fr", self._controller, widgetDialogBox ) + widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea ) + widgetDialogBox.setWidget( myDialog ) + widgetDialogBox.setWindowTitle( "Polyline definition" ) + self.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox ) + pass + + def deleteAll( self ) : + models = self.getController().getModels() + if len( models ) == 0 : return + answer = QMessageBox.question( self, 'Confirmation', 'Do you really want to delete all the existing objects ?' , QMessageBox.Yes | QMessageBox.No ) + if answer == QMessageBox.Yes : + for model in models : + self.getController().removeModel( model ) + pass + pass + pass + + def updateGlobalGraphicsView( self, scene ) : + self._globalGraphicsView.setScene( scene ) + if scene is None : + self._dockGlobalView.setWindowTitle( "Graphics view" ) + return + self._dockGlobalView.setWindowTitle( "Graphics view : showing " + scene.getModel().getName() ) + #Resizing the globalGraphicView + sceneRect = scene.getRect() + topLeft = sceneRect.topLeft() + viewRect = QRectF( topLeft.x(), topLeft.y(), 2*sceneRect.width(), 2*sceneRect.height() ) + self._globalGraphicsView.fitInView ( viewRect, Qt.IgnoreAspectRatio ) + pass + +pass diff --git a/data/templates/PythonComponent/src/Tools/Makefile.am b/data/templates/PythonComponent/src/Tools/Makefile.am new file mode 100755 index 0000000..629cb22 --- /dev/null +++ b/data/templates/PythonComponent/src/Tools/Makefile.am @@ -0,0 +1,30 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# SuperVisionTest AddComponent : example of component that adds two numbers +# File : Makefile.in +# Author : , CEA +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# Scripts to be installed +dist_salomescript_SCRIPTS = \ + Desktop.py \ + Standalone:sat:{PYCMP}GUI.py diff --git a/data/templates/PythonComponent/src/Tools/StandalonePYCMPGUI.py b/data/templates/PythonComponent/src/Tools/StandalonePYCMPGUI.py new file mode 100755 index 0000000..fa72418 --- /dev/null +++ b/data/templates/PythonComponent/src/Tools/StandalonePYCMPGUI.py @@ -0,0 +1,18 @@ +from Controller import Controller +from Desktop import Desktop +from PyQt4.QtGui import * +from PyQt4.QtCore import * +import sys + +def main( args ) : + Appli = QApplication( args ) + MainFrame = Desktop() + myController = Controller( MainFrame ) + MainFrame.setController( myController ) + MainFrame.show() + Appli.exec_() + +if __name__ == "__main__" : + main( sys.argv ) + pass + diff --git a/data/templates/PythonComponent/src/View/CircleGraphicsScene.py b/data/templates/PythonComponent/src/View/CircleGraphicsScene.py new file mode 100755 index 0000000..165a34d --- /dev/null +++ b/data/templates/PythonComponent/src/View/CircleGraphicsScene.py @@ -0,0 +1,31 @@ +from GraphicsScene import GraphicsScene +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from GraphicsRectItem import GraphicsRectItem + +class CircleGraphicsScene( GraphicsScene ) : + + def __init__( self, controller ) : + GraphicsScene.__init__( self, controller ) + pass + + def draw( self ) : + + import math + + center = self._model.getCenter() + radius = float( self._model.getRadius() ) + xCenter = float( center[0] ) + yCenter = float( center[1] ) + + #Drawing the center as a small rectangle + centerItem = GraphicsRectItem( xCenter-0.1, yCenter-0.1, 0.2, 0.2, None ) + self.addItem( centerItem ) + #Drawing the circle + rect = QRectF( xCenter-radius, yCenter-radius, 2*radius, 2*radius ) + circleItem = QGraphicsEllipseItem() + circleItem.setRect( rect ) + self.addItem( circleItem ) + pass + +pass diff --git a/data/templates/PythonComponent/src/View/CircleTreeWidgetItem.py b/data/templates/PythonComponent/src/View/CircleTreeWidgetItem.py new file mode 100755 index 0000000..a1e7728 --- /dev/null +++ b/data/templates/PythonComponent/src/View/CircleTreeWidgetItem.py @@ -0,0 +1,28 @@ +from View import * +from TreeWidgetItem import TreeWidgetItem +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class CircleTreeWidgetItem( TreeWidgetItem ) : + + def __init__( self, name, controller, actionsList ) : + """Constructor""" + + TreeWidgetItem.__init__( self, name, controller, actionsList ) + pass + + def editInGlobalTree( self, treeWidgetItem ) : + name = self.getModel().getName() + treeWidgetItem.setText( 0 , name ) + center = self._model.getCenter() + xCenter = center[0] + yCenter = center[1] + relatedItem = treeWidgetItem.child( 0 ) + relatedItem.setText( 0 , str(xCenter) + ":" + str(yCenter) ) + + radius = self._model.getRadius() + relatedItem = treeWidgetItem.child( 1 ) + relatedItem.setText( 0 , str(radius) ) + pass + +pass diff --git a/data/templates/PythonComponent/src/View/GraphicsRectItem.py b/data/templates/PythonComponent/src/View/GraphicsRectItem.py new file mode 100755 index 0000000..6b87e07 --- /dev/null +++ b/data/templates/PythonComponent/src/View/GraphicsRectItem.py @@ -0,0 +1,16 @@ +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class GraphicsRectItem( QGraphicsRectItem ) : + + def __init__( self, x, y, w, h, index ) : + QGraphicsRectItem.__init__( self, x, y, w, h ) + self._index = index + self.setFlag( self.ItemIsMovable, True ) + self.setFlag( self.ItemIsSelectable, True ) + pass + + def getIndex( self ) : + return self._index + +pass diff --git a/data/templates/PythonComponent/src/View/GraphicsScene.py b/data/templates/PythonComponent/src/View/GraphicsScene.py new file mode 100755 index 0000000..29f0daa --- /dev/null +++ b/data/templates/PythonComponent/src/View/GraphicsScene.py @@ -0,0 +1,68 @@ +from View import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class GraphicsScene( View, QGraphicsScene ) : + + def __init__( self, controller ) : + """Constructor""" + + View.__init__( self, controller ) + QGraphicsScene.__init__( self ) + pass + + def getRect( self ) : + rect = QRectF( 0, 0, self.width(), self.height() ) + return rect + + def editPoint( self, oldPoint, newPoint ) : + polyline = self.getModel() + self.getController().editPoint( polyline, oldPoint, newPoint ) + pass + + def editCenter( self, center ) : + circle = self.getModel() + self.getController().editCenter( circle, center ) + pass + + def editRadius( self, radius ) : + circle = self.getModel() + self.getController().editRadius( circle, radius ) + pass + + def update( self, mode ) : + if mode == 'creation' : + self.showInGlobalGraphicsView() + pass + elif mode == "showing" : + self.showInGlobalGraphicsView() + elif mode == 'modification' : + self.undraw() + self.showInGlobalGraphicsView() + pass + elif mode == 'supression' : + self.removeFromGlobalGraphicsView() + pass + else : + return + + def showInGlobalGraphicsView( self ) : + self.draw() + self.getController().getMainFrame().updateGlobalGraphicsView( self ) + pass + + def removeFromGlobalGraphicsView( self ) : + self.getController().getMainFrame().updateGlobalGraphicsView( None ) + pass + + def draw( self ) : + print 'Virtual method' + pass + + def undraw( self ) : + for item in self.items() : + self.removeItem( item ) + pass + pass + +pass diff --git a/data/templates/PythonComponent/src/View/GraphicsView.py b/data/templates/PythonComponent/src/View/GraphicsView.py new file mode 100755 index 0000000..cd98314 --- /dev/null +++ b/data/templates/PythonComponent/src/View/GraphicsView.py @@ -0,0 +1,98 @@ +from Polyline import Polyline +from Circle import Circle +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class GraphicsView( QGraphicsView ) : + + def __init__( self, scene ) : + QGraphicsView.__init__( self, scene ) + self.setMouseTracking( True ) + self._selectedItem = None + self.connect( self, SIGNAL("moved(QPointF)"), self.execMouseMoveEvent ) + self.connect( self, SIGNAL("released(QPointF)"), self.execMouseReleaseEvent ) + pass + + def mousePressEvent( self, mouseEvent ) : + QGraphicsView.mousePressEvent( self, mouseEvent ) + if self.scene() is None : return + self._selectedItem = self.scene().mouseGrabberItem() + pass + + def mouseMoveEvent( self, mouseEvent ) : + QGraphicsView.mouseMoveEvent( self, mouseEvent ) + pt = mouseEvent.pos() + currentPos = self.mapToScene( pt ) + self.emit( SIGNAL("moved(QPointF)"), currentPos ) + pass + + def mouseReleaseEvent( self, mouseEvent ) : + QGraphicsView.mouseReleaseEvent( self, mouseEvent ) + if mouseEvent.button() == Qt.LeftButton : + pt = mouseEvent.pos() + newPos = self.mapToScene( pt ) + self.emit( SIGNAL("released(QPointF)"), newPos ) + self._selectedItem = None + pass + pass + + def execMouseMoveEvent( self, currentPos ) : + if self._selectedItem is None : return + selectedIndex = self._selectedItem.getIndex() + newX = currentPos.x() + newY = currentPos.y() + newPoint = newX, newY + model = self.scene().getModel() + pen = QPen( QColor("red") ) + if isinstance( model, Polyline ) : + #Previsualisation + if selectedIndex == 0 : + nextPoint = model.getPoints()[ selectedIndex+1 ] + xNext = nextPoint[0] + yNext = nextPoint[1] + self.scene().addLine( newX, newY, xNext, yNext, pen ) + pass + elif selectedIndex == len( model.getPoints()) - 1 : + previousPoint = model.getPoints()[ selectedIndex-1 ] + xPrevious = previousPoint[0] + yPrevious = previousPoint[1] + self.scene().addLine( xPrevious, yPrevious, newX, newY, pen ) + pass + else : + previousPoint = model.getPoints()[ selectedIndex-1 ] + xPrevious = previousPoint[0] + yPrevious = previousPoint[1] + self.scene().addLine( xPrevious, yPrevious, newX, newY, pen ) + nextPoint = model.getPoints()[ selectedIndex+1 ] + xNext = nextPoint[0] + yNext = nextPoint[1] + self.scene().addLine( newX, newY, xNext, yNext, pen ) + pass + pass + elif isinstance( model, Circle ) : + #Previsualisation + radius = float( model.getRadius() ) + rect = QRectF( newX-radius, newY-radius, 2*radius, 2*radius ) + circleItem = QGraphicsEllipseItem() + circleItem.setPen( pen ) + circleItem.setRect( rect ) + self.scene().addItem( circleItem ) + pass + pass + + def execMouseReleaseEvent( self, newPos ) : + if self._selectedItem is None : return + selectedIndex = self._selectedItem.getIndex() + newX = newPos.x() + newY = newPos.y() + newPoint = newX, newY + model = self.scene().getModel() + if isinstance( model, Polyline ) : + self.scene().getController().editPoint( model, newPoint, selectedIndex ) + pass + elif isinstance( model, Circle ) : + self.scene().getController().editCenter( model, newPoint ) + pass + pass + +pass diff --git a/data/templates/PythonComponent/src/View/Makefile.am b/data/templates/PythonComponent/src/View/Makefile.am new file mode 100755 index 0000000..596194b --- /dev/null +++ b/data/templates/PythonComponent/src/View/Makefile.am @@ -0,0 +1,41 @@ +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# SuperVisionTest AddComponent : example of component that adds two numbers +# File : Makefile.in +# Author : , CEA +# Modified by : Alexander BORODIN (OCN) - autotools usage +# +include $(top_srcdir)/adm_local/unix/make_common_starter.am + +# Scripts to be installed +dist_salomescript_SCRIPTS = \ + CircleGraphicsScene.py \ + CircleTreeWidgetItem.py \ + GraphicsRectItem.py \ + GraphicsScene.py \ + GraphicsView.py \ + PolyGraphicsScene.py \ + PolyTreeWidgetItem.py \ + TreeWidgetItem.py \ + TreeWidget.py \ + View.py \ + Menu.py + + diff --git a/data/templates/PythonComponent/src/View/Menu.py b/data/templates/PythonComponent/src/View/Menu.py new file mode 100755 index 0000000..51ae730 --- /dev/null +++ b/data/templates/PythonComponent/src/View/Menu.py @@ -0,0 +1,16 @@ +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class Menu( QMenu ) : + + def __init__( self, item ) : + """Constructor""" + + QMenu.__init__( self ) + self._item = item + pass + + def getItem( self ) : + return self._item + +pass diff --git a/data/templates/PythonComponent/src/View/PolyGraphicsScene.py b/data/templates/PythonComponent/src/View/PolyGraphicsScene.py new file mode 100755 index 0000000..e4b4f3f --- /dev/null +++ b/data/templates/PythonComponent/src/View/PolyGraphicsScene.py @@ -0,0 +1,40 @@ +from GraphicsScene import GraphicsScene +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from GraphicsRectItem import GraphicsRectItem + +class PolyGraphicsScene( GraphicsScene ) : + + def __init__( self, controller ) : + GraphicsScene.__init__( self, controller ) + pass + + def draw( self ) : + points = self.getModel().getPoints() + + # Drawing the points as small rectangles + for i in range( len(points) ) : + point = points[i] + xPoint = float( point[0] ) + yPoint = float( point[1] ) + # Constructing a rectangle centered on point + pointItem = GraphicsRectItem( xPoint-0.1, yPoint-0.1, 0.2, 0.2, i ) + self.addItem( pointItem ) + pass + + # Linking the points with lines + for i in range( len(points) - 1 ) : + current = points[i] + next = points[i+1] + xCurrent = float( current[0] ) + yCurrent = float( current[1] ) + xNext = float( next[0] ) + yNext = float( next[1] ) + line = QLineF( xCurrent, yCurrent, xNext, yNext ) + lineItem = QGraphicsLineItem() + lineItem.setLine( line ) + self.addItem( lineItem ) + pass + pass + +pass diff --git a/data/templates/PythonComponent/src/View/PolyTreeWidgetItem.py b/data/templates/PythonComponent/src/View/PolyTreeWidgetItem.py new file mode 100755 index 0000000..2fbde02 --- /dev/null +++ b/data/templates/PythonComponent/src/View/PolyTreeWidgetItem.py @@ -0,0 +1,28 @@ +from View import * +from TreeWidgetItem import TreeWidgetItem +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class PolyTreeWidgetItem( TreeWidgetItem ) : + + def __init__( self, name, controller, actionsList ) : + """Constructor""" + + TreeWidgetItem.__init__( self, name, controller, actionsList ) + pass + + def editInGlobalTree( self, treeWidgetItem ) : + name = self.getModel().getName() + treeWidgetItem.setText( 0 , name ) + + points = self._model.getPoints() + for i in range( len(points) ) : + point = points[i] + xPoint = point[0] + yPoint = point[1] + relatedItem = treeWidgetItem.child( i ) + relatedItem.setText( 0 , str(xPoint) + ":" + str(yPoint) ) + pass + pass + +pass diff --git a/data/templates/PythonComponent/src/View/TreeWidget.py b/data/templates/PythonComponent/src/View/TreeWidget.py new file mode 100755 index 0000000..b851892 --- /dev/null +++ b/data/templates/PythonComponent/src/View/TreeWidget.py @@ -0,0 +1,108 @@ +from PyQt4.QtGui import * +from PyQt4.QtCore import * +from Menu import Menu +from RenameDialog import RenameDialog +from EditPointDialog import EditPointDialog +from EditCenterDialog import EditCenterDialog +from EditRadiusDialog import EditRadiusDialog +from Polyline import Polyline +from Circle import Circle +from SalomePyQt import SalomePyQt +from libSALOME_Swig import SALOMEGUI_Swig + +######################################### +# Global variables +######################################### + +sgPyQt = SalomePyQt() +sg = SALOMEGUI_Swig() +sgDesktop = sgPyQt.getDesktop() + +######################################### + +class TreeWidget( QTreeWidget ) : + + def __init__( self, desktop ) : + """Constructor""" + + QTreeWidget.__init__( self ) + self._desktop = desktop + + #Creating popup menu + self.setContextMenuPolicy( Qt.CustomContextMenu ) + self.connect ( self, SIGNAL("customContextMenuRequested(const QPoint)"), self.createPopups ) + pass + + def createPopups( self, point ) : + item = self.itemAt( point ) + if item is None : return + self.menu = Menu( item ) + for action in item.getActionsList(): + if action == "Show" : + self.connect( self.menu.addAction( action ), SIGNAL('triggered()'), self.show ) + pass + elif action == 'Rename' : + self.connect( self.menu.addAction( action ), SIGNAL('triggered()'), self.showRenameDialog ) + pass + elif action == 'Delete' : + self.connect( self.menu.addAction( action ), SIGNAL('triggered()'), self.delete ) + pass + else : + self.connect( self.menu.addAction( action ), SIGNAL('triggered()'), self.showEditDialog ) + pass + pass + self. menu.exec_( QCursor.pos() ) + pass + + def show( self ) : + model = self.menu.getItem().getModel() + controller = self._desktop.getController() + controller.showModel( model ) + pass + + def showRenameDialog( self ) : + model = self.menu.getItem().getModel() + oldName = model.getName() + widgetDialogBox = QDockWidget( sgDesktop ) + myDialog = RenameDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, model, oldName ) + widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea ) + widgetDialogBox.setWidget( myDialog ) + widgetDialogBox.setWindowTitle( "Object renaming" ) + sgDesktop.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox ) + pass + + def delete( self ) : + answer = QMessageBox.question( self, 'Confirmation', 'Do you really want to remove the selected curve ?' , QMessageBox.Yes | QMessageBox.No ) + if answer == QMessageBox.Yes : + model = self.menu.getItem().getModel() + controller = self._desktop.getController() + controller.removeModel( model ) + pass + pass + + def showEditDialog( self ) : + item = self.menu.getItem() + parentItem = item.parent() + parentModel = parentItem.getModel() + widgetDialogBox = QDockWidget( sgDesktop ) + if isinstance( parentModel, Polyline ) : + pointRange = parentItem.indexOfChild( item ) + oldPoint = item.text( 0 ) + myDialog = EditPointDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, parentModel, oldPoint, pointRange ) + pass + elif isinstance( parentModel, Circle ) : + selectedRange = parentItem.indexOfChild( item ) + oldSelected = item.text( 0 ) + if selectedRange == 0 : myDialog = EditCenterDialog( "www.google.fr", self._desktop.getController(), widgetDialogBox, parentModel, oldSelected ) + elif selectedRange == 1 : myDialog = EditRadiusDialog("www.google.fr",self._desktop.getController(),widgetDialogBox,parentModel,oldSelected) + else : pass + pass + else : pass + + widgetDialogBox.setAllowedAreas( Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea ) + widgetDialogBox.setWidget( myDialog ) + widgetDialogBox.setWindowTitle( "Object edition" ) + sgDesktop.addDockWidget( Qt.LeftDockWidgetArea, widgetDialogBox ) + pass + +pass diff --git a/data/templates/PythonComponent/src/View/TreeWidgetItem.py b/data/templates/PythonComponent/src/View/TreeWidgetItem.py new file mode 100755 index 0000000..9aac00e --- /dev/null +++ b/data/templates/PythonComponent/src/View/TreeWidgetItem.py @@ -0,0 +1,56 @@ +from View import * +from PyQt4.QtGui import * +from PyQt4.QtCore import * + +class TreeWidgetItem( View, QTreeWidgetItem ) : + + def __init__( self, name, controller, actionsList ) : + """Constructor""" + + View.__init__( self, controller ) + self._name = [ name ] + QTreeWidgetItem.__init__( self, self._name ) + self._actionsList = actionsList + pass + + def getActionsList( self ) : + return self._actionsList + + def editCenter( self, center ) : + circle = self.getModel() + self.getController().editCenter( circle, center ) + pass + + def editRadius( self, radius ) : + circle = self.getModel() + self.getController().editRadius( circle, radius ) + pass + + def update( self, mode ) : + if mode == 'creation' : + self.addToGlobalTree( self ) + pass + elif mode == 'modification' : + self.editInGlobalTree( self ) + pass + elif mode == 'supression' : + self.removeFromGlobalTree( self ) + pass + else : + return + + def addToGlobalTree( self, treeWidgetItem ) : + globalTree = self.getController().getMainFrame().getGlobalTree() + globalTree.addTopLevelItem( treeWidgetItem ) + pass + + def editInGlobalTree( self, treeWidgetItem ) : + print 'Virtual' + pass + + def removeFromGlobalTree( self, treeWidgetItem ) : + globalTree = self.getController().getMainFrame().getGlobalTree() + globalTree.takeTopLevelItem( globalTree.indexOfTopLevelItem(treeWidgetItem) ) + pass + +pass diff --git a/data/templates/PythonComponent/src/View/View.py b/data/templates/PythonComponent/src/View/View.py new file mode 100755 index 0000000..899419d --- /dev/null +++ b/data/templates/PythonComponent/src/View/View.py @@ -0,0 +1,33 @@ +class View() : + + def __init__( self, controller ) : + """Constructor""" + + self._model = None + self._controller = controller + pass + + def getModel( self ) : + return self._model + + def setModel( self, model ) : + self._model = model + pass + + def getController( self ) : + return self._controller + + def setController( self, controller ) : + self._controller = controller + pass + + def editName( self, name ) : + model = self.getModel() + self._controller.editName( model, name ) + pass + + def update( self, mode ) : + print 'Virtual method' + pass + +pass diff --git a/data/templates/PythonComponent/template.info b/data/templates/PythonComponent/template.info new file mode 100644 index 0000000..818452d --- /dev/null +++ b/data/templates/PythonComponent/template.info @@ -0,0 +1,62 @@ +#!/usr/bin/env python +#-*- coding:utf-8 -*- + +# description of the template to be displayed with option --info +info = """ +Author: CEA +Version: 1.0 +Date: 01/03/2012 +Description: This template can be used to create a python module for SALOME. +""" + +# code to substitute with component name +file_subst = "PYCMP" + +# delimiter used in the template (default is ':sat:') +#delimiter = ":sat:" + +# filter of files to ignore for substitution +# if not defined all files will be parsed +ignore_filters = '*.png' + +# list of parameters +# a string = parameter name +# a tuple = (parameter name, default value, prompt, validation method) + +#there is a problem for loading modules if user choose something else than standard "resources directory (lowercase)" +#so we need force standard choice... +# ('PYCMP_minus', "%(name)s", "resources directory (lowercase)", lambda l: l.islower() and l.replace("_","").isalnum()), + +parameters = [ + (file_subst, "%(NAME)s"), + ('PYCMPCompoName', "%(Name)s", "Name of the module (hit return!)"), + ('PYCMP_minus', "%(name)s", "resources directory (lowercase) (hit return!)", lambda l: l.islower() and l.replace("_","").isalnum()), + ("get_method", "archive", "get method for prepare", lambda l: l in ['cvs', 'git', 'archive']) + ] + +# configuration to use this component with sat +pyconf = """ +TOOLS : { common : { module_info : { + '%(NAME)s': + { + name : "%(NAME)s" + has_gui : "yes" + get_sources : '%(get_method)s' + build_sources : 'autotools' + git_info: + { + repo : 'to be filled' + tag : 'to be filled' + } + archive_info: + { + archive_name : '%(target)s.tar.gz' + } + nb_proc : 1 + source_dir : $TOOLS.common.source_root + '/' + $name + build_dir : $TOOLS.common.build_root + '/' + $name + depend : [ 'Python', 'KERNEL', 'GUI' ] + opt_depend : [] + } +}}} +""" diff --git a/src/product.py b/src/product.py index 84c0657..b5ae9cb 100644 --- a/src/product.py +++ b/src/product.py @@ -613,6 +613,20 @@ def product_has_patches(product_info): ''' return "patches" in product_info and len(product_info.patches) > 0 +def product_has_logo(product_info): + '''Know if a product has a logo (YACSGEN generate) + + :param product_info Config: The configuration specific to + the product + :return: The path of the logo if the product has a logo, else False + :rtype: Str + ''' + if ("properties" in product_info and + "logo" in product_info.properties): + return product_info.properties.logo + else: + return False + def product_is_mpi(product_info): '''Know if a product has openmpi in its dependencies -- 2.39.2