Sha256: 44f87fc5d43c8ece0197ddf0fbc83c4e1ca32ec743d5b0bc52e6d99381dd8d70

Contents?: true

Size: 1.68 KB

Versions: 8

Compression:

Stored size: 1.68 KB

Contents

require 'mkmf'
require 'rbconfig'

# Code taken from Evan's Weaver memcached library: http://github.com/fauna/memcached

HERE        = File.expand_path(File.dirname(__FILE__))
BUNDLE      = Dir.glob("libmemcached-*.tar.gz").first
BUNDLE_PATH = BUNDLE.sub(".tar.gz", "")

$CXXFLAGS = " -std=gnu++98"

if !ENV["EXTERNAL_LIB"]
  $includes    = " -I#{HERE}/include"
  $libraries   = " -L#{HERE}/lib"
  $CFLAGS      = "#{$includes} #{$libraries} #{$CFLAGS}"
  $LDFLAGS     = "#{$libraries} #{$LDFLAGS}"
  $LIBPATH     = ["#{HERE}/lib"]
  $DEFLIBPATH  = []

  Dir.chdir(HERE) do
    if false and File.exist?("lib")
      puts "Libmemcached already built; run 'rake clean' first if you need to rebuild."
    else
      puts "Building libmemcached."
      puts(cmd = "tar xzf #{BUNDLE} 2>&1")
      raise "'#{cmd}' failed" unless system(cmd)
      
      Dir.chdir(BUNDLE_PATH) do        
        puts(cmd = "env CFLAGS='-fPIC' ./configure --prefix=#{HERE} --without-memcached --disable-shared --disable-utils --disable-dependency-tracking #{$EXTRA_CONF} 2>&1")
        raise "'#{cmd}' failed" unless system(cmd)

        puts(cmd = "make CXXFLAGS='#{$CXXFLAGS}' || true 2>&1")
        raise "'#{cmd}' failed" unless system(cmd)

        puts(cmd = "make install || true 2>&1")
        raise "'#{cmd}' failed" unless system(cmd)
      end

      system("rm -rf #{BUNDLE_PATH}") unless ENV['DEBUG'] or ENV['DEV']
    end
  end
  
  # Absolutely prevent the linker from picking up any other libmemcached
  Dir.chdir("#{HERE}/lib") do
    system('cp -f libmemcached.a  libmemcached_gem.a') 
    system('cp -f libmemcached.la libmemcached_gem.la') 
  end

  $LIBS << " -lmemcached_gem"
end

create_makefile('memcache/native_server')

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
memcache-1.2.8 ext/extconf.rb
memcache-1.2.7 ext/extconf.rb
memcache-1.2.6 ext/extconf.rb
memcache-1.2.5 ext/extconf.rb
memcache-1.2.4 ext/extconf.rb
memcache-1.2.3 ext/extconf.rb
memcache-1.2.2 ext/extconf.rb
memcache-1.2.1 ext/extconf.rb