Newer
Older
Lyle Johnson
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/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 -I#{File.join(File.dirname(__FILE__), 'include')}"
Lyle Johnson
committed
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 /I#{File.join(File.dirname(__FILE__), 'include')}"
Lyle Johnson
committed
$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 -I#{File.join(File.dirname(__FILE__), 'include')}"
Lyle Johnson
committed
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 -I#{File.join(File.dirname(__FILE__), 'include')}"
Lyle Johnson
committed
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
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")