Coccinelle release 0.2.5-rc3
[bpt/coccinelle.git] / configure
index b2d5f71..1c3aea0 100755 (executable)
--- a/configure
+++ b/configure
@@ -109,7 +109,7 @@ $error +=
                  "The program ocaml is missing or is not a good version. We need at least 3.09",
                  );
 
-unless ($noocamlscripting) { 
+unless ($noocamlscripting) {
 $noocamlscripting = check_config("echo \"1;;\\n\" | ocaml |",
                  "Objective(.*) 3.1[1-9]",
                  "OCaml >= 3.11 is present. OCaml scripting activated.",
@@ -186,7 +186,6 @@ $error += check_config(
 We need  3.XX",
 );
 
-
 #---------------------------------------------------------------------
 # More developers tools
 #---------------------------------------------------------------------
@@ -195,6 +194,40 @@ We need  3.XX",
 # Librairies
 #---------------------------------------------------------------------
 
+# Python dev
+if($python) {
+    if(check_config(
+       "python --version 2>&1 |",
+       '^Python 2\.([567]|[567]\.\S*)$',
+       "python is present",
+       "python is missing or is not a good version."
+       ))
+    {
+       $python=0;
+    }
+    if($python) {
+       my $PY_PREFIX = `python pycaml/getprefix.py | tr -d '\n'`;
+       my $PY_VERSION = `python pycaml/getversion.py | tr -d '\n'`;
+       my $python_hdr = "$PY_PREFIX/include/python$PY_VERSION/Python.h";
+       if(check_config(
+           "ls $python_hdr 2> /dev/null | ",
+           $python_hdr,
+           "Python.h found",
+           "Python.h missing - You need to install python-dev"
+           ))
+       {
+           $python=0
+       }
+    }
+}
+
+my $ocamlfind=!check_config(
+       "which ocamlfind 2> /dev/null |",
+       '/ocamlfind$',
+       "ocamlfind is present",
+       "ocamlfind is missing -- Switch to local library copies."
+    );
+
 # pycaml. Binding between Python and OCaml
 my $syspydir=`ocamlfind query pycaml 2> /dev/null | xargs echo -n`;
 
@@ -275,14 +308,15 @@ Then, to test $project simply type:
 
 ";
 
-if($python) {
-        pr2
+    if($python) {
+       pr2
 "To use the python SmPL feature you may have to set some environment variables.
 However, they are automatically set by the front-end installed in $prefix/bin.
 For bash do:
 export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$prefix/lib
 export PYTHONPATH=\$PYTHONPATH:$src/python"
     }
+
     pr2 "----------------------------------------------------------------------";
 }
 
@@ -290,6 +324,8 @@ export PYTHONPATH=\$PYTHONPATH:$src/python"
 # Generating the configuration
 ######################################################################
 
+pr2 "  Compilation configuration\n";
+
 pr2 "$project target prefix: $prefix (you can use --prefix to override it)";
 pr2 "Generating Makefile.config";
 open(CONFIG, ">Makefile.config");
@@ -332,11 +368,11 @@ OPTBIN=$opt
 
 
 my $pythonprefix = $python ? "yes" : "no";
-pr2 "Support for python scripting : $pythonprefix";
+pr2 "Support for python scripting: $pythonprefix";
 `cd python; ln -sf ${pythonprefix}_pycocci.ml pycocci.ml; `;
 `cd python; make depend`;
 
-pr2 "Support for ocaml scripting : $ocamlprefix";
+pr2 "Support for ocaml scripting: $ocamlprefix";
 `cd ocaml; ln -sf ${ocamlprefix}_prepare_ocamlcocci.ml prepare_ocamlcocci.ml;`;
 `cd ocaml; make depend`;
 
@@ -344,3 +380,14 @@ pr2 "Modifying globals/config.ml";
 my $command = "perl -p -e 's#Not_found.\*#Not_found->\\\"$src\\\"#' globals/config.ml.in > globals/config.ml";
 `$command`;
 
+pr2 "----------------------------------------------------------------------";
+pr2 "  Runtime dependency\n";
+
+if ($ocamlfind) {
+pr2 "Support for external ocaml library in ocaml scripting: yes (ocamlfind found)";
+}
+else {
+pr2 "Support for external ocaml library in ocaml scripting: no (ocamlfind may be required at runtime)";
+}
+
+pr2 "";