Skip to content
Snippets Groups Projects
Commit 7ee770ec authored by Lyle Johnson's avatar Lyle Johnson
Browse files

Merged latest changes for topic/rake-compiler branch

parents f2221565 10461c8f
No related branches found
No related tags found
No related merge requests found
......@@ -82,18 +82,6 @@ task :setversions => [ :create_installer_scripts ] do
setversions("scripts/make-installers.rb")
end
# Set environment variable SWIG_LIB to
# c:/ruby-1.8.6-p383-preview2/devkit/msys/1.0.11/usr/local/share/swig/1.3.22
# before running swig on MinGW.
desc "Run SWIG to generate the wrapper files."
task :swig do
Dir.chdir "swig-interfaces" do
system %{touch dependencies}
system %{make depend}
system %{make}
end
end
DISTFILES = [
"ANNOUNCE",
"LICENSE",
......@@ -229,4 +217,94 @@ Rake::ExtensionTask.new("fox16") do |ext|
ext.config_options << "--with-fox-lib=c:/ruby-1.8.6-p383-preview2/devkit/msys/1.0.11/usr/local/lib"
end
# Set environment variable SWIG_LIB to
# c:/ruby-1.8.6-p383-preview2/devkit/msys/1.0.11/usr/local/share/swig/1.3.22
# before running swig on MinGW.
namespace :swig do
SWIG = "/usr/local/bin/swig"
SWIGFLAGS = "-fcompact -noruntime -c++ -ruby -no_default -I../fox-includes"
SWIG_LIB = `#{SWIG} -swiglib`.chomp
SWIG_MODULES = {
"core.i" => "core_wrap.cpp",
"dcmodule.i" => "dc_wrap.cpp",
"dialogs.i" => "dialogs_wrap.cpp",
"framesmodule.i" => "frames_wrap.cpp",
"iconlistmodule.i" => "iconlist_wrap.cpp",
"icons.i" => "icons_wrap.cpp",
"image.i" => "image_wrap.cpp",
"labelmodule.i" => "label_wrap.cpp",
"layout.i" => "layout_wrap.cpp",
"listmodule.i" => "list_wrap.cpp",
"mdi.i" => "mdi_wrap.cpp",
"menumodule.i" => "menu_wrap.cpp",
"fx3d.i" => "fx3d_wrap.cpp",
"scintilla.i" => "scintilla_wrap.cpp",
"table-module.i" => "table_wrap.cpp",
"text-module.i" => "text_wrap.cpp",
"treelist-module.i" => "treelist_wrap.cpp",
"ui.i" => "ui_wrap.cpp"
}
def wrapper_src_file_path(wrapper_src_file_name)
File.join("..", "ext", "fox16", wrapper_src_file_name)
end
def swig_generate_dependencies(swig_interface_file_name, wrapper_src_file_name)
system "#{SWIG} #{SWIGFLAGS} -MM -o #{wrapper_src_file_path(wrapper_src_file_name)} #{swig_interface_file_name} >> dependencies"
end
def sed(wrapper_src_file_name)
results = []
IO.readlines(wrapper_src_file_name).each do |line|
line.gsub!(/static VALUE mCore;/, "VALUE mCore;")
line.gsub!(/mCore = rb_define_module\("Core"\)/, "mFox = rb_define_module(\"Fox\")")
line.gsub!(/mCore/, "mFox")
next if line =~ /static VALUE m(Dc|Dialogs|Frames|Iconlist|Icons|Image|Label|Layout|List|Mdi|Menu|Fx3d|Scintilla|Table|Text|Treelist|Ui);/
next if line =~ /m(Dc|Dialogs|Frames|Iconlist|Icons|Image|Label|Layout|List|Mdi|Menu|Fx3d|Scintilla|Table|Text|Treelist|Ui) = rb_define_module/
next if line =~ /rb_require/
line.gsub!(/m(Dc|Dialogs|Frames|Iconlist|Icons|Image|Label|Layout|List|Mdi|Menu|Fx3d|Scintilla|Table|Text|Treelist|Ui),/, "mFox,")
results << line
end
File.open(wrapper_src_file_name, "w") do |io|
io.write(results.join)
end
end
def swig(swig_interface_file_name, wrapper_src_file_name)
system "#{SWIG} #{SWIGFLAGS} -o #{wrapper_src_file_path(wrapper_src_file_name)} #{swig_interface_file_name}"
sed wrapper_src_file_path(wrapper_src_file_name)
end
task :swig_dependencies do
Dir.chdir "swig-interfaces" do
FileUtils.rm_f "dependencies"
FileUtils.touch "dependencies"
SWIG_MODULES.each do |key, value|
swig_generate_dependencies(key, value)
end
end
end
task :swig_librb do
Dir.chdir "swig-interfaces" do
File.open(wrapper_src_file_path("librb.c"), "w") do |io|
io.puts "#define SWIG_GLOBAL 1"
io.write(IO.read(File.join(SWIG_LIB, "ruby", "precommon.swg")))
io.write(IO.read(File.join(SWIG_LIB, "common.swg")))
io.write(IO.read(File.join(SWIG_LIB, "ruby", "rubyhead.swg")))
io.write(IO.read(File.join(SWIG_LIB, "ruby", "rubydef.swg")))
end
end
end
desc "Run SWIG to generate the wrapper files."
task :swig => [:swig_dependencies, :swig_librb] do
Dir.chdir "swig-interfaces" do
SWIG_MODULES.each do |key, value|
swig(key, value)
end
end
end
end
task :build => [:configure, :compile]
#
# This makefile is used to generate the wrapper code from the
# SWIG interface files.
#
# $Id: Makefile 2827 2008-03-28 16:04:44Z lyle $
#
.PHONY: clean
SWIG = /usr/local/bin/swig
SWIGFLAGS = -fcompact -noruntime -c++ -ruby -no_default -I../fox-includes
SRCDIR = ../ext/fox16
SED = sed -f swig.sed
RUBY = ruby
SWIGLIB := $(shell /usr/local/bin/swig -swiglib)
MODULES = \
$(SRCDIR)/core_wrap.cpp \
$(SRCDIR)/dc_wrap.cpp \
$(SRCDIR)/dialogs_wrap.cpp \
$(SRCDIR)/frames_wrap.cpp \
$(SRCDIR)/iconlist_wrap.cpp \
$(SRCDIR)/icons_wrap.cpp \
$(SRCDIR)/image_wrap.cpp \
$(SRCDIR)/label_wrap.cpp \
$(SRCDIR)/layout_wrap.cpp \
$(SRCDIR)/list_wrap.cpp \
$(SRCDIR)/mdi_wrap.cpp \
$(SRCDIR)/menu_wrap.cpp \
$(SRCDIR)/fx3d_wrap.cpp \
$(SRCDIR)/scintilla_wrap.cpp \
$(SRCDIR)/table_wrap.cpp \
$(SRCDIR)/text_wrap.cpp \
$(SRCDIR)/treelist_wrap.cpp \
$(SRCDIR)/ui_wrap.cpp
all: $(SRCDIR)/librb.c $(MODULES)
$(SRCDIR)/core_wrap.cpp: core.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/core_wrap.cpp core.i
$(SED) $(SRCDIR)/core_wrap.cpp > junk; mv junk $(SRCDIR)/core_wrap.cpp
$(SRCDIR)/dc_wrap.cpp: dcmodule.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/dc_wrap.cpp dcmodule.i
$(SED) $(SRCDIR)/dc_wrap.cpp > junk; mv junk $(SRCDIR)/dc_wrap.cpp
$(SRCDIR)/dialogs_wrap.cpp: dialogs.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/dialogs_wrap.cpp dialogs.i
$(SED) $(SRCDIR)/dialogs_wrap.cpp > junk; mv junk $(SRCDIR)/dialogs_wrap.cpp
$(SRCDIR)/frames_wrap.cpp: framesmodule.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/frames_wrap.cpp framesmodule.i
$(SED) $(SRCDIR)/frames_wrap.cpp > junk; mv junk $(SRCDIR)/frames_wrap.cpp
$(SRCDIR)/iconlist_wrap.cpp: iconlistmodule.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/iconlist_wrap.cpp iconlistmodule.i
$(SED) $(SRCDIR)/iconlist_wrap.cpp > junk; mv junk $(SRCDIR)/iconlist_wrap.cpp
$(SRCDIR)/icons_wrap.cpp: icons.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/icons_wrap.cpp icons.i
$(SED) $(SRCDIR)/icons_wrap.cpp > junk; mv junk $(SRCDIR)/icons_wrap.cpp
$(SRCDIR)/image_wrap.cpp: image.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/image_wrap.cpp image.i
$(SED) $(SRCDIR)/image_wrap.cpp > junk; mv junk $(SRCDIR)/image_wrap.cpp
$(SRCDIR)/label_wrap.cpp: labelmodule.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/label_wrap.cpp labelmodule.i
$(SED) $(SRCDIR)/label_wrap.cpp > junk; mv junk $(SRCDIR)/label_wrap.cpp
$(SRCDIR)/layout_wrap.cpp: layout.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/layout_wrap.cpp layout.i
$(SED) $(SRCDIR)/layout_wrap.cpp > junk; mv junk $(SRCDIR)/layout_wrap.cpp
$(SRCDIR)/list_wrap.cpp: listmodule.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/list_wrap.cpp listmodule.i
$(SED) $(SRCDIR)/list_wrap.cpp > junk; mv junk $(SRCDIR)/list_wrap.cpp
$(SRCDIR)/mdi_wrap.cpp: mdi.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/mdi_wrap.cpp mdi.i
$(SED) $(SRCDIR)/mdi_wrap.cpp > junk; mv junk $(SRCDIR)/mdi_wrap.cpp
$(SRCDIR)/menu_wrap.cpp: menumodule.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/menu_wrap.cpp menumodule.i
$(SED) $(SRCDIR)/menu_wrap.cpp > junk; mv junk $(SRCDIR)/menu_wrap.cpp
$(SRCDIR)/fx3d_wrap.cpp: fx3d.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/fx3d_wrap.cpp fx3d.i
$(SED) $(SRCDIR)/fx3d_wrap.cpp > junk; mv junk $(SRCDIR)/fx3d_wrap.cpp
$(SRCDIR)/scintilla_wrap.cpp: scintilla.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/scintilla_wrap.cpp scintilla.i
$(SED) $(SRCDIR)/scintilla_wrap.cpp > junk; mv junk $(SRCDIR)/scintilla_wrap.cpp
$(SRCDIR)/table_wrap.cpp: table-module.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/table_wrap.cpp table-module.i
$(SED) $(SRCDIR)/table_wrap.cpp > junk; mv junk $(SRCDIR)/table_wrap.cpp
$(SRCDIR)/text_wrap.cpp: text-module.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/text_wrap.cpp text-module.i
$(SED) $(SRCDIR)/text_wrap.cpp > junk; mv junk $(SRCDIR)/text_wrap.cpp
$(SRCDIR)/treelist_wrap.cpp: treelist-module.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/treelist_wrap.cpp treelist-module.i
$(SED) $(SRCDIR)/treelist_wrap.cpp > junk; mv junk $(SRCDIR)/treelist_wrap.cpp
$(SRCDIR)/ui_wrap.cpp: ui.i
$(SWIG) $(SWIGFLAGS) -o $(SRCDIR)/ui_wrap.cpp ui.i
$(SED) $(SRCDIR)/ui_wrap.cpp > junk; mv junk $(SRCDIR)/ui_wrap.cpp
$(SRCDIR)/librb.c: $(SWIGLIB)/ruby/precommon.swg $(SWIGLIB)/common.swg $(SWIGLIB)/ruby/rubyhead.swg $(SWIGLIB)/ruby/rubydef.swg
@echo "#define SWIG_GLOBAL 1" > $(SRCDIR)/librb.c
@cat $(SWIGLIB)/ruby/precommon.swg $(SWIGLIB)/common.swg $(SWIGLIB)/ruby/rubyhead.swg $(SWIGLIB)/ruby/rubydef.swg >> $(SRCDIR)/librb.c
clean:
@rm -f $(SRCDIR)/librb.c $(MODULES)
depend:
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/core_wrap.cpp core.i > dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/dc_wrap.cpp dcmodule.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/dialogs_wrap.cpp dialogs.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/frames_wrap.cpp framesmodule.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/iconlist_wrap.cpp iconlistmodule.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/icons_wrap.cpp icons.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/image_wrap.cpp image.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/label_wrap.cpp labelmodule.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/layout_wrap.cpp layout.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/list_wrap.cpp listmodule.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/mdi_wrap.cpp mdi.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/menu_wrap.cpp menumodule.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/fx3d_wrap.cpp fx3d.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/scintilla_wrap.cpp scintilla.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/table_wrap.cpp table-module.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/text_wrap.cpp text-module.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/treelist_wrap.cpp treelist-module.i >> dependencies
$(SWIG) $(SWIGFLAGS) -MM -o $(SRCDIR)/ui_wrap.cpp ui.i >> dependencies
include dependencies
s/static VALUE mCore;/VALUE mCore;/
s/mCore = rb_define_module("Core")/mFox = rb_define_module("Fox")/
s/mCore/mFox/
/static VALUE mDc;/d
/mDc = rb_define_module/d
/static VALUE mDialogs;/d
/mDialogs = rb_define_module/d
/static VALUE mFrames;/d
/mFrames = rb_define_module/d
/static VALUE mIconlist;/d
/mIconlist = rb_define_module/d
/static VALUE mIcons;/d
/mIcons = rb_define_module/d
/static VALUE mImage;/d
/mImage = rb_define_module/d
/static VALUE mLabel;/d
/mLabel = rb_define_module/d
/static VALUE mLayout;/d
/mLayout = rb_define_module/d
/static VALUE mList;/d
/mList = rb_define_module/d
/static VALUE mMdi;/d
/mMdi = rb_define_module/d
/static VALUE mMenu;/d
/mMenu = rb_define_module/d
/static VALUE mFx3d;/d
/mFx3d = rb_define_module/d
/static VALUE mScintilla;/d
/mScintilla = rb_define_module/d
/static VALUE mTable;/d
/mTable = rb_define_module/d
/static VALUE mText;/d
/mText = rb_define_module/d
/static VALUE mTreelist;/d
/mTreelist = rb_define_module/d
/static VALUE mUi;/d
/mUi = rb_define_module/d
/rb_require/d
s/mDc,/mFox,/
s/mDialogs,/mFox,/
s/mFrames,/mFox,/
s/mIconlist,/mFox,/
s/mIcons,/mFox,/
s/mImage,/mFox,/
s/mLabel,/mFox,/
s/mLayout,/mFox,/
s/mList,/mFox,/
s/mMdi,/mFox,/
s/mMenu,/mFox,/
s/mFx3d,/mFox,/
s/mScintilla,/mFox,/
s/mTable,/mFox,/
s/mText,/mFox,/
s/mTreelist,/mFox,/
s/mUi,/mFox,/
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment