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