shoes 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +12 -0
- data/CHANGELOG +29 -0
- data/COPYING +30 -0
- data/README.md +76 -0
- data/README.old +117 -0
- data/Rakefile +130 -0
- data/Rakefile.bk +651 -0
- data/app.yaml +7 -0
- data/bin/main.skel +104 -0
- data/bugs/issue-012e9468ddc7b0cb7e1503413a8a11c4f8707b67.yaml +21 -0
- data/bugs/issue-0711ff8b67baa63586f11d0096fee9dd4436bf58.yaml +23 -0
- data/bugs/issue-07f87998d93eb401e22395c11085676389b935c4.yaml +22 -0
- data/bugs/issue-0bff2d80008803cbc7efbcdacdc60ef2163664d2.yaml +22 -0
- data/bugs/issue-0c66f223d19efbca7b692f3b91961f407ad7abec.yaml +24 -0
- data/bugs/issue-183bc3c7a8f575aff2b24e0bf22aa0dfcc8e4fc2.yaml +29 -0
- data/bugs/issue-1bad1e60a04cb3adb6a8f3ded128af2e16b56ffe.yaml +18 -0
- data/bugs/issue-1f1d43f76bf4de79d7f94adbae6dd506a9d81633.yaml +41 -0
- data/bugs/issue-320924117cadb045cc91f2a6fca922b4d81d4bb5.yaml +20 -0
- data/bugs/issue-33e5c8355fbf65252ea9e939714651df8bd8cb3b.yaml +25 -0
- data/bugs/issue-36f7c8262a72bcd5e28cfa4ed29328b8237ea79b.yaml +20 -0
- data/bugs/issue-39bf04ee50c3bef67b89b8e9beb28657805587ce.yaml +18 -0
- data/bugs/issue-3e28ba7754f73d02ef416eef989af707a8c00f01.yaml +23 -0
- data/bugs/issue-3f638cc03f41f9c3fdf217355321f1563f8fee45.yaml +22 -0
- data/bugs/issue-41e48e14f1ef4f6deb69be68165d7dd3ffd99156.yaml +22 -0
- data/bugs/issue-4c9408166a2aa5dd333bbb05520deebf4ded08e0.yaml +22 -0
- data/bugs/issue-55c687e108ecd5aeb8e0d0aeb4294984f84acd3e.yaml +18 -0
- data/bugs/issue-5811d34692cc292717a58ec1df1f8948cf30d826.yaml +28 -0
- data/bugs/issue-5a7c1f59a0526f9cea7fb366867cf1e6ed8ef69d.yaml +22 -0
- data/bugs/issue-688a2c2566bef6a03efa57a4ae1f7cfa8fc74444.yaml +21 -0
- data/bugs/issue-78b16c7988ade2ef96e716fa8cb9a004bd4ced65.yaml +33 -0
- data/bugs/issue-804ee49f9800154eddf0650690c7a9bb5626253f.yaml +27 -0
- data/bugs/issue-807dd1c610b2e941a5d454e26b2eac27e89a0ab4.yaml +22 -0
- data/bugs/issue-822ee33ec11ebd25f90ea86e8438de7891e63aee.yaml +18 -0
- data/bugs/issue-82ff7152cebb8a1cb065b864cb4fe22de2328146.yaml +29 -0
- data/bugs/issue-856afbdcdd4970ad54b8ce4a6c017fbaab45f49d.yaml +31 -0
- data/bugs/issue-8d49e32fb21522651c67490adb4d80076dbb14e1.yaml +24 -0
- data/bugs/issue-91583359653a9d530c1e32be72d874d847a306e7.yaml +21 -0
- data/bugs/issue-af41a5229613172764e7d3c98431172db337053d.yaml +20 -0
- data/bugs/issue-bd9856b3788dd429c998a5af1b2aae8221cb80b7.yaml +28 -0
- data/bugs/issue-be22aef5c564fb7b5e9938343136a9cd6a2edb7b.yaml +22 -0
- data/bugs/issue-bf8697523c77c326e7e35fc82cf3dd739ae92310.yaml +27 -0
- data/bugs/issue-cdd4b4795f34d6ff46e56ece10f8216a4a5456b2.yaml +25 -0
- data/bugs/issue-d9bfb5581d745ef9deb3b9b2e08ef74d1cd43082.yaml +20 -0
- data/bugs/issue-e0ce2f687cc096f35715d28b0af88589f4ab6cc6.yaml +18 -0
- data/bugs/issue-e4b0aca4a10a574b333aeaecaaf221dbc5ed22c6.yaml +38 -0
- data/bugs/issue-f263746594b95ba778455730478ee8df60ee639d.yaml +22 -0
- data/bugs/project.yaml +72 -0
- data/builddeps.sh +102 -0
- data/fonts/Coolvetica.ttf +0 -0
- data/fonts/Lacuna.ttf +0 -0
- data/gemlib/shoes.rb +1 -0
- data/lib/shoes.rb +548 -0
- data/lib/shoes/cache.rb +54 -0
- data/lib/shoes/chipmunk.rb +35 -0
- data/lib/shoes/data.rb +39 -0
- data/lib/shoes/help.rb +468 -0
- data/lib/shoes/image.rb +25 -0
- data/lib/shoes/inspect.rb +128 -0
- data/lib/shoes/log.rb +48 -0
- data/lib/shoes/minitar.rb +986 -0
- data/lib/shoes/override.rb +38 -0
- data/lib/shoes/pack.rb +543 -0
- data/lib/shoes/search.rb +46 -0
- data/lib/shoes/setup.rb +329 -0
- data/lib/shoes/shy.rb +131 -0
- data/lib/shoes/shybuilder.rb +44 -0
- data/lib/shoes/version.rb +3 -0
- data/make/darwin/deps.vlc +12 -0
- data/make/darwin/dylibs.shoes +22 -0
- data/make/darwin/dylibs.video +11 -0
- data/make/darwin/env.rb +81 -0
- data/make/darwin/tasks.rb +105 -0
- data/make/linux/env.rb +65 -0
- data/make/linux/tasks.rb +61 -0
- data/make/make.rb +85 -0
- data/make/mingw/dlls +19 -0
- data/make/mingw/env.rb +69 -0
- data/make/mingw/tasks.rb +70 -0
- data/make/rakefile_common.rb +8 -0
- data/manual-snapshots/class-book.png +0 -0
- data/manual-snapshots/expert-definr.png +0 -0
- data/manual-snapshots/expert-funnies.png +0 -0
- data/manual-snapshots/expert-irb.png +0 -0
- data/manual-snapshots/expert-minesweeper.png +0 -0
- data/manual-snapshots/expert-othello.png +0 -0
- data/manual-snapshots/expert-pong.png +0 -0
- data/manual-snapshots/expert-tankspank.png +0 -0
- data/manual-snapshots/good-arc.png +0 -0
- data/manual-snapshots/good-clock.png +0 -0
- data/manual-snapshots/good-follow.png +0 -0
- data/manual-snapshots/good-reminder.png +0 -0
- data/manual-snapshots/good-vjot.png +0 -0
- data/manual-snapshots/simple-accordion.png +0 -0
- data/manual-snapshots/simple-anim-shapes.png +0 -0
- data/manual-snapshots/simple-anim-text.png +0 -0
- data/manual-snapshots/simple-arc.png +0 -0
- data/manual-snapshots/simple-bounce.png +0 -0
- data/manual-snapshots/simple-calc.png +0 -0
- data/manual-snapshots/simple-chipmunk.png +0 -0
- data/manual-snapshots/simple-control-sizes.png +0 -0
- data/manual-snapshots/simple-curve.png +0 -0
- data/manual-snapshots/simple-dialogs.png +0 -0
- data/manual-snapshots/simple-downloader.png +0 -0
- data/manual-snapshots/simple-draw.png +0 -0
- data/manual-snapshots/simple-editor.png +0 -0
- data/manual-snapshots/simple-form.png +0 -0
- data/manual-snapshots/simple-mask.png +0 -0
- data/manual-snapshots/simple-menu.png +0 -0
- data/manual-snapshots/simple-menu1.png +0 -0
- data/manual-snapshots/simple-rubygems.png +0 -0
- data/manual-snapshots/simple-slide.png +0 -0
- data/manual-snapshots/simple-sphere.png +0 -0
- data/manual-snapshots/simple-sqlite3.png +0 -0
- data/manual-snapshots/simple-timer.png +0 -0
- data/manual-snapshots/simple-video.png +0 -0
- data/platform/mac/Info.plist +55 -0
- data/platform/mac/build-deps.sh +658 -0
- data/platform/mac/command-manual.rb +1 -0
- data/platform/mac/deps-osx.patch +159 -0
- data/platform/mac/dmg_ds_store +0 -0
- data/platform/mac/pangorc +2 -0
- data/platform/mac/pkg-dmg +1447 -0
- data/platform/mac/shoes +31 -0
- data/platform/mac/shoes-launch +7 -0
- data/platform/mac/stub.m +178 -0
- data/platform/mac/version.plist +14 -0
- data/platform/msw/base.nsi +644 -0
- data/platform/msw/installer-1.bmp +0 -0
- data/platform/msw/installer-2.bmp +0 -0
- data/platform/msw/shoes.exe.manifest +17 -0
- data/platform/msw/shoes.ico +0 -0
- data/platform/msw/stub-inject.c +59 -0
- data/platform/msw/stub.c +271 -0
- data/platform/msw/stub32.h +14 -0
- data/platform/msw/stub32.rc +16 -0
- data/platform/nix/INSTALL +56 -0
- data/platform/nix/Makefile +144 -0
- data/platform/nix/shoes.launch +20 -0
- data/platform/skel.rb +27 -0
- data/rakefile_darwin.rb +7 -0
- data/rakefile_linux.rb +3 -0
- data/rakefile_mingw.rb +7 -0
- data/samples/class-book.rb +43 -0
- data/samples/class-book.yaml +387 -0
- data/samples/expert-definr.rb +23 -0
- data/samples/expert-funnies.rb +51 -0
- data/samples/expert-irb.rb +112 -0
- data/samples/expert-minesweeper.rb +267 -0
- data/samples/expert-othello.rb +319 -0
- data/samples/expert-pong.rb +62 -0
- data/samples/expert-tankspank.rb +385 -0
- data/samples/good-arc.rb +37 -0
- data/samples/good-clock.rb +51 -0
- data/samples/good-follow.rb +26 -0
- data/samples/good-reminder.rb +174 -0
- data/samples/good-vjot.rb +56 -0
- data/samples/simple-accordion.rb +75 -0
- data/samples/simple-anim-shapes.rb +17 -0
- data/samples/simple-anim-text.rb +13 -0
- data/samples/simple-arc.rb +23 -0
- data/samples/simple-bounce.rb +24 -0
- data/samples/simple-calc.rb +70 -0
- data/samples/simple-chipmunk.rb +26 -0
- data/samples/simple-control-sizes.rb +24 -0
- data/samples/simple-curve.rb +26 -0
- data/samples/simple-dialogs.rb +29 -0
- data/samples/simple-downloader.rb +27 -0
- data/samples/simple-draw.rb +13 -0
- data/samples/simple-editor.rb +28 -0
- data/samples/simple-form.rb +28 -0
- data/samples/simple-form.shy +0 -0
- data/samples/simple-mask.rb +21 -0
- data/samples/simple-menu.rb +31 -0
- data/samples/simple-menu1.rb +35 -0
- data/samples/simple-rubygems.rb +29 -0
- data/samples/simple-slide.rb +45 -0
- data/samples/simple-sphere.rb +28 -0
- data/samples/simple-sqlite3.rb +13 -0
- data/samples/simple-timer.rb +13 -0
- data/samples/simple-video.rb +13 -0
- data/shoes.gemspec +21 -0
- data/shoes/app.c +591 -0
- data/shoes/app.h +110 -0
- data/shoes/appwin32.h +13 -0
- data/shoes/appwin32.rc +28 -0
- data/shoes/canvas.c +2202 -0
- data/shoes/canvas.h +682 -0
- data/shoes/code.h +14 -0
- data/shoes/config.h +232 -0
- data/shoes/effects.c +243 -0
- data/shoes/effects.h +7 -0
- data/shoes/http.h +44 -0
- data/shoes/http/common.h +86 -0
- data/shoes/http/curl.c +259 -0
- data/shoes/http/nsurl.m +274 -0
- data/shoes/http/windownload.c +114 -0
- data/shoes/http/winhttp.c +216 -0
- data/shoes/http/winhttp.h +19 -0
- data/shoes/image.c +1020 -0
- data/shoes/internal.c +46 -0
- data/shoes/internal.h +63 -0
- data/shoes/native.h +110 -0
- data/shoes/native/cocoa.h +105 -0
- data/shoes/native/cocoa.m +1557 -0
- data/shoes/native/gtk.c +1257 -0
- data/shoes/native/windows.c +2392 -0
- data/shoes/ruby.c +5221 -0
- data/shoes/ruby.h +299 -0
- data/shoes/world.c +243 -0
- data/shoes/world.h +63 -0
- data/static/Shoes.icns +0 -0
- data/static/avatar.png +0 -0
- data/static/code_highlighter.js +188 -0
- data/static/code_highlighter_ruby.js +26 -0
- data/static/icon-debug.png +0 -0
- data/static/icon-error.png +0 -0
- data/static/icon-info.png +0 -0
- data/static/icon-warn.png +0 -0
- data/static/listbox_button1.png +0 -0
- data/static/listbox_button2.png +0 -0
- data/static/man-app.png +0 -0
- data/static/man-builds.png +0 -0
- data/static/man-builds1.png +0 -0
- data/static/man-editor-notepad.png +0 -0
- data/static/man-editor-osx.png +0 -0
- data/static/man-ele-background.png +0 -0
- data/static/man-ele-border.png +0 -0
- data/static/man-ele-button.png +0 -0
- data/static/man-ele-check.png +0 -0
- data/static/man-ele-editbox.png +0 -0
- data/static/man-ele-editline.png +0 -0
- data/static/man-ele-image.png +0 -0
- data/static/man-ele-listbox.png +0 -0
- data/static/man-ele-progress.png +0 -0
- data/static/man-ele-radio.png +0 -0
- data/static/man-ele-shape.png +0 -0
- data/static/man-ele-textblock.png +0 -0
- data/static/man-ele-video.png +0 -0
- data/static/man-intro-dmg.png +0 -0
- data/static/man-intro-exe.png +0 -0
- data/static/man-look-tiger.png +0 -0
- data/static/man-look-ubuntu.png +0 -0
- data/static/man-look-vista.png +0 -0
- data/static/man-run-osx.png +0 -0
- data/static/man-run-vista.png +0 -0
- data/static/man-run-xp.png +0 -0
- data/static/man-shot1.png +0 -0
- data/static/manual-en.txt +3531 -0
- data/static/manual-ja.txt +2825 -0
- data/static/manual.css +167 -0
- data/static/menu-corner1.png +0 -0
- data/static/menu-corner2.png +0 -0
- data/static/menu-gray.png +0 -0
- data/static/menu-left.png +0 -0
- data/static/menu-right.png +0 -0
- data/static/menu-top.png +0 -0
- data/static/shoes-dmg.jpg +0 -0
- data/static/shoes-icon-blue.png +0 -0
- data/static/shoes-icon.png +0 -0
- data/static/shoes-manual-apps.gif +0 -0
- data/static/shoes_main_window.png +0 -0
- data/static/stripe.png +0 -0
- data/static/stubs/blank.exe +0 -0
- data/static/stubs/blank.hfz +0 -0
- data/static/stubs/blank.run +375 -0
- data/static/stubs/cocoa-install +0 -0
- data/static/stubs/sh-install +49 -0
- data/static/stubs/shoes-stub-inject.exe +0 -0
- data/static/stubs/shoes-stub.exe +0 -0
- data/static/tutor-back.png +0 -0
- data/test/shoes_test.rb +8 -0
- data/test/test_helper.rb +25 -0
- data/use-deps +12 -0
- data/use-tmp-dep +8 -0
- metadata +509 -0
data/make/mingw/dlls
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
libungif4
|
2
|
+
libjpeg-8
|
3
|
+
libcairo-2
|
4
|
+
libglib-2.0-0
|
5
|
+
libgobject-2.0-0
|
6
|
+
libpango-1.0-0
|
7
|
+
libpangoft2-1.0-0
|
8
|
+
libgio-2.0-0
|
9
|
+
libgthread-2.0-0
|
10
|
+
libgmodule-2.0-0
|
11
|
+
libpangocairo-1.0-0
|
12
|
+
libpangowin32-1.0-0
|
13
|
+
libportaudio-2
|
14
|
+
sqlite3
|
15
|
+
libssl32
|
16
|
+
libeay32
|
17
|
+
zlib1
|
18
|
+
readline5
|
19
|
+
libiconv2
|
data/make/mingw/env.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
require File.expand_path('make/make')
|
2
|
+
extend Make
|
3
|
+
|
4
|
+
EXT_RUBY = "../mingw"
|
5
|
+
|
6
|
+
# TODO: We really shouldn't perform actions just by including a file
|
7
|
+
if ENV['VIDEO']
|
8
|
+
rm_rf "dist"
|
9
|
+
mkdir_p 'dist'
|
10
|
+
vlc_deps = '../deps_vlc_0.8'
|
11
|
+
copy_files vlc_deps + '/bin/plugins', 'dist'
|
12
|
+
cp_r vlc_deps + '/bin/libvlc.dll', EXT_RUBY + '/bin'
|
13
|
+
copy_files vlc_deps + '/include/vlc', EXT_RUBY + '/include'
|
14
|
+
copy_files vlc_deps + '/lib', EXT_RUBY
|
15
|
+
end
|
16
|
+
|
17
|
+
# use the platform Ruby claims
|
18
|
+
require 'rbconfig'
|
19
|
+
|
20
|
+
CC = ENV['CC'] ? ENV['CC'] : "gcc"
|
21
|
+
file_list = ["shoes/*.c"] + %w{shoes/native/windows.c shoes/http/winhttp.c shoes/http/windownload.c}
|
22
|
+
|
23
|
+
SRC = FileList[*file_list]
|
24
|
+
OBJ = SRC.map do |x|
|
25
|
+
x.gsub(/\.\w+$/, '.o')
|
26
|
+
end
|
27
|
+
|
28
|
+
ADD_DLL = ["shoes/appwin32.o"]
|
29
|
+
|
30
|
+
# Linux build environment
|
31
|
+
CAIRO_CFLAGS = '-I/mingw/include/glib-2.0 -I/mingw/lib/glib-2.0/include -I/mingw/include/cairo'
|
32
|
+
CAIRO_LIB = '-lcairo'
|
33
|
+
PANGO_CFLAGS = '-I/mingw/include/pango-1.0'
|
34
|
+
PANGO_LIB = '-lpangocairo-1.0 -lpango-1.0 -lpangoft2-1.0 -lpangowin32-1.0'
|
35
|
+
if ENV['VIDEO']
|
36
|
+
VLC_CFLAGS = '-I/mingw/include/vlc'
|
37
|
+
VLC_LIB = '-llibvlc'
|
38
|
+
else
|
39
|
+
VLC_CFLAGS = VLC_LIB = ''
|
40
|
+
end
|
41
|
+
|
42
|
+
LINUX_CFLAGS = %[-Wall -I#{ENV['SHOES_DEPS_PATH'] || "/usr"}/include #{CAIRO_CFLAGS} #{PANGO_CFLAGS} #{VLC_CFLAGS} -I#{Config::CONFIG['archdir']}]
|
43
|
+
if Config::CONFIG['rubyhdrdir']
|
44
|
+
LINUX_CFLAGS << " -I#{Config::CONFIG['rubyhdrdir']} -I#{Config::CONFIG['rubyhdrdir']}/#{RUBY_PLATFORM}"
|
45
|
+
end
|
46
|
+
LINUX_LIB_NAMES = %W[#{RUBY_SO} cairo pangocairo-1.0 ungif]
|
47
|
+
|
48
|
+
FLAGS.each do |flag|
|
49
|
+
LINUX_CFLAGS << " -D#{flag}" if ENV[flag]
|
50
|
+
end
|
51
|
+
if ENV['DEBUG']
|
52
|
+
LINUX_CFLAGS << " -g -O0 "
|
53
|
+
else
|
54
|
+
LINUX_CFLAGS << " -O "
|
55
|
+
end
|
56
|
+
LINUX_CFLAGS << " -DRUBY_1_9" if RUBY_1_9
|
57
|
+
|
58
|
+
DLEXT = 'dll'
|
59
|
+
LINUX_CFLAGS << ' -I. -I/mingw/include'
|
60
|
+
LINUX_CFLAGS << ' -I/mingw/include/ruby-1.9.1/ruby' if RUBY_1_9
|
61
|
+
LINUX_CFLAGS << " -DXMD_H -DHAVE_BOOLEAN -DSHOES_WIN32 -D_WIN32_IE=0x0500 -D_WIN32_WINNT=0x0500 -DWINVER=0x0500 -DCOBJMACROS"
|
62
|
+
LINUX_LDFLAGS = " -DBUILD_DLL -lungif -ljpeg -lglib-2.0 -lgobject-2.0 -lgio-2.0 -lgmodule-2.0 -lgthread-2.0 -fPIC -shared"
|
63
|
+
LINUX_LDFLAGS << ' -lshell32 -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lcomctl32 -lole32 -loleaut32 -ladvapi32 -loleacc -lwinhttp'
|
64
|
+
LINUX_CFLAGS << " -DVLC_0_8" if ENV['VIDEO'] and VLC_0_8
|
65
|
+
cp APP['icons']['win32'], "shoes/appwin32.ico"
|
66
|
+
|
67
|
+
LINUX_LIBS = LINUX_LIB_NAMES.map { |x| "-l#{x}" }.join(' ')
|
68
|
+
|
69
|
+
LINUX_LIBS << " -L#{Config::CONFIG['libdir']} #{CAIRO_LIB} #{PANGO_LIB} #{VLC_LIB}"
|
data/make/mingw/tasks.rb
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
require File.expand_path('make/make')
|
2
|
+
|
3
|
+
include FileUtils
|
4
|
+
|
5
|
+
class MakeMinGW
|
6
|
+
extend Make
|
7
|
+
|
8
|
+
class << self
|
9
|
+
# Execute shell calls through bash if we are compiling with mingw. This breaks us
|
10
|
+
# out of the windows command shell if we are compiling from there.
|
11
|
+
def sh(*args)
|
12
|
+
cmd = args.join(' ')
|
13
|
+
super "bash.exe --login -i -c \"#{cmd}\""
|
14
|
+
end
|
15
|
+
|
16
|
+
def copy_ext xdir, libdir
|
17
|
+
Dir.chdir(xdir) do
|
18
|
+
sh 'ruby extconf.rb; make'
|
19
|
+
end
|
20
|
+
copy_files "#{xdir}/*.so", libdir
|
21
|
+
end
|
22
|
+
|
23
|
+
def copy_deps_to_dist
|
24
|
+
dlls = [RUBY_SO]
|
25
|
+
dlls += IO.readlines("make/mingw/dlls").map{|dll| dll.chomp}
|
26
|
+
dlls += %w{libvlc} if ENV['VIDEO']
|
27
|
+
dlls.each{|dll| cp "#{EXT_RUBY}/bin/#{dll}.dll", "dist/"}
|
28
|
+
cp "dist/zlib1.dll", "dist/zlib.dll"
|
29
|
+
Dir.glob("../deps_cairo*/*"){|file| cp file, "dist/"}
|
30
|
+
sh "strip -x dist/*.dll" unless ENV['DEBUG']
|
31
|
+
end
|
32
|
+
|
33
|
+
def setup_system_resources
|
34
|
+
cp APP['icons']['gtk'], "dist/static/app-icon.png"
|
35
|
+
end
|
36
|
+
|
37
|
+
def make_resource(t)
|
38
|
+
sh "windres -I. #{t.source} #{t.name}"
|
39
|
+
end
|
40
|
+
|
41
|
+
def make_app(name)
|
42
|
+
bin = name
|
43
|
+
rm_f bin
|
44
|
+
sh "#{CC} -Ldist -o #{bin} bin/main.o shoes/appwin32.o #{LINUX_LIBS} -lshoes #{Config::CONFIG['LDFLAGS']} -mwindows"
|
45
|
+
rewrite "platform/nix/shoes.launch", name, %r!/shoes!, "/#{NAME}"
|
46
|
+
sh %{echo 'cd "$OLDPWD"'}
|
47
|
+
sh %{echo 'LD_LIBRARY_PATH=$APPPATH $APPPATH/#{File.basename(bin)} "$@"' >> #{name}}
|
48
|
+
chmod 0755, name
|
49
|
+
cp "platform/msw/shoes.exe.manifest", "dist/#{NAME}.exe.manifest"
|
50
|
+
end
|
51
|
+
|
52
|
+
def make_so(name)
|
53
|
+
ldflags = LINUX_LDFLAGS.sub! /INSTALL_NAME/, "-install_name @executable_path/lib#{SONAME}.#{DLEXT}"
|
54
|
+
sh "#{CC} -o #{name} #{OBJ.join(' ')} #{LINUX_LDFLAGS} #{LINUX_LIBS}"
|
55
|
+
end
|
56
|
+
|
57
|
+
def make_installer
|
58
|
+
def sh(*args); super; end
|
59
|
+
mkdir_p "pkg"
|
60
|
+
rm_rf "dist/nsis"
|
61
|
+
cp_r "platform/msw", "dist/nsis"
|
62
|
+
cp APP['icons']['win32'], "dist/nsis/setup.ico"
|
63
|
+
rewrite "dist/nsis/base.nsi", "dist/nsis/#{NAME}.nsi"
|
64
|
+
Dir.chdir("dist/nsis") do
|
65
|
+
sh "\"#{env('NSIS')}\\makensis.exe\" #{NAME}.nsi"
|
66
|
+
end
|
67
|
+
mv "dist/nsis/#{PKG}.exe", "pkg"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>CFBundleGetInfoString</key>
|
6
|
+
<string>#{APPNAME} #{VERS}</string>
|
7
|
+
<key>CFBundleExecutable</key>
|
8
|
+
<string>#{NAME}-launch</string>
|
9
|
+
<key>CFBundleIdentifier</key>
|
10
|
+
<string>org.hackety.#{NAME}</string>
|
11
|
+
<key>CFBundleName</key>
|
12
|
+
<string>#{APPNAME}</string>
|
13
|
+
<key>CFBundleIconFile</key>
|
14
|
+
<string>App.icns</string>
|
15
|
+
<key>CFBundleShortVersionString</key>
|
16
|
+
<string>#{VERS}</string>
|
17
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
18
|
+
<string>6.0</string>
|
19
|
+
<key>CFBundlePackageType</key>
|
20
|
+
<string>APPL</string>
|
21
|
+
<key>IFMajorVersion</key>
|
22
|
+
<integer>0</integer>
|
23
|
+
<key>IFMinorVersion</key>
|
24
|
+
<integer>1</integer>
|
25
|
+
<key>CFBundleDocumentTypes</key>
|
26
|
+
<array>
|
27
|
+
<dict>
|
28
|
+
<key>CFBundleTypeExtensions</key>
|
29
|
+
<array>
|
30
|
+
<string>shy</string>
|
31
|
+
</array>
|
32
|
+
<key>CFBundleTypeIconFile</key>
|
33
|
+
<string>App.icns</string>
|
34
|
+
<key>CFBundleTypeMIMETypes</key>
|
35
|
+
<array>
|
36
|
+
<string>application/x-shy</string>
|
37
|
+
</array>
|
38
|
+
<key>CFBundleTypeName</key>
|
39
|
+
<string>Shoes Package</string>
|
40
|
+
<key>CFBundleTypeRole</key>
|
41
|
+
<string>Viewer</string>
|
42
|
+
<key>LSIsAppleDefaultForType</key>
|
43
|
+
<true/>
|
44
|
+
</dict>
|
45
|
+
<dict>
|
46
|
+
<key>CFBundleTypeExtensions</key>
|
47
|
+
<array>
|
48
|
+
<string>rb</string>
|
49
|
+
</array>
|
50
|
+
<key>CFBundleTypeRole</key>
|
51
|
+
<string>Viewer</string>
|
52
|
+
</dict>
|
53
|
+
</array>
|
54
|
+
</dict>
|
55
|
+
</plist>
|
@@ -0,0 +1,658 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# Based on the Imendio 'build-gtk.sh' script.
|
4
|
+
#
|
5
|
+
# Inkscape build additions by Michael Wybrow <mjwybrow@users.sf.net>
|
6
|
+
#
|
7
|
+
# See the following page for build instructions:
|
8
|
+
# http://developer.imendio.com/projects/gtk-macosx/build-instructions
|
9
|
+
#
|
10
|
+
# Usage:
|
11
|
+
# export PREFIX=/your/install/prefix
|
12
|
+
# ./build-gtk bootstrap
|
13
|
+
# ./build-gtk build inkscape
|
14
|
+
#
|
15
|
+
|
16
|
+
# XXX: Check for xargs with -i
|
17
|
+
#
|
18
|
+
# In lib/pkgconfig/freetpe2.pc
|
19
|
+
#
|
20
|
+
# - Libs: -L${libdir} -lfreetype -lz
|
21
|
+
# + Libs: -L${libdir} -lfreetype -lz -Wl,-framework,CoreServices,-framework,ApplicationServices
|
22
|
+
#
|
23
|
+
# bin/freetype-config
|
24
|
+
#
|
25
|
+
# - libs="-lfreetype -lz"
|
26
|
+
# + libs="-lfreetype -lz -Wl,-framework,CoreServices,-framework,ApplicationServices"
|
27
|
+
#
|
28
|
+
# In lib/pkgconfig/fontconfig.pc
|
29
|
+
# Add -lexpat
|
30
|
+
#
|
31
|
+
|
32
|
+
version=1.3.1-inkscape
|
33
|
+
|
34
|
+
|
35
|
+
SCRIPTDIR=`dirname $0`
|
36
|
+
|
37
|
+
export PREFIX=${PREFIX-/opt/gtk}
|
38
|
+
export PATH=$PREFIX/bin:/usr/bin:$PATH
|
39
|
+
#export PATH=$PREFIX/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:
|
40
|
+
export LIBTOOLIZE=$PREFIX/bin/libtoolize
|
41
|
+
|
42
|
+
# FIXME: We might need some more intelligent way to get the path here.
|
43
|
+
export PYTHONPATH=$PREFIX/lib/python2.3/site-packages
|
44
|
+
|
45
|
+
# Needed for glib etc to pick up gettext
|
46
|
+
export LDFLAGS=-L$PREFIX/lib
|
47
|
+
export CPPFLAGS=-I$PREFIX/include
|
48
|
+
|
49
|
+
export XDG_DATA_DIRS=$PREFIX/share
|
50
|
+
|
51
|
+
COMMON_OPTIONS="--prefix=$PREFIX --disable-static --enable-shared \
|
52
|
+
--disable-gtk-doc --disable-scrollkeeper"
|
53
|
+
|
54
|
+
#export MAKEFLAGS=-j2
|
55
|
+
|
56
|
+
if [ "x$PANTHER_BUILD" = "xYes" ]; then
|
57
|
+
# XXX: Check the machine is PPC
|
58
|
+
# or rework to have things like pkg-config built natively.
|
59
|
+
|
60
|
+
# Overwrite some build settings.
|
61
|
+
export SDK="/Developer/SDKs/MacOSX10.3.9.sdk"
|
62
|
+
export MACOSX_DEPLOYMENT_TARGET=10.3
|
63
|
+
export CFLAGS="-isysroot ${SDK} -arch ppc"
|
64
|
+
export CXXFLAGS="-isysroot ${SDK} -arch ppc"
|
65
|
+
|
66
|
+
export STABLE_BUILD=Yes
|
67
|
+
fi
|
68
|
+
|
69
|
+
if [ "x$UNIVERSAL_BUILD" = "xYes" ]; then
|
70
|
+
COMMON_OPTIONS="$COMMON_OPTIONS --disable-dependency-tracking"
|
71
|
+
|
72
|
+
export SDK="/Developer/SDKs/MacOSX10.4u.sdk"
|
73
|
+
export MACOSX_DEPLOYMENT_TARGET=10.4
|
74
|
+
#export MACOSX_DEPLOYMENT_TARGET_i386=10.4
|
75
|
+
#export MACOSX_DEPLOYMENT_TARGET_ppc=10.3
|
76
|
+
export CFLAGS="-isysroot ${SDK} -arch ppc -arch i386"
|
77
|
+
export CXXFLAGS="-isysroot ${SDK} -arch ppc -arch i386"
|
78
|
+
|
79
|
+
CONFIGURE_pkg_config="--with-pc-path=$PREFIX/lib/pkgconfig:/usr/X11R6/lib/pkgconfig --enable-indirect-deps --disable-dependency-tracking"
|
80
|
+
|
81
|
+
CONFIGURE_libpng="--disable-dependency-tracking"
|
82
|
+
PRECONFIGURE_libpng="eval CPPFLAGS='$CPPFLAGS -DPNG_NO_ASSEMBLER_CODE'"
|
83
|
+
|
84
|
+
CONFIGURE_tiff="--disable-dependency-tracking"
|
85
|
+
|
86
|
+
POSTCONFIGURE_jpeg_6b="patch_libtool_dylib"
|
87
|
+
|
88
|
+
CONFIGURE_gc="--disable-dependency-tracking"
|
89
|
+
POSTCONFIGURE_gc="patch_libtool_dylib"
|
90
|
+
PRECONFIGURE_gc="eval CFLAGS='$CFLAGS -DUSE_GENERIC_PUSH_REGS'"
|
91
|
+
|
92
|
+
POSTCONFIGURE_freetype="eval cd builds/unix/ && pwd && patch_libtool_dylib && cd ../.."
|
93
|
+
|
94
|
+
CONFIGURE_fontconfig="--disable-dependency-tracking --disable-docs"
|
95
|
+
POSTCONFIGURE_fontconfig="eval cd fc-arch && make all && cd .. && perl -pi~ -e 's|#define FC_ARCHITECTURE \"x86\"|#ifdef __ppc__\n#define FC_ARCHITECTURE \"ppc\"\n#else\n#define FC_ARCHITECTURE \"x86\"\n#endif|g' fc-arch/fcarch.h"
|
96
|
+
|
97
|
+
PRECONFIGURE_cairo="export ax_cv_c_float_words_bigendian=no"
|
98
|
+
CONFIGURE_cairo="--disable-dependency-tracking --enable-shared --disable-quartz --disable-atsui --enable-glitz"
|
99
|
+
POSTCONFIGURE_cairo="eval patch_libtool_dylib && export ax_cv_c_float_words_bigendian='' && perl -pi~ -e 's|/\* #undef FLOAT_WORDS_BIGENDIAN \*/|#ifdef __ppc__\n#define FLOAT_WORDS_BIGENDIAN 1\n#endif|g;s|/\* #undef WORDS_BIGENDIAN \*/|#ifdef __ppc__\n#define WORDS_BIGENDIAN 1\n#endif|g' config.h && perl -pi~ -e 's|DIST_SUBDIRS = pixman src boilerplate test perf doc|DIST_SUBDIRS = pixman src test perf doc|g;s|am__append_1 = boilerplate test|am__append_1 = test|g' Makefile"
|
100
|
+
|
101
|
+
CONFIGURE_glitz="--disable-dependency-tracking"
|
102
|
+
|
103
|
+
CONFIGURE_lcms="--disable-dependency-tracking"
|
104
|
+
|
105
|
+
CONFIGURE_glib="$COMMON_OPTIONS"
|
106
|
+
POSTCONFIGURE_glib="eval make glibconfig.h config.h && cp $DIRNAME/{glib,}config.h ."
|
107
|
+
#POSTCONFIGURE_glib="eval make glibconfig.h && perl -pi~ -e 's|#define G_BYTE_ORDER G_LITTLE_ENDIAN|#include <machine/endian.h>\n#define G_BYTE_ORDER __DARWIN_BYTE_ORDER|g' glibconfig.h"
|
108
|
+
|
109
|
+
CONFIGURE_pango="$COMMON_OPTIONS"
|
110
|
+
POSTCONFIGURE_pango="eval perl -pi~ -e 's|SUBDIRS = pango modules examples docs tools tests|SUBDIRS = pango modules docs tools tests|g' Makefile && perl -pi~ -e 's|harfbuzz_dump_LDADD = |harfbuzz_dump_LDADD = -Xlinker -framework -Xlinker CoreServices -Xlinker -framework -Xlinker ApplicationServices|g' pango/opentype/Makefile"
|
111
|
+
|
112
|
+
CONFIGURE_gtk="$COMMON_OPTIONS"
|
113
|
+
|
114
|
+
CONFIGURE_atk="$COMMON_OPTIONS"
|
115
|
+
|
116
|
+
CONFIGURE_libxml2="$COMMON_OPTIONS"
|
117
|
+
|
118
|
+
CONFIGURE_libsigc="$COMMON_OPTIONS"
|
119
|
+
POSTCONFIGURE_libsigc="patch_libtool_dylib"
|
120
|
+
|
121
|
+
CONFIGURE_glibmm="$COMMON_OPTIONS"
|
122
|
+
|
123
|
+
CONFIGURE_cairomm="$COMMON_OPTIONS"
|
124
|
+
|
125
|
+
CONFIGURE_gtkmm="$COMMON_OPTIONS --disable-examples --disable-demos"
|
126
|
+
POSTCONFIGURE_gtkmm="patch_libtool_dylib"
|
127
|
+
|
128
|
+
CONFIGURE_libxslt="$COMMON_OPTIONS"
|
129
|
+
|
130
|
+
CONFIGURE_popt="$COMMON_OPTIONS"
|
131
|
+
POSTCONFIGURE_popt="patch_libtool_dylib"
|
132
|
+
elif [ "x$STABLE_BUILD" = "xYes" ]; then
|
133
|
+
COMMON_OPTIONS="$COMMON_OPTIONS --disable-dependency-tracking"
|
134
|
+
|
135
|
+
CONFIGURE_pkg_config="--with-pc-path=$PREFIX/lib/pkgconfig:/usr/X11R6/lib/pkgconfig --enable-indirect-deps --disable-dependency-tracking"
|
136
|
+
|
137
|
+
CONFIGURE_libpng="--disable-dependency-tracking"
|
138
|
+
|
139
|
+
CONFIGURE_tiff="--disable-dependency-tracking"
|
140
|
+
|
141
|
+
CONFIGURE_gc="--disable-dependency-tracking"
|
142
|
+
|
143
|
+
CONFIGURE_fontconfig="--disable-dependency-tracking --disable-docs"
|
144
|
+
|
145
|
+
CONFIGURE_cairo="--disable-dependency-tracking --enable-shared --disable-quartz --disable-atsui --enable-glitz"
|
146
|
+
|
147
|
+
CONFIGURE_glitz="--disable-dependency-tracking"
|
148
|
+
|
149
|
+
CONFIGURE_lcms="--disable-dependency-tracking"
|
150
|
+
|
151
|
+
CONFIGURE_glib="$COMMON_OPTIONS"
|
152
|
+
|
153
|
+
CONFIGURE_pango="$COMMON_OPTIONS"
|
154
|
+
POSTCONFIGURE_pango="eval perl -pi~ -e 's|SUBDIRS = pango modules examples docs tools tests|SUBDIRS = pango modules docs tools tests|g' Makefile && perl -pi~ -e 's|harfbuzz_dump_LDADD = |harfbuzz_dump_LDADD = -Xlinker -framework -Xlinker CoreServices -Xlinker -framework -Xlinker ApplicationServices|g' pango/opentype/Makefile"
|
155
|
+
|
156
|
+
CONFIGURE_gtk="$COMMON_OPTIONS"
|
157
|
+
|
158
|
+
CONFIGURE_atk="$COMMON_OPTIONS"
|
159
|
+
|
160
|
+
CONFIGURE_libxml2="$COMMON_OPTIONS"
|
161
|
+
|
162
|
+
CONFIGURE_libsigc="$COMMON_OPTIONS"
|
163
|
+
|
164
|
+
CONFIGURE_glibmm="$COMMON_OPTIONS"
|
165
|
+
|
166
|
+
CONFIGURE_cairomm="$COMMON_OPTIONS"
|
167
|
+
|
168
|
+
CONFIGURE_gtkmm="$COMMON_OPTIONS --disable-examples --disable-demos"
|
169
|
+
|
170
|
+
CONFIGURE_libxslt="$COMMON_OPTIONS"
|
171
|
+
|
172
|
+
CONFIGURE_popt="$COMMON_OPTIONS"
|
173
|
+
fi
|
174
|
+
|
175
|
+
|
176
|
+
# Support install-check from jhbuild to speed up compilation
|
177
|
+
if [ -x $PREFIX/bin/install-check ]; then
|
178
|
+
export INSTALL=$PREFIX/bin/install-check
|
179
|
+
fi
|
180
|
+
|
181
|
+
|
182
|
+
SOURCE=${SOURCE-$HOME/Source/gtk}
|
183
|
+
CAIROCVSROOT=${CAIROCVSROOT-:pserver:anoncvs@cvs.freedesktop.org:/cvs/cairo}
|
184
|
+
INKSCAPESVNURL="https://svn.sourceforge.net/svnroot/inkscape"
|
185
|
+
GNOMESVNURL=${GNOMESVNURL-https://svn.gnome.org/svn}
|
186
|
+
|
187
|
+
if [ x$1 = xrun ]; then
|
188
|
+
cmd="$2"
|
189
|
+
shift 2
|
190
|
+
exec $cmd $*
|
191
|
+
fi
|
192
|
+
|
193
|
+
if [ $# -eq 0 -o "x`echo "$*" | grep shell`" = xshell ]; then
|
194
|
+
# Can be used in .bashrc to set a fancy prompt...
|
195
|
+
export INSIDE_GTK_BUILD=1
|
196
|
+
bash
|
197
|
+
exit 0
|
198
|
+
fi
|
199
|
+
|
200
|
+
CORE_MODULES="glitz cairo gnome-common glib pango atk gtk+"
|
201
|
+
EXTRA_MODULES="libxml2 libxslt loudmouth libglade gossip gtk-engines"
|
202
|
+
PYGTK_MODULES=" pycairo pygobject pygtk"
|
203
|
+
INKSCAPE_MODULES="$CORE_MODULES libxml2 libxslt gc lcms libsigc++ doxygen glibmm cairomm gtkmm popt inkscape"
|
204
|
+
|
205
|
+
# Could add those (orbit requires popt though)
|
206
|
+
MORE_MODULES="libIDL ORBit2 gconf"
|
207
|
+
|
208
|
+
function print_usage
|
209
|
+
{
|
210
|
+
echo
|
211
|
+
echo "GTK+ on Mac OS X build script version $version."
|
212
|
+
echo
|
213
|
+
echo "Usage:"
|
214
|
+
echo "`basename $0` [bootstrap|[shell]|run <cmd>|build [<modules>]], modules are:"
|
215
|
+
echo " Core: $CORE_MODULES"
|
216
|
+
echo " Extra: $EXTRA_MODULES"
|
217
|
+
echo " Python: $PYGTK_MODULES"
|
218
|
+
echo " Inkscape: $INKSCAPE_MODULES"
|
219
|
+
echo
|
220
|
+
echo "Setup: This script defaults to downloading source to ~/Source/gtk and"
|
221
|
+
echo "installing in /opt/gtk. Make sure your user has write access to the"
|
222
|
+
echo "latter directory. You can override those directories by setting the"
|
223
|
+
echo "SOURCE and PREFIX environment variables. Anoncvs is used by default"
|
224
|
+
echo "for access to GNOME SVN, if you wish to override, set the environment"
|
225
|
+
echo "variable GNOMESVNURL to your own account."
|
226
|
+
echo
|
227
|
+
echo "While in the shell that this script provides, the environment variable"
|
228
|
+
echo "INSIDE_GTK_BUILD is set, which makes it possible to put something like"
|
229
|
+
echo "the following in ~/.bashrc:"
|
230
|
+
echo
|
231
|
+
echo " if [ x\$INSIDE_GTK_BUILD != x ]; then"
|
232
|
+
echo " PS1=\"[GTK] \u@\h \W $ \""
|
233
|
+
echo " fi"
|
234
|
+
echo
|
235
|
+
echo "Start by bootstrapping. This will install the necessary build tools."
|
236
|
+
echo "Then build GTK+ & co by using the \"build\" command. If no modules are"
|
237
|
+
echo "specified, only the ones needed for GTK+ will be built. The special"
|
238
|
+
echo "modules \"core\" and \"all\" can be used to build just the core or all"
|
239
|
+
echo "modules."
|
240
|
+
echo
|
241
|
+
echo "If you want to build something manually or run something, use the "
|
242
|
+
echo "\"shell\" command (or no command) to get a shell with the environment"
|
243
|
+
echo "properly setup."
|
244
|
+
echo
|
245
|
+
echo "Tip: if you build and install \"install-check\" from jhbuild into your"
|
246
|
+
echo "PREFIX, recompiling when hacking on GTK+ & co will be a lot faster."
|
247
|
+
echo
|
248
|
+
}
|
249
|
+
|
250
|
+
function download
|
251
|
+
{
|
252
|
+
BASENAME=`basename $1`
|
253
|
+
|
254
|
+
if [ -s $BASENAME ]; then
|
255
|
+
echo "Already downloaded"
|
256
|
+
return 0
|
257
|
+
fi
|
258
|
+
|
259
|
+
curl $1 > $BASENAME || return 1
|
260
|
+
|
261
|
+
return 0
|
262
|
+
}
|
263
|
+
|
264
|
+
function should_build
|
265
|
+
{
|
266
|
+
if [ -f $1/BUILT ]; then
|
267
|
+
echo "Already built"
|
268
|
+
return 1
|
269
|
+
fi
|
270
|
+
|
271
|
+
return 0
|
272
|
+
}
|
273
|
+
|
274
|
+
function tarball_get_and_build
|
275
|
+
{
|
276
|
+
BASENAME=`basename $1`
|
277
|
+
DIRNAME=`echo $BASENAME | sed -e s,.src.,., | sed -e s,.tar.*,,`
|
278
|
+
INSTCMD="make install"
|
279
|
+
PREFIXARG="--prefix=$PREFIX"
|
280
|
+
COMMONOPTS="$COMMON_OPTIONS"
|
281
|
+
|
282
|
+
SHORTNAME=`echo $DIRNAME | sed -e s,-*[0-9\.]*$,,`
|
283
|
+
if !(echo "$MODULES" | grep -w $SHORTNAME) >/dev/null; then
|
284
|
+
return 0
|
285
|
+
fi
|
286
|
+
|
287
|
+
echo
|
288
|
+
echo "Building $DIRNAME"
|
289
|
+
echo -ne "\033]0;Building $DIRNAME\007"
|
290
|
+
|
291
|
+
# Special case jpeg... :/
|
292
|
+
if [ x`echo $DIRNAME | grep jpeg` != x ]; then
|
293
|
+
INSTCMD="make install-lib"
|
294
|
+
fi
|
295
|
+
|
296
|
+
if [ x`echo $BASENAME | grep bz2` != x ]; then
|
297
|
+
COMP="j"
|
298
|
+
else
|
299
|
+
COMP="z"
|
300
|
+
fi
|
301
|
+
|
302
|
+
# Doxygen doesn't have a standard configure script.
|
303
|
+
if [ x`echo $BASENAME | grep doxygen` != x ]; then
|
304
|
+
PREFIXARG="--prefix $PREFIX"
|
305
|
+
COMMONOPTS="--shared"
|
306
|
+
fi
|
307
|
+
|
308
|
+
# Modify specific configure options
|
309
|
+
UNDERSCORENAME=`echo $SHORTNAME | sed -e s,-,_, | tr -d '+'`
|
310
|
+
CONFIGURE_EXTRA=`eval echo '\$'{CONFIGURE_$UNDERSCORENAME}`
|
311
|
+
if [ "x$CONFIGURE_EXTRA" != "x" ]; then
|
312
|
+
COMMONOPTS="$COMMONOPTS $CONFIGURE_EXTRA"
|
313
|
+
fi
|
314
|
+
PRECONFIGURE=`eval echo '\$'{PRECONFIGURE_$UNDERSCORENAME}`
|
315
|
+
if [ "x$PRECONFIGURE" == "x" ]; then
|
316
|
+
PRECONFIGURE="true"
|
317
|
+
fi
|
318
|
+
POSTCONFIGURE=`eval echo '\$'{POSTCONFIGURE_$UNDERSCORENAME}`
|
319
|
+
if [ "x$POSTCONFIGURE" == "x" ]; then
|
320
|
+
POSTCONFIGURE="true"
|
321
|
+
fi
|
322
|
+
|
323
|
+
cd $SOURCE || return 1
|
324
|
+
download $1 || return 1
|
325
|
+
should_build $DIRNAME || return 0
|
326
|
+
tar ${COMP}xf $BASENAME && \
|
327
|
+
cd $DIRNAME && \
|
328
|
+
$PRECONFIGURE && \
|
329
|
+
echo "./configure $PREFIXARG $COMMONOPTS $2" && \
|
330
|
+
./configure $PREFIXARG $COMMONOPTS $2 && \
|
331
|
+
$POSTCONFIGURE && \
|
332
|
+
make && $INSTCMD && touch BUILT
|
333
|
+
}
|
334
|
+
|
335
|
+
|
336
|
+
function cpan_get_and_build
|
337
|
+
{
|
338
|
+
BASENAME=`basename $1`
|
339
|
+
DIRNAME=`echo $BASENAME | sed -e s,.tar.*,,`
|
340
|
+
|
341
|
+
SHORTNAME=`echo $DIRNAME | sed -e s,-*[0-9\.]*$,,`
|
342
|
+
if !(echo "$MODULES" | grep -w $SHORTNAME) >/dev/null; then
|
343
|
+
return 0
|
344
|
+
fi
|
345
|
+
|
346
|
+
echo
|
347
|
+
echo "Building $DIRNAME"
|
348
|
+
echo -ne "\033]0;Building $DIRNAME\007"
|
349
|
+
|
350
|
+
if [ x`echo $BASENAME | grep bz2` != x ]; then
|
351
|
+
COMP="j"
|
352
|
+
else
|
353
|
+
COMP="z"
|
354
|
+
fi
|
355
|
+
|
356
|
+
cd $SOURCE || return 1
|
357
|
+
download $1 || return 1
|
358
|
+
should_build $DIRNAME || return 0
|
359
|
+
tar ${COMP}xf $BASENAME && \
|
360
|
+
cd $DIRNAME && \
|
361
|
+
perl Makefile.PL $2 && \
|
362
|
+
make && \
|
363
|
+
(echo "Enter your password to istall $BASENAME"; make install) && \
|
364
|
+
touch BUILT
|
365
|
+
}
|
366
|
+
|
367
|
+
function git_get_and_build
|
368
|
+
{
|
369
|
+
if !(echo "$MODULES" | grep -w $2) >/dev/null; then
|
370
|
+
return 0
|
371
|
+
fi
|
372
|
+
|
373
|
+
echo
|
374
|
+
echo "Building $2"
|
375
|
+
echo -ne "\033]0;Building $2\007"
|
376
|
+
|
377
|
+
cd $SOURCE
|
378
|
+
if [ -d $2 ]; then
|
379
|
+
cd $2
|
380
|
+
cg-update || return
|
381
|
+
else
|
382
|
+
cg-clone $1/$2 || return
|
383
|
+
cd $2
|
384
|
+
fi
|
385
|
+
|
386
|
+
echo "./autogen.sh $COMMON_OPTIONS $3"
|
387
|
+
(./autogen.sh $COMMON_OPTIONS $3 && make && make install)
|
388
|
+
}
|
389
|
+
|
390
|
+
function cvs_get_and_build
|
391
|
+
{
|
392
|
+
if !(echo "$MODULES" | grep -w $2) >/dev/null; then
|
393
|
+
return 0
|
394
|
+
fi
|
395
|
+
|
396
|
+
echo
|
397
|
+
echo "Building $2"
|
398
|
+
echo -ne "\033]0;Building $2\007"
|
399
|
+
|
400
|
+
cd $SOURCE
|
401
|
+
if [ -d $2 ]; then
|
402
|
+
cd $2
|
403
|
+
cvs up -dP || return
|
404
|
+
else
|
405
|
+
cvs -d $1 co -P $2 || return
|
406
|
+
cd $2
|
407
|
+
fi
|
408
|
+
|
409
|
+
echo "./autogen.sh $COMMON_OPTIONS $3"
|
410
|
+
(./autogen.sh $COMMON_OPTIONS $3 && make && make install)
|
411
|
+
}
|
412
|
+
|
413
|
+
function svn_get_and_build
|
414
|
+
{
|
415
|
+
if !(echo "$MODULES" | grep -w $2) >/dev/null; then
|
416
|
+
return 0
|
417
|
+
fi
|
418
|
+
|
419
|
+
echo
|
420
|
+
echo "Building $2"
|
421
|
+
echo -ne "\033]0;Building $2\007"
|
422
|
+
|
423
|
+
cd $SOURCE
|
424
|
+
if [ -d $2 ]; then
|
425
|
+
cd $2
|
426
|
+
svn up || return
|
427
|
+
else
|
428
|
+
svn co $1/$2/trunk $2 || return
|
429
|
+
cd $2
|
430
|
+
fi
|
431
|
+
|
432
|
+
echo "./autogen.sh $COMMON_OPTIONS $3"
|
433
|
+
#(./autogen.sh $COMMON_OPTIONS $3 && ./configure --prefix=$PREFIX $COMMON_OPTIONS $3 && make && make install)
|
434
|
+
(./autogen.sh $COMMON_OPTIONS $3 && make && make install)
|
435
|
+
}
|
436
|
+
|
437
|
+
function set_automake
|
438
|
+
{
|
439
|
+
old_AUTOMAKE=$AUTOMAKE
|
440
|
+
old_ACLOCAL=$ACLOCAL
|
441
|
+
|
442
|
+
export AUTOMAKE=automake-$1
|
443
|
+
export ACLOCAL=aclocal-$1
|
444
|
+
}
|
445
|
+
|
446
|
+
function restore_automake
|
447
|
+
{
|
448
|
+
if [ x$old_AUTOMAKE != x ]; then
|
449
|
+
export AUTOMAKE=$old_AUTOMAKE
|
450
|
+
else
|
451
|
+
unset AUTOMAKE
|
452
|
+
fi
|
453
|
+
|
454
|
+
if [ x$old_ACLOCAL != x ]; then
|
455
|
+
export ACLOCAL=$old_ACLOCAL
|
456
|
+
else
|
457
|
+
unset ACLOCAL
|
458
|
+
fi
|
459
|
+
}
|
460
|
+
|
461
|
+
function do_exit
|
462
|
+
{
|
463
|
+
echo -ne "\033]0;\007"
|
464
|
+
exit
|
465
|
+
}
|
466
|
+
|
467
|
+
# Make sure to restore the title when done.
|
468
|
+
trap do_exit EXIT SIGINT SIGTERM
|
469
|
+
|
470
|
+
|
471
|
+
# configure doesn't pass CFLAGS through to generated libtool
|
472
|
+
function patch_libtool_dylib()
|
473
|
+
{
|
474
|
+
# Only do this for universal builds.
|
475
|
+
if [ "x$UNIVERSAL_BUILD" != "xYes" ]; then
|
476
|
+
return 0
|
477
|
+
fi
|
478
|
+
|
479
|
+
cp libtool libtool.old
|
480
|
+
perl -pi -e "s@-dynamiclib@$CFLAGS \$&@" libtool
|
481
|
+
if test "x$1" = "xwithbundle"; then
|
482
|
+
perl -pi -e "s@-bundle@$CFLAGS \$&@" libtool
|
483
|
+
fi
|
484
|
+
}
|
485
|
+
|
486
|
+
|
487
|
+
function process_modules()
|
488
|
+
{
|
489
|
+
# Bootstrap packages.
|
490
|
+
PACKAGES=" \
|
491
|
+
http://pkgconfig.freedesktop.org/releases/pkg-config-0.21.tar.gz \
|
492
|
+
http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz \
|
493
|
+
http://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.bz2 \
|
494
|
+
http://ftp.gnu.org/pub/gnu/automake/automake-1.7.9.tar.bz2 \
|
495
|
+
http://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.bz2 \
|
496
|
+
http://heanet.dl.sourceforge.net/sourceforge/libpng/libpng-1.2.15.tar.bz2 \
|
497
|
+
ftp://ftp.remotesensing.org/pub/libtiff/tiff-3.8.2.tar.gz \
|
498
|
+
http://people.imendio.com/richard/gtk-osx/files/jpeg-6b.tar.gz \
|
499
|
+
http://ftp.gnu.org/gnu/gettext/gettext-0.16.tar.gz \
|
500
|
+
http://heanet.dl.sourceforge.net/sourceforge/expat/expat-2.0.0.tar.gz \
|
501
|
+
http://heanet.dl.sourceforge.net/sourceforge/freetype/freetype-2.3.0.tar.bz2 \
|
502
|
+
http://fontconfig.org/release/fontconfig-2.4.2.tar.gz \
|
503
|
+
http://people.imendio.com/richard/gtk-osx/files/docbook-files-1.tar.gz \
|
504
|
+
http://www.cs.mu.oz.au/~mjwybrow/gtk-osx/gnome-doc-utils-fake-1.tar.gz \
|
505
|
+
"
|
506
|
+
|
507
|
+
#http://people.imendio.com/richard/gtk-osx/files/popt-1.7.tar.gz
|
508
|
+
|
509
|
+
for PACKAGE in $PACKAGES; do
|
510
|
+
tarball_get_and_build $PACKAGE || exit 1
|
511
|
+
done
|
512
|
+
|
513
|
+
PACKAGE=http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.6/gtk-doc-1.6.tar.bz2
|
514
|
+
tarball_get_and_build $PACKAGE "--with-xml-catalog=$PREFIX/etc/xml/catalog" || exit 1
|
515
|
+
|
516
|
+
PACKAGE=ftp://ftp4.freebsd.org/pub/FreeBSD/ports/distfiles/XML-Parser-2.34.tar.gz
|
517
|
+
cpan_get_and_build $PACKAGE "PREFIX=$PREFIX INSTALLDIRS=perl EXPATLIBPATH=$PREFIX/lib EXPATINCPATH=$PREFIX/include" || exit 1
|
518
|
+
|
519
|
+
PACKAGES=" \
|
520
|
+
http://ftp.gnome.org/pub/GNOME/sources/intltool/0.35/intltool-0.35.0.tar.bz2 \
|
521
|
+
http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.9.tar.gz \
|
522
|
+
http://ftp.gnome.org/pub/GNOME/sources/gnome-icon-theme/2.14/gnome-icon-theme-2.14.2.tar.bz2 \
|
523
|
+
"
|
524
|
+
|
525
|
+
for PACKAGE in $PACKAGES; do
|
526
|
+
tarball_get_and_build $PACKAGE || exit 1
|
527
|
+
done
|
528
|
+
|
529
|
+
|
530
|
+
# Other packages:
|
531
|
+
if [ "x$UNIVERSAL_BUILD" == "xYes" -o "x$STABLE_BUILD" = "xYes" ];
|
532
|
+
then
|
533
|
+
tarball_get_and_build http://cairographics.org/snapshots/glitz-0.5.6.tar.gz || exit 1
|
534
|
+
tarball_get_and_build http://cairographics.org/releases/cairo-1.4.0.tar.gz || exit 1
|
535
|
+
tarball_get_and_build http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.8.tar.gz || exit 1
|
536
|
+
tarball_get_and_build http://www.littlecms.com/lcms-1.16.tar.gz || exit 1
|
537
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/glib/2.12/glib-2.12.11.tar.bz2 || exit 1
|
538
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/pango/1.14/pango-1.14.10.tar.bz2 || exit 1
|
539
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/atk/1.12/atk-1.12.4.tar.bz2 || exit 1
|
540
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/gtk+/2.10/gtk+-2.10.11.tar.bz2 || exit 1
|
541
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/libxml2/2.6/libxml2-2.6.27.tar.bz2 || exit 1
|
542
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/libsigc++/2.0/libsigc++-2.0.17.tar.bz2 || exit 1
|
543
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/glibmm/2.12/glibmm-2.12.7.tar.bz2 || exit 1
|
544
|
+
tarball_get_and_build http://cairographics.org/releases/cairomm-1.2.4.tar.gz || exit 1
|
545
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/gtkmm/2.10/gtkmm-2.10.8.tar.bz2 || exit 1
|
546
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/libxslt/1.1/libxslt-1.1.20.tar.bz2 || exit 1
|
547
|
+
tarball_get_and_build ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz || exit 1
|
548
|
+
|
549
|
+
svn_get_and_build $INKSCAPESVNURL inkscape || exit 1
|
550
|
+
|
551
|
+
exit 0
|
552
|
+
else
|
553
|
+
git_get_and_build git://git.cairographics.org/git cairo "--enable-pdf --enable-atsui --enable-quartz --disable-xlib" || exit 1
|
554
|
+
|
555
|
+
tarball_get_and_build http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.7.tar.gz || exit 1
|
556
|
+
tarball_get_and_build ftp://ftp.gnome.org/mirror/gnome.org/sources/libsigc++/2.0/libsigc++-2.0.17.tar.gz || exit 1
|
557
|
+
tarball_get_and_build http://ftp.stack.nl/pub/users/dimitri/doxygen-1.5.1.src.tar.gz || exit 1
|
558
|
+
tarball_get_and_build ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz || exit 1
|
559
|
+
fi
|
560
|
+
|
561
|
+
svn_get_and_build $GNOMESVNURL libxml2 || exit 1
|
562
|
+
svn_get_and_build $GNOMESVNURL libxslt || exit 1
|
563
|
+
svn_get_and_build $GNOMESVNURL gnome-common || exit 1
|
564
|
+
svn_get_and_build $GNOMESVNURL glib || exit 1
|
565
|
+
svn_get_and_build $GNOMESVNURL atk || exit 1
|
566
|
+
svn_get_and_build $GNOMESVNURL pango "--without-x" || exit 1
|
567
|
+
svn_get_and_build $GNOMESVNURL gtk+ "--with-gdktarget=quartz" || exit 1
|
568
|
+
svn_get_and_build $GNOMESVNURL gtk-engines || exit 1
|
569
|
+
svn_get_and_build $GNOMESVNURL loudmouth "--with-ssl=openssl" || exit 1
|
570
|
+
svn_get_and_build $GNOMESVNURL libglade || exit 1
|
571
|
+
# gossip needs xml2po from gnome-doc-utils.
|
572
|
+
svn_get_and_build $GNOMESVNURL gossip "--with-backend=cocoa" || exit 1
|
573
|
+
svn_get_and_build $CAIROCVSROOT pycairo || exit 1
|
574
|
+
svn_get_and_build $GNOMESVNURL pygobject "--disable-docs" || exit 1
|
575
|
+
svn_get_and_build $GNOMESVNURL pygtk "--disable-docs" || exit 1
|
576
|
+
|
577
|
+
svn_get_and_build $GNOMESVNURL glibmm "--disable-docs --disable-fulldocs" || exit 1
|
578
|
+
cvs_get_and_build $CAIROCVSROOT cairomm || exit 1
|
579
|
+
svn_get_and_build $GNOMESVNURL gtkmm "--disable-docs --disable-examples --disable-demos" || exit 1
|
580
|
+
|
581
|
+
svn_get_and_build $INKSCAPESVNURL inkscape || exit 1
|
582
|
+
|
583
|
+
|
584
|
+
#svn_get_and_build $GNOMESVNURL gimp || exit 1
|
585
|
+
# For gimp:
|
586
|
+
# libart_lgpl, needs automake 1.4 and doesn't run libtoolize
|
587
|
+
# gtkhtml2 (optional)
|
588
|
+
# libpoppler (optional)
|
589
|
+
# ./autogen.sh --prefix=/opt/gimp --disable-gtk-doc
|
590
|
+
}
|
591
|
+
|
592
|
+
if (echo "$*" | grep bootstrap) >/dev/null; then
|
593
|
+
if [ "x`cg-version 2>/dev/null`" == "x" ]; then
|
594
|
+
echo "You need the cogito to get cairo from git. It's available e.g. in Darwin ports."
|
595
|
+
exit 1
|
596
|
+
fi
|
597
|
+
if [ "x`which svn 2>/dev/null`" == "x" ]; then
|
598
|
+
echo "You need the svn client to get inkscape."
|
599
|
+
exit 1
|
600
|
+
fi
|
601
|
+
|
602
|
+
mkdir -p $SOURCE 2>/dev/null || \
|
603
|
+
(echo "Error: Couldn't create source checkout dir $SOURCE"; exit 1)
|
604
|
+
mkdir -p $PREFIX/bin 2>/dev/null || \
|
605
|
+
(echo "Error: Couldn't create bin dir $PREFIX/bin"; exit 1)
|
606
|
+
|
607
|
+
echo "Building bootstrap packages."
|
608
|
+
|
609
|
+
MODULES="pkg-config libtool autoconf automake libpng tiff jpeg-6b gettext \
|
610
|
+
expat fontconfig docbook-files intltool \
|
611
|
+
"
|
612
|
+
# freetype
|
613
|
+
# XML-Parser hicolor-icon-theme gnome-icon-theme"
|
614
|
+
# gnome-doc-utils-fake gtk-doc \
|
615
|
+
process_modules
|
616
|
+
|
617
|
+
# Setup glibtool* links since some stuff expects them to be named like
|
618
|
+
# that on OSX
|
619
|
+
if [ -z $PREFIX/bin/glibtoolize ]; then
|
620
|
+
ln -s $PREFIX/bin/libtoolize $PREFIX/bin/glibtoolize
|
621
|
+
ln -s $PREFIX/bin/libtool $PREFIX/bin/glibtool
|
622
|
+
fi
|
623
|
+
|
624
|
+
echo
|
625
|
+
echo "Done bootstrapping. Continue with \"build\" or \"shell\"."
|
626
|
+
exit 0
|
627
|
+
fi
|
628
|
+
|
629
|
+
if [ "x$1" != xbuild ]; then
|
630
|
+
print_usage
|
631
|
+
exit 1
|
632
|
+
fi
|
633
|
+
|
634
|
+
shift
|
635
|
+
|
636
|
+
MODULES=$*
|
637
|
+
if [ $# -eq 0 ]; then
|
638
|
+
echo "Building core modules."
|
639
|
+
MODULES="$CORE_MODULES"
|
640
|
+
elif [ "x$1" = xcore ]; then
|
641
|
+
echo "Building core modules."
|
642
|
+
MODULES="$CORE_MODULES"
|
643
|
+
elif [ "x$1" = xpython ]; then
|
644
|
+
echo "Building python modules."
|
645
|
+
MODULES="$PYGTK_MODULES"
|
646
|
+
elif [ "x$1" = xall ]; then
|
647
|
+
echo "Building core+extra+python modules."
|
648
|
+
MODULES="$CORE_MODULES $EXTRA_MODULES $PYGTK_MODULES"
|
649
|
+
elif [ "x$1" = xinkscape ]; then
|
650
|
+
echo "Building inkscape modules."
|
651
|
+
MODULES="$INKSCAPE_MODULES"
|
652
|
+
fi
|
653
|
+
|
654
|
+
process_modules
|
655
|
+
echo "Done."
|
656
|
+
|
657
|
+
|
658
|
+
|