List:Commits« Previous MessageNext Message »
From:magnus.blaudd Date:October 14 2011 7:57am
Subject:bzr push into mysql-5.5-cluster branch (magnus.blaudd:3578 to 3579)
View as plain text  
 3579 magnus.blaudd@stripped	2011-10-14 [merge]
      Merge

    modified:
      storage/ndb/compile-cluster
 3578 jonas oreland	2011-10-13 [merge]
      ndb - merge 71 to 72

    modified:
      mysql-test/suite/ndb/r/ndbinfo.result
      storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
      storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
      storage/ndb/src/kernel/blocks/dbtc/Dbtc.hpp
      storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
      storage/ndb/src/kernel/blocks/dbtux/Dbtux.hpp
      storage/ndb/src/kernel/blocks/dbtux/DbtuxGen.cpp
      storage/ndb/src/kernel/blocks/dbtux/DbtuxScan.cpp
      storage/ndb/src/kernel/vm/DLHashTable.hpp
      storage/ndb/src/kernel/vm/NdbinfoTables.cpp
=== modified file 'storage/ndb/compile-cluster'
--- a/storage/ndb/compile-cluster	2011-10-11 12:31:20 +0000
+++ b/storage/ndb/compile-cluster	2011-10-14 07:43:50 +0000
@@ -33,26 +33,29 @@ use Getopt::Long;
 my $opt_debug;
 my $opt_build_type;
 my $opt_build = 1;
+my $opt_just_print;
 
 Getopt::Long::Configure("pass_through");
 GetOptions(
 
   # Build MySQL Server and NDB with debug
-  'debug' => \$opt_debug,
+  'debug!' => \$opt_debug,
   'with-debug:s' => sub { $opt_debug = 1; },
   'build-type=s' => \$opt_build_type,
   'build!' => \$opt_build,
+  'c|just-configure' => sub { $opt_build = 0; },
+  'n|just-print' => \$opt_just_print,
 ) or exit(1);
 
 # Find source root directory, assume this script is
 # in <srcroot>/storage/ndb/
-my $srcdir = dirname(dirname(dirname(abs_path($0))));
-die unless -d $srcdir; # Sanity check that the srcdir exist
+my $opt_srcdir = dirname(dirname(dirname(abs_path($0))));
+die unless -d $opt_srcdir; # Sanity check that the srcdir exist
 if ($^O eq "cygwin") {
   # Convert posix path to Windows mixed path since cmake
   # is most likely a windows binary
-  $srcdir= `cygpath -m $srcdir`;
-  chomp $srcdir;
+  $opt_srcdir= `cygpath -m $opt_srcdir`;
+  chomp $opt_srcdir;
 }
 
 # Check that cmake exists and figure out it's version 
@@ -65,7 +68,7 @@ my $cmake_version_id;
   {
     #print "1: $1 2: $2 3: $3\n";
     $cmake_version_id= $1*10000 + $2*100 + $3;
-    print "cmake_version_id: $cmake_version_id\n";
+    #print "cmake_version_id: $cmake_version_id\n";
   }
   die "Could not parse cmake version" unless ($cmake_version_id);
 }
