From 91c86c4663774eaa0f20283c2c099198702e13e0 Mon Sep 17 00:00:00 2001
From: Lyle Johnson <lyle@lylejohnson.name>
Date: Tue, 28 Apr 2009 15:07:43 -0500
Subject: [PATCH] get extconf.rb under version control now that we don't use
the templatized version any more
---
ext/fox16/extconf.rb | 210 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 210 insertions(+)
create mode 100755 ext/fox16/extconf.rb
diff --git a/ext/fox16/extconf.rb b/ext/fox16/extconf.rb
new file mode 100755
index 0000000..6317045
--- /dev/null
+++ b/ext/fox16/extconf.rb
@@ -0,0 +1,210 @@
+#!/bin/env ruby
+
+require 'fileutils'
+require 'mkmf'
+
+def find_installed_fox_version
+ stddirs = ["/usr/include/fox-1.6",
+ "/usr/local/include/fox-1.6",
+ "/sw/include/fox-1.6",
+ "/opt/local/include/fox-1.6"]
+ usrdirs = []
+ ARGV.each do |arg|
+ if arg =~ /--with-fox-include/
+ option, value = arg.split('=')
+ usrdirs = [ value ] + usrdirs
+ end
+ end
+ incdirs = usrdirs + stddirs
+ incdirs.uniq! # remove duplicates
+
+ incdirs.each do |incdir|
+ filename = File.join(incdir, "fxver.h")
+ if FileTest.exist?(filename)
+ idircflag = "-I" + incdir
+ $CPPFLAGS += " " + idircflag unless $CPPFLAGS.split.include?(idircflag)
+ return
+ end
+ end
+
+ # Couldn't find it; this should have been caught by the pre-config script
+ raise RuntimeError, "couldn't find FOX header files"
+end
+
+$autodetected_fxscintilla = false
+
+def find_installed_fxscintilla_version
+ stddirs = ["/usr/include/fxscintilla",
+ "/usr/local/include/fxscintilla",
+ "/sw/include/fxscintilla",
+ "/opt/local/include/fxscintilla"]
+ usrdirs = []
+ ARGV.each do |arg|
+ if arg =~ /--with-fxscintilla-include/
+ option, value = arg.split('=')
+ usrdirs = [ value ] + usrdirs
+ end
+ end
+ incdirs = usrdirs + stddirs
+ incdirs.uniq! # remove duplicates
+
+ incdirs.each do |incdir|
+ filename = File.join(incdir, "FXScintilla.h")
+ if FileTest.exist?(filename)
+ $autodetected_fxscintilla = true
+ idircflag = "-I" + incdir
+ $CPPFLAGS += " " + idircflag unless $CPPFLAGS.split.include?(idircflag)
+ return
+ end
+ end
+end
+
+def is_fxscintilla_build?
+ # No means no
+ return false if fxscintilla_support_suppressed?
+
+ # Check arguments
+ args = ARGV.delete_if { |e| !(e =~ /--with-fxscintilla/) }
+ (args.length > 0) || $autodetected_fxscintilla
+end
+
+def fxscintilla_support_suppressed?
+ ARGV.include? "--without-fxscintilla"
+end
+
+def do_cygwin_setup
+ extra_libs = %w{stdc++ glu32 opengl32 wsock32 comctl32 mpr gdi32 winspool}
+ extra_libs.each do |lib|
+ $libs = append_library($libs, lib)
+ end
+ have_header("sys/time.h")
+ have_header("signal.h")
+ if have_library("z", "deflate")
+ have_library("png", "png_create_read_struct")
+ end
+ have_library("jpeg", "jpeg_mem_init")
+ have_library("tiff", "TIFFSetErrorHandler")
+ $libs = append_library($libs, "FOX-1.6")
+ $CFLAGS = $CFLAGS + " -fpermissive -DWIN32 -Iinclude"
+ if is_fxscintilla_build?
+ FileUtils.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exist?('scintilla_wrap.cpp.bak')
+ $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA -DHAVE_FOX_1_6"
+ $libs = append_library($libs, "fxscintilla")
+ else
+ FileUtils.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exist?('scintilla_wrap.cpp')
+ end
+end
+
+def do_mswin32_setup
+ extra_libs = %w{glu32 opengl32 mpr wsock32 comctl32 winspool shell32 advapi32 shell32 gdi32 user32}
+ extra_libs.each do |lib|
+ $libs = append_library($libs, lib)
+ end
+ have_header("sys/time.h")
+ have_header("signal.h")
+ have_library("zlib", "deflate")
+ have_library("libpng", "png_create_read_struct")
+ have_library("libjpeg", "jpeg_mem_init")
+ have_library("libtiff", "TIFFSetErrorHandler")
+# $CFLAGS = $CFLAGS + " /DWIN32 /GR /GX /DFOXDLL /Iinclude"
+# $LOCAL_LIBS = $LOCAL_LIBS + "foxdll.lib"
+ $CFLAGS = $CFLAGS + " /DWIN32 /DUNICODE /GR /GX /Iinclude"
+ $LOCAL_LIBS = $LOCAL_LIBS + "FOX-1.6.lib"
+ if is_fxscintilla_build?
+ FileUtils.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exist?('scintilla_wrap.cpp.bak')
+ $CFLAGS = $CFLAGS + " /DWITH_FXSCINTILLA /DHAVE_FOX_1_6"
+ $libs = append_library($libs, "fxscintilla")
+ else
+ FileUtils.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exist?('scintilla_wrap.cpp')
+ end
+end
+
+def do_unix_setup
+ $libs = append_library($libs, "stdc++")
+# $libs = append_library($libs, "supc++")
+ have_header("sys/time.h")
+ have_header("signal.h")
+ have_library("png", "png_create_read_struct")
+ have_library("z", "deflate")
+ have_library("jpeg", "jpeg_mem_init")
+ have_library("tiff", "TIFFSetErrorHandler")
+ find_library("Xext", "XShmQueryVersion", "/usr/X11R6/lib")
+ find_library("X11", "XFindContext", "/usr/X11R6/lib")
+ find_library("GL", "glXCreateContext", "/usr/X11R6/lib")
+ find_library("GLU", "gluNewQuadric", "/usr/X11R6/lib")
+ $libs = append_library($libs, "FOX-1.6")
+ $libs = append_library($libs, "Xrandr")
+ $CFLAGS = $CFLAGS + " -O0 -Iinclude"
+ if is_fxscintilla_build?
+ FileUtils.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exist?('scintilla_wrap.cpp.bak')
+ $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA -DHAVE_FOX_1_6"
+ $libs = append_library($libs, "fxscintilla")
+ else
+ FileUtils.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exist?('scintilla_wrap.cpp')
+ end
+end
+
+def do_darwin_setup
+ $libs = append_library($libs, "stdc++")
+ have_header("sys/time.h")
+ have_header("signal.h")
+ have_library("png", "png_create_read_struct")
+ have_library("z", "deflate")
+ have_library("jpeg", "jpeg_mem_init")
+ have_library("tiff", "TIFFSetErrorHandler")
+ find_library("Xext", "XShmQueryVersion", "/usr/X11R6/lib")
+ find_library("X11", "XFindContext", "/usr/X11R6/lib")
+ find_library("GL", "glXCreateContext", "/usr/X11R6/lib")
+ find_library("GLU", "gluNewQuadric", "/usr/X11R6/lib")
+ $libs = append_library($libs, "FOX-1.6")
+ $libs = append_library($libs, "Xrandr")
+ $libs = append_library($libs, "Xcursor")
+ $libs = append_library($libs, "png")
+ $CFLAGS = $CFLAGS + " -O0 -Iinclude"
+ if is_fxscintilla_build?
+ FileUtils.move('scintilla_wrap.cpp.bak', 'scintilla_wrap.cpp') if FileTest.exist?('scintilla_wrap.cpp.bak')
+ $CFLAGS = $CFLAGS + " -DWITH_FXSCINTILLA -DHAVE_FOX_1_6"
+ $libs = append_library($libs, "fxscintilla")
+ else
+ FileUtils.move('scintilla_wrap.cpp', 'scintilla_wrap.cpp.bak') if FileTest.exist?('scintilla_wrap.cpp')
+ end
+end
+
+# This directive processes the "--with-fox-include" and "--with-fox-lib"
+# command line switches and modifies the CFLAGS and LDFLAGS accordingly.
+
+dir_config('fox', '/usr/local/include/fox-1.6', '/usr/local/lib')
+
+# This directive processes the "--with-fxscintilla-include" and
+# "--with-fxscintilla-lib" command line switches and modifies the CFLAGS
+# and LDFLAGS accordingly.
+
+dir_config('fxscintilla', '/usr/local/include/fxscintilla', '/usr/local/lib')
+
+find_installed_fox_version
+
+#
+# Check for FXScintilla header files, unless FXScintilla support has
+# been explicitly suppressed with the '--without-fxscintilla' flag.
+#
+
+unless fxscintilla_support_suppressed?
+ find_installed_fxscintilla_version
+end
+
+# Platform-specific modifications
+if RUBY_PLATFORM =~ /cygwin/ || RUBY_PLATFORM =~ /mingw/
+ do_cygwin_setup
+elsif RUBY_PLATFORM =~ /mswin32/
+ do_mswin32_setup
+elsif RUBY_PLATFORM =~ /darwin/
+ do_darwin_setup
+else
+ do_unix_setup
+end
+
+# Check for Ruby 1.9
+$CFLAGS += " -DRUBY_1_9" if RUBY_VERSION =~ /1\.9\./
+
+# Last step: build the makefile
+create_makefile("fox16")
--
GitLab