summaryrefslogtreecommitdiff
path: root/ext/zlib/extconf.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/zlib/extconf.rb')
-rw-r--r--ext/zlib/extconf.rb66
1 files changed, 66 insertions, 0 deletions
diff --git a/ext/zlib/extconf.rb b/ext/zlib/extconf.rb
new file mode 100644
index 0000000000..a1a28bb078
--- /dev/null
+++ b/ext/zlib/extconf.rb
@@ -0,0 +1,66 @@
+#
+# extconf.rb
+#
+# $Id$
+#
+
+require 'mkmf'
+require 'rbconfig'
+
+dir_config 'zlib'
+
+
+if %w'z libz zlib'.find {|z| have_library(z, 'deflateReset')} and
+ have_header('zlib.h') then
+
+ defines = []
+
+ message 'checking for kind of operating system... '
+ os_code = with_config('os-code') ||
+ case RUBY_PLATFORM.split('-',2)[1]
+ when 'amigaos' then
+ os_code = 'AMIGA'
+ when /\Aos2[\-_]emx\z/ then
+ os_code = 'OS2'
+ when 'mswin32', 'mingw32' then
+ # NOTE: cygwin should be regarded as Unix.
+ os_code = 'WIN32'
+ else
+ os_code = 'UNIX'
+ end
+ os_code = 'OS_' + os_code.upcase
+
+ OS_NAMES = {
+ 'OS_MSDOS' => 'MS-DOS',
+ 'OS_AMIGA' => 'Amiga',
+ 'OS_VMS' => 'VMS',
+ 'OS_UNIX' => 'Unix',
+ 'OS_ATARI' => 'Atari',
+ 'OS_OS2' => 'OS/2',
+ 'OS_MACOS' => 'MacOS',
+ 'OS_TOPS20' => 'TOPS20',
+ 'OS_WIN32' => 'Win32',
+ 'OS_VMCMS' => 'VM/CMS',
+ 'OS_ZSYSTEM' => 'Z-System',
+ 'OS_CPM' => 'CP/M',
+ 'OS_QDOS' => 'QDOS',
+ 'OS_RISCOS' => 'RISCOS',
+ 'OS_UNKNOWN' => 'Unknown',
+ }
+ unless OS_NAMES.key? os_code then
+ puts "invalid OS_CODE `#{os_code}'"
+ exit
+ end
+ message "#{OS_NAMES[os_code]}\n"
+ defines << "OS_CODE=#{os_code}"
+
+ defines = defines.collect{|d|' -D'+d}.join
+ if $CPPFLAGS then
+ $CPPFLAGS += defines
+ else
+ $CFLAGS += defines
+ end
+
+ create_makefile('zlib')
+
+end