@@ -75,29 +78,212 @@ my $cmake_version_id;
 # Configure
 #
 {
+  # Remove old CMakeCache.txt(ignore if not exists) to
+  # force fresh configure
+  unlink("CMakeCache.txt");
+   
   my @args;
-  my @opt_build_type_arg;
-  push(@args, "$srcdir/cmake/configure.pl");
-
-  # MySQL Server options
-  push(@args, "--with-ssl");
+  
+  # Hardcoded options controlling how to build MySQL Server
+  push(@args, "-DWITH_SSL=bundled");
  
   if ($opt_debug)
   {
-    push(@args, "--with-debug");
-    push(@args, "--disable-mysql-maintainer-mode");
+    push(@args, "-DWITH_DEBUG=1");
+    push(@args, "-DMYSQL_MAINTAINER_MODE=0");
   }
 
-  # NDB options
-  push(@args, "--with-plugin-ndbcluster");
-  push(@args, "--with-ndb-test");
+  # Hardcoded options controlling how to build NDB
+  push(@args, "-DWITH_PLUGIN_NDBCLUSTER=1");
+  push(@args, "-DWITH_NDB_TEST=1");
 
+  # The cmake generator to use
   if ($opt_build_type)
   {
-    push(@opt_build_type_arg, "--cmake-args=\"-G " . $opt_build_type . "\"");
+    push(@args, "-G $opt_build_type");
   }
 
-  cmd($^X, @args, @ARGV, @opt_build_type_arg);
+  # Sets installation directory,  bindir, libdir, libexecdir etc.
+  # The equivalent CMake variables are given without prefix
+  # e.g if --prefix is /usr and --bindir is /usr/bin
+  # then cmake variable (INSTALL_BINDIR) must be just "bin"
+  my $opt_prefix;
+  sub set_installdir
+  {
+    my($path, $varname) = @_;
+    my $prefix_length = length($opt_prefix);
+    if (($prefix_length > 0) && (index($path,$opt_prefix) == 0))
+    {
+      # path is under the prefix, remove the prefix and
+      # maybe following "/"
+      $path = substr($path, $prefix_length);
+      if(length($path) > 0)
+      {
+        my $char = substr($path, 0, 1);
+        if($char eq "/")
+        {
+          $path= substr($path, 1);
+        }
+      }
+      if(length($path) > 0)
+      {
+        push(@args, "-D$varname=$path");
+      }
+    }
+  }
+
+  # Process --configure style arguments which need special conversion 
+  my $opt_bindir;
+  my $opt_libdir;
+  my $opt_libexecdir;
+  my $opt_includedir;
+  my $opt_with_zlib_dir;
+  my $opt_with_ssl;
+  my $opt_localstatedir;
+  my $opt_mysql_maintainer_mode;
+  my $opt_with_gcov;
+  my $opt_with_comment;
+  my $opt_with_plugins;
+  my $opt_without_plugin;
+  my $opt_extra_charsets;
+  my $opt_with_extra_charsets;  
+  Getopt::Long::Configure("pass_through");
+  GetOptions(
+    'prefix=s' => \$opt_prefix,
+    'srcdir=s' => \$opt_srcdir,
+    'bindir=s' => \$opt_bindir,
+    'libdir=s' => \$opt_libdir,
+    'libexecdir=s' => \$opt_libexecdir,
+    'includedir=s' => \$opt_includedir,
+    'with-zlib-dir=s' => \$opt_with_zlib_dir,
+    'with-ssl:s' => \$opt_with_ssl,
+    'localstatedir=s' => \$opt_localstatedir,
+    'mysql-maintainer-mode=s' => \$opt_mysql_maintainer_mode,
+    'with-gcov' => \$opt_with_gcov,
+    'with-comment=s' => \$opt_with_comment,
+    'with-plugins=s' => \$opt_with_plugins,
+    'without-plugin=s' => \$opt_without_plugin,
+    'with-extra-charsets=s' => \$opt_with_extra_charsets,
+    'extra-charsets=s' => \$opt_extra_charsets,
+  ) or exit(1);
+
+  if($opt_prefix)
+  {
+    push(@args, "-DCMAKE_INSTALL_PREFIX=$opt_prefix");
+  }
+  if($opt_bindir)
+  {
+    set_installdir($opt_bindir, "INSTALL_BINDIR");
+  }
+  if($opt_libdir)
+  {
+    set_installdir($opt_libdir, "INSTALL_LIBDIR");
+  }
+  if($opt_libexecdir)
+  {
+    set_installdir($opt_libexecdir, "INSTALL_SBINDIR");
+  }
+  if($opt_includedir)
+  {
+    set_installdir($opt_includedir, "INSTALL_INCLUDEDIR");
+  }
+  if($opt_with_zlib_dir)
+  {
+    $opt_with_zlib_dir = "system"
+      if ($opt_with_zlib_dir ne "bundled");
+    push(@args, "-DWITH_ZLIB=$opt_with_zlib_dir");
+  }
+  if($opt_with_ssl)
+  {
+    push(@args, "-DWITH_SSL=".($opt_with_ssl ? "yes" : "bundled"));
+  }
+  if ($opt_localstatedir)
+  {
+    push(@args, "-DMYSQL_DATADIR=$opt_localstatedir"); 
+  }
+  if ($opt_mysql_maintainer_mode)
+  {
+    push(@args, "-DMYSQL_MAINTAINER_MODE=" .
+                 ($opt_mysql_maintainer_mode =~ /enable/ ? "1" : "0"));
+  }
+  if ($opt_with_gcov)
+  {
+    push(@args, "-DENABLE_GCOV=ON"); 
+  }
+  if ($opt_with_comment)
+  {
+    push(@args, "\"-DWITH_COMMENT=$opt_with_comment\""); 
+  }
+  if($opt_with_plugins)
+  {
+    my @plugins= split(/,/, $opt_with_plugins);
+    foreach my $p (@plugins)
+    {
+      $p =~ s/-/_/g;
+      push(@args, "-DWITH_".uc($p)."=1");
+    }
+  }
+  if($opt_without_plugin)
+  {
+    push(@args, "-DWITHOUT_".uc($opt_without_plugin)."=1");
+  }
+  if ($opt_extra_charsets)
+  {
+    push(@args, "-DWITH_CHARSETS=$opt_extra_charsets"); 
+  }
+  if($opt_with_extra_charsets)
+  {
+    push(@args, "-DWITH_EXTRA_CHARSETS=$opt_with_extra_charsets");
+  }
+  
+
+  # Default conversion of remaining args in ARGV from
+  # 1) --arg          -> -DARG=1
+  # 2) --arg=value    -> -DARG=value
+  # 3) arg=value      -> environment variable arg=value
+  foreach my $option (@ARGV)
+  {
+    if ($option =~  /^--/)
+    {  
+      # Remove leading --
+      $option = substr($option, 2);
+    
+      my @v  = split('=', $option);
+      my $name = shift(@v);
+      $name = uc($name);
+      $name =~ s/-/_/g;
+      if (@v)
+      {
+        push(@args, "-D$name=".join('=', @v));
+      }
+      else
+      {
+        push(@args, "-D$name=1");
+      }
+    }
+    else
+    {
+ 
+      # This must be environment variable
+      my @v  = split('=', $option);
+      my $name = shift(@v);
+      if(@v)
+      {
+        $ENV{$name} = join('=', @v);  
+      }
+      else
+      {
+        die "unhandled argument '$option' found"; 
+      }
+    }
+  }
+  
+  # The source directory to build from
+  die "srcdir already contains CMakeCache.txt, this will not work!"
+    if (-f "$opt_srcdir/CMakeCache.txt");
+  push(@args, $opt_srcdir);
+  
+  cmd("cmake", @args);
 }
 
 if (!$opt_build)
@@ -117,7 +303,7 @@ if (!$opt_build)
     # which is available from cmake 2.8 and works on all platforms
     my @args;
     push(@args, "--build");
-    push(@args, "$srcdir");
+    push(@args, "$opt_srcdir");
 
     if ($^O eq "cygwin" or $^O eq "MSWin32")
     {
@@ -140,12 +326,18 @@ if (!$opt_build)
     die "You need to install cmake with version > 2.8"
       if ($^O eq "cygwin" or $^O eq "MSWin32");
 
-    cmd("make -C $srcdir");
+    cmd("make");
   }
 }
 
 sub cmd {
   my ($cmd, @a)= @_;
+  
+  if ($opt_just_print){
+    print "$cmd ", join(' ', @a), "\n";
+    return; 
+  }
+  
   print "compile-cluster: calling '$cmd ", join(' ', @a), "'\n";
   system($cmd, @a)
     and print("command failed: $!\n")

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-5.5-cluster branch (magnus.blaudd:3578 to 3579) magnus.blaudd14 Oct