Sha256: 7e2a99e94ddb6f0d7ca445fe290e36acb0734e7ff166306f84210707c6b606f1

Contents?: true

Size: 1.53 KB

Versions: 16

Compression:

Stored size: 1.53 KB

Contents

#!/usr/bin/env ruby

require 'mkmf'
require 'fileutils'

include RbConfig
include FileUtils

ZSTD_VERSION = '1.5.6'
ZLIB_VERSION = '1.3.1'

RB_VERSION = CONFIG['MAJOR']+'.'+CONFIG['MINOR']

# Review requirements with every new zlib module release!
ZMOD_VERSION =  if    RB_VERSION >= '2.5' then '3.3'
                elsif RB_VERSION >= '2.3' then '3.2'
                else  RB_VERSION
                end

# For cross compiling
ENV['CC'] = RbConfig::CONFIG['CC']
ENV['LD'] = RbConfig::CONFIG['LD']

root = File.dirname(__FILE__)

zmod = File.expand_path "ruby/zlib-#{ZMOD_VERSION}", root
zlib = File.expand_path "zlib-#{ZLIB_VERSION}", root
zstd = File.expand_path "zstd-#{ZSTD_VERSION}/lib", root
zlibwrapper = File.expand_path "zstd-#{ZSTD_VERSION}/zlibWrapper", root

cp "#{zmod}/zstdlib.c", 'zstdlib.c'

$srcs = ['zstdlib.c']

$CFLAGS += ' -fomit-frame-pointer -ffast-math -O3'
$CPPFLAGS += " -I#{zlib} -I#{zlibwrapper} -I#{zstd} -DZWRAP_USE_ZSTD=1 -DGZIP_SUPPORT=1"
$LDFLAGS += ' -s'
$LOCAL_LIBS += ' libzlibwrapper.a libz.a libzstd.a'

create_makefile('zstdlib_c')

File.open('Makefile', 'a') do |file|
file << %~

export CC LD AR CFLAGS CPPFLAGS

$(DLLIB) : libz.a libzstd.a libzlibwrapper.a

libzstd.a :
\texport SRCDIR=#{zstd} && mkdir -p zstd && $(MAKE) -C zstd -f #{File.expand_path root}/zstd.mk

libz.a :
\texport SRCDIR=#{zlib} && mkdir -p zlib && $(MAKE) -C zlib -f #{File.expand_path root}/zlib.mk

libzlibwrapper.a :
\texport SRCDIR=#{zlibwrapper} && mkdir -p zlibwrapper && $(MAKE) -C zlibwrapper -f #{File.expand_path root}/zlibwrapper.mk

~
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
zstdlib-0.14.0-x86-mingw32 ext/zstdlib_c/extconf.rb
zstdlib-0.14.0-x86-linux ext/zstdlib_c/extconf.rb
zstdlib-0.14.0-x86_64-linux ext/zstdlib_c/extconf.rb
zstdlib-0.14.0-x86_64-darwin ext/zstdlib_c/extconf.rb
zstdlib-0.14.0-x64-mingw-ucrt ext/zstdlib_c/extconf.rb
zstdlib-0.14.0-x64-mingw32 ext/zstdlib_c/extconf.rb
zstdlib-0.14.0 ext/zstdlib_c/extconf.rb
zstdlib-0.14.0-arm64-darwin ext/zstdlib_c/extconf.rb
zstdlib-0.13.0-x86-mingw32 ext/zstdlib_c/extconf.rb
zstdlib-0.13.0-x86-linux ext/zstdlib_c/extconf.rb
zstdlib-0.13.0-x86_64-linux ext/zstdlib_c/extconf.rb
zstdlib-0.13.0-x86_64-darwin ext/zstdlib_c/extconf.rb
zstdlib-0.13.0-x64-mingw-ucrt ext/zstdlib_c/extconf.rb
zstdlib-0.13.0-x64-mingw32 ext/zstdlib_c/extconf.rb
zstdlib-0.13.0 ext/zstdlib_c/extconf.rb
zstdlib-0.13.0-arm64-darwin ext/zstdlib_c/extconf.rb