shoes 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
Binary file
|
Binary file
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2
|
+
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
3
|
+
<dependency>
|
4
|
+
<dependentAssembly>
|
5
|
+
<assemblyIdentity
|
6
|
+
type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="x86" />
|
7
|
+
</dependentAssembly>
|
8
|
+
</dependency>
|
9
|
+
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
10
|
+
<security>
|
11
|
+
<requestedPrivileges>
|
12
|
+
<requestedExecutionLevel
|
13
|
+
level="asInvoker"/>
|
14
|
+
</requestedPrivileges>
|
15
|
+
</security>
|
16
|
+
</trustInfo>
|
17
|
+
</assembly>
|
Binary file
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#include <stdio.h>
|
2
|
+
#include <windows.h>
|
3
|
+
|
4
|
+
#define BUFSIZE 512
|
5
|
+
|
6
|
+
int WINAPI
|
7
|
+
WinMain(HINSTANCE inst, HINSTANCE inst2, LPSTR arg, int style)
|
8
|
+
{
|
9
|
+
LPBYTE data = NULL;
|
10
|
+
HANDLE payload = CreateFile(arg, GENERIC_READ, FILE_SHARE_READ,
|
11
|
+
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
12
|
+
if (payload != INVALID_HANDLE_VALUE)
|
13
|
+
{
|
14
|
+
DWORD rlen = 0;
|
15
|
+
TCHAR outPath[BUFSIZE];
|
16
|
+
DWORD len = GetFileSize(payload, NULL);
|
17
|
+
data = (LPBYTE)LocalAlloc(LPTR, len + 1);
|
18
|
+
SetFilePointer(payload, 0, 0, FILE_BEGIN);
|
19
|
+
ReadFile(payload, data, len, &rlen, NULL);
|
20
|
+
CloseHandle(payload);
|
21
|
+
|
22
|
+
LPTSTR fname = strrchr(arg, '\\');
|
23
|
+
if (fname == NULL)
|
24
|
+
fname = arg;
|
25
|
+
else
|
26
|
+
fname += 1;
|
27
|
+
|
28
|
+
strcpy(outPath, arg);
|
29
|
+
LPSTR ext = strrchr(outPath, '.');
|
30
|
+
if (ext != NULL)
|
31
|
+
*ext = '\0';
|
32
|
+
strcat(outPath, ".exe");
|
33
|
+
|
34
|
+
CopyFile("shoes-stub.exe", outPath, FALSE);
|
35
|
+
HANDLE exe = BeginUpdateResource(outPath, FALSE);
|
36
|
+
UpdateResource(exe, RT_STRING, "SHOES_FILENAME",
|
37
|
+
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), fname, strlen(fname));
|
38
|
+
UpdateResource(exe, RT_RCDATA, "SHOES_PAYLOAD",
|
39
|
+
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), data, rlen);
|
40
|
+
|
41
|
+
payload = CreateFile("shoes-setup.exe", GENERIC_READ, FILE_SHARE_READ,
|
42
|
+
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
43
|
+
if (payload != INVALID_HANDLE_VALUE)
|
44
|
+
{
|
45
|
+
LPBYTE setup = NULL;
|
46
|
+
DWORD setuplen = 0;
|
47
|
+
len = GetFileSize(payload, NULL);
|
48
|
+
setup = (LPBYTE)LocalAlloc(LPTR, len + 1);
|
49
|
+
SetFilePointer(payload, 0, 0, FILE_BEGIN);
|
50
|
+
ReadFile(payload, setup, len, &setuplen, NULL);
|
51
|
+
CloseHandle(payload);
|
52
|
+
UpdateResource(exe, RT_RCDATA, "SHOES_SETUP",
|
53
|
+
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), setup, setuplen);
|
54
|
+
}
|
55
|
+
EndUpdateResource(exe, FALSE);
|
56
|
+
LocalFree(data);
|
57
|
+
LocalFree(fname);
|
58
|
+
}
|
59
|
+
}
|
data/platform/msw/stub.c
ADDED
@@ -0,0 +1,271 @@
|
|
1
|
+
#include <stdio.h>
|
2
|
+
#include <stdlib.h>
|
3
|
+
|
4
|
+
#define LONG_LONG long long
|
5
|
+
#define SHOES_TIME DWORD
|
6
|
+
#define SHOES_DOWNLOAD_ERROR DWORD
|
7
|
+
|
8
|
+
#include "shoes/version.h"
|
9
|
+
#include "shoes/internal.h"
|
10
|
+
#include "shoes/http/winhttp.h"
|
11
|
+
#include "stub32.h"
|
12
|
+
|
13
|
+
#define BUFSIZE 512
|
14
|
+
|
15
|
+
HWND dlg;
|
16
|
+
BOOL http_abort = FALSE;
|
17
|
+
|
18
|
+
int
|
19
|
+
StubDownloadingShoes(shoes_http_event *event, void *data)
|
20
|
+
{
|
21
|
+
TCHAR msg[512];
|
22
|
+
if (http_abort) return SHOES_DOWNLOAD_HALT;
|
23
|
+
if (event->stage == SHOES_HTTP_TRANSFER)
|
24
|
+
{
|
25
|
+
sprintf(msg, "Shoes is downloading. (%d%% done)", event->percent);
|
26
|
+
SetDlgItemText(dlg, IDSHOE, msg);
|
27
|
+
SendMessage(GetDlgItem(dlg, IDPROG), PBM_SETPOS, event->percent, 0L);
|
28
|
+
}
|
29
|
+
return SHOES_DOWNLOAD_CONTINUE;
|
30
|
+
}
|
31
|
+
|
32
|
+
void
|
33
|
+
CenterWindow(HWND hwnd)
|
34
|
+
{
|
35
|
+
RECT rc;
|
36
|
+
|
37
|
+
GetWindowRect (hwnd, &rc);
|
38
|
+
|
39
|
+
SetWindowPos(hwnd, 0,
|
40
|
+
(GetSystemMetrics(SM_CXSCREEN) - rc.right)/2,
|
41
|
+
(GetSystemMetrics(SM_CYSCREEN) - rc.bottom)/2,
|
42
|
+
0, 0, SWP_NOZORDER|SWP_NOSIZE );
|
43
|
+
}
|
44
|
+
|
45
|
+
BOOL CALLBACK
|
46
|
+
stub_win32proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
47
|
+
{
|
48
|
+
switch (message)
|
49
|
+
{
|
50
|
+
case WM_INITDIALOG:
|
51
|
+
CenterWindow(hwnd);
|
52
|
+
return TRUE;
|
53
|
+
|
54
|
+
case WM_COMMAND:
|
55
|
+
if (LOWORD(wParam) == IDCANCEL)
|
56
|
+
{
|
57
|
+
http_abort = TRUE;
|
58
|
+
EndDialog(hwnd, LOWORD(wParam));
|
59
|
+
return TRUE;
|
60
|
+
}
|
61
|
+
break;
|
62
|
+
|
63
|
+
case WM_CLOSE:
|
64
|
+
http_abort = TRUE;
|
65
|
+
EndDialog(hwnd, 0);
|
66
|
+
return FALSE;
|
67
|
+
}
|
68
|
+
return FALSE;
|
69
|
+
}
|
70
|
+
|
71
|
+
void
|
72
|
+
shoes_silent_install(TCHAR *path)
|
73
|
+
{
|
74
|
+
SHELLEXECUTEINFO shell = {0};
|
75
|
+
SetDlgItemText(dlg, IDSHOE, "Setting up Shoes...");
|
76
|
+
shell.cbSize = sizeof(SHELLEXECUTEINFO);
|
77
|
+
shell.fMask = SEE_MASK_NOCLOSEPROCESS;
|
78
|
+
shell.hwnd = NULL;
|
79
|
+
shell.lpVerb = NULL;
|
80
|
+
shell.lpFile = path;
|
81
|
+
shell.lpParameters = "/S";
|
82
|
+
shell.lpDirectory = NULL;
|
83
|
+
shell.nShow = SW_SHOW;
|
84
|
+
shell.hInstApp = NULL;
|
85
|
+
ShellExecuteEx(&shell);
|
86
|
+
WaitForSingleObject(shell.hProcess,INFINITE);
|
87
|
+
}
|
88
|
+
|
89
|
+
char *setup_exe = "shoes-setup.exe";
|
90
|
+
|
91
|
+
DWORD WINAPI
|
92
|
+
shoes_auto_setup(IN DWORD mid, IN WPARAM w, LPARAM &l, IN LPVOID vinst)
|
93
|
+
{
|
94
|
+
HINSTANCE inst = (HINSTANCE)vinst;
|
95
|
+
TCHAR setup_path[BUFSIZE];
|
96
|
+
GetTempPath(BUFSIZE, setup_path);
|
97
|
+
strncat(setup_path, setup_exe, strlen(setup_exe));
|
98
|
+
|
99
|
+
HANDLE install = CreateFile(setup_path, GENERIC_READ | GENERIC_WRITE,
|
100
|
+
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
|
101
|
+
HRSRC setupres = FindResource(inst, "SHOES_SETUP", RT_RCDATA);
|
102
|
+
DWORD len = 0, rlen = 0;
|
103
|
+
LPVOID data = NULL;
|
104
|
+
len = SizeofResource(inst, setupres);
|
105
|
+
if (GetFileSize(install, NULL) != len)
|
106
|
+
{
|
107
|
+
HGLOBAL resdata = LoadResource(inst, setupres);
|
108
|
+
data = LockResource(resdata);
|
109
|
+
SetFilePointer(install, 0, 0, FILE_BEGIN);
|
110
|
+
SetEndOfFile(install);
|
111
|
+
WriteFile(install, (LPBYTE)data, len, &rlen, NULL);
|
112
|
+
}
|
113
|
+
CloseHandle(install);
|
114
|
+
SendMessage(GetDlgItem(dlg, IDPROG), PBM_SETPOS, 50, 0L);
|
115
|
+
|
116
|
+
shoes_silent_install(setup_path);
|
117
|
+
return 0;
|
118
|
+
}
|
119
|
+
|
120
|
+
DWORD WINAPI
|
121
|
+
shoes_http_thread(IN DWORD mid, IN WPARAM w, LPARAM &l, IN LPVOID data)
|
122
|
+
{
|
123
|
+
DWORD len = 0;
|
124
|
+
WCHAR path[BUFSIZE];
|
125
|
+
TCHAR *buf = SHOE_ALLOC_N(TCHAR, BUFSIZE);
|
126
|
+
TCHAR *empty = NULL;
|
127
|
+
HANDLE file;
|
128
|
+
TCHAR *nl;
|
129
|
+
TCHAR setup_path[BUFSIZE];
|
130
|
+
GetTempPath(BUFSIZE, setup_path);
|
131
|
+
strncat(setup_path, setup_exe, strlen(setup_exe));
|
132
|
+
|
133
|
+
shoes_winhttp(NULL, L"www.rin-shun.com", 80, L"/pkg/win32/shoes",
|
134
|
+
NULL, NULL, NULL, 0, &buf, BUFSIZE,
|
135
|
+
INVALID_HANDLE_VALUE, &len, SHOES_DL_DEFAULTS, NULL, NULL);
|
136
|
+
if (len == 0)
|
137
|
+
return 0;
|
138
|
+
|
139
|
+
nl = strstr(buf, "\n");
|
140
|
+
if (nl) nl[0] = '\0';
|
141
|
+
|
142
|
+
len = 0;
|
143
|
+
MultiByteToWideChar(CP_ACP, 0, buf, -1, path, BUFSIZE);
|
144
|
+
file = CreateFile(setup_path, GENERIC_READ | GENERIC_WRITE,
|
145
|
+
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
146
|
+
shoes_winhttp(NULL, L"www.rin-shun.com", 80, path,
|
147
|
+
NULL, NULL, NULL, 0, &empty, 0, file, &len,
|
148
|
+
SHOES_DL_DEFAULTS, HTTP_HANDLER(StubDownloadingShoes), NULL);
|
149
|
+
CloseHandle(file);
|
150
|
+
|
151
|
+
shoes_silent_install(setup_path);
|
152
|
+
return 0;
|
153
|
+
}
|
154
|
+
|
155
|
+
static BOOL
|
156
|
+
file_exists(char *fname)
|
157
|
+
{
|
158
|
+
WIN32_FIND_DATA data;
|
159
|
+
if (FindFirstFile(fname, &data) != INVALID_HANDLE_VALUE)
|
160
|
+
return !(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
|
161
|
+
return FALSE;
|
162
|
+
}
|
163
|
+
|
164
|
+
static BOOL
|
165
|
+
reg_s(HKEY key, char* sub_key, char* val, LPBYTE data, LPDWORD data_len) {
|
166
|
+
HKEY hkey;
|
167
|
+
BOOL ret = FALSE;
|
168
|
+
LONG retv;
|
169
|
+
|
170
|
+
retv = RegOpenKeyEx(key, sub_key, 0, KEY_QUERY_VALUE, &hkey);
|
171
|
+
if (retv == ERROR_SUCCESS)
|
172
|
+
{
|
173
|
+
retv = RegQueryValueEx(hkey, val, NULL, NULL, data, data_len);
|
174
|
+
if (retv == ERROR_SUCCESS)
|
175
|
+
return TRUE;
|
176
|
+
}
|
177
|
+
return FALSE;
|
178
|
+
}
|
179
|
+
|
180
|
+
int WINAPI
|
181
|
+
WinMain(HINSTANCE inst, HINSTANCE inst2, LPSTR arg, int style)
|
182
|
+
{
|
183
|
+
HRSRC nameres, shyres, setupres;
|
184
|
+
DWORD len = 0, rlen = 0, tid = 0;
|
185
|
+
LPVOID data = NULL;
|
186
|
+
TCHAR buf[BUFSIZE], path[BUFSIZE], cmd[BUFSIZE];
|
187
|
+
HKEY hkey;
|
188
|
+
BOOL shoes;
|
189
|
+
DWORD plen;
|
190
|
+
HANDLE payload, th;
|
191
|
+
MSG msg;
|
192
|
+
char *key = "SOFTWARE\\Hackety.org\\Shoes";
|
193
|
+
|
194
|
+
nameres = FindResource(inst, "SHOES_FILENAME", RT_STRING);
|
195
|
+
shyres = FindResource(inst, "SHOES_PAYLOAD", RT_RCDATA);
|
196
|
+
if (nameres == NULL || shyres == NULL)
|
197
|
+
{
|
198
|
+
MessageBox(NULL, "This is an empty Shoes stub.", "shoes!! feel yeah!!", MB_OK);
|
199
|
+
return 0;
|
200
|
+
}
|
201
|
+
|
202
|
+
setupres = FindResource(inst, "SHOES_SETUP", RT_RCDATA);
|
203
|
+
plen = sizeof(path);
|
204
|
+
if (!(shoes = reg_s((hkey=HKEY_LOCAL_MACHINE), key, "", (LPBYTE)&path, &plen)))
|
205
|
+
shoes = reg_s((hkey=HKEY_CURRENT_USER), key, "", (LPBYTE)&path, &plen);
|
206
|
+
|
207
|
+
if (shoes)
|
208
|
+
{
|
209
|
+
sprintf(cmd, "%s\\shoes.exe", path);
|
210
|
+
if (!file_exists(cmd)) shoes = FALSE;
|
211
|
+
memset(cmd, 0, BUFSIZE);
|
212
|
+
}
|
213
|
+
|
214
|
+
if (!shoes)
|
215
|
+
{
|
216
|
+
LPTHREAD_START_ROUTINE back_action = (LPTHREAD_START_ROUTINE)shoes_auto_setup;
|
217
|
+
|
218
|
+
INITCOMMONCONTROLSEX InitCtrlEx;
|
219
|
+
InitCtrlEx.dwSize = sizeof(INITCOMMONCONTROLSEX);
|
220
|
+
InitCtrlEx.dwICC = ICC_PROGRESS_CLASS;
|
221
|
+
InitCommonControlsEx(&InitCtrlEx);
|
222
|
+
|
223
|
+
dlg = CreateDialog(inst, MAKEINTRESOURCE(ASKDLG), NULL, stub_win32proc);
|
224
|
+
ShowWindow(dlg, SW_SHOW);
|
225
|
+
|
226
|
+
if (setupres == NULL)
|
227
|
+
back_action = (LPTHREAD_START_ROUTINE)shoes_http_thread;
|
228
|
+
|
229
|
+
if (!(th = CreateThread(0, 0, back_action, inst, 0, &tid)))
|
230
|
+
return 0;
|
231
|
+
|
232
|
+
while (WaitForSingleObject(th, 10) != WAIT_OBJECT_0)
|
233
|
+
{
|
234
|
+
while (PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE))
|
235
|
+
{
|
236
|
+
TranslateMessage(&msg);
|
237
|
+
DispatchMessage(&msg);
|
238
|
+
}
|
239
|
+
}
|
240
|
+
CloseHandle(th);
|
241
|
+
|
242
|
+
if (!(shoes = reg_s((hkey=HKEY_LOCAL_MACHINE), key, "", (LPBYTE)&path, &plen)))
|
243
|
+
shoes = reg_s((hkey=HKEY_CURRENT_USER), key, "", (LPBYTE)&path, &plen);
|
244
|
+
}
|
245
|
+
|
246
|
+
if (shoes)
|
247
|
+
{
|
248
|
+
GetTempPath(BUFSIZE, buf);
|
249
|
+
data = LoadResource(inst, nameres);
|
250
|
+
len = SizeofResource(inst, nameres);
|
251
|
+
strncat(buf, (LPTSTR)data, len);
|
252
|
+
|
253
|
+
payload = CreateFile(buf, GENERIC_READ | GENERIC_WRITE,
|
254
|
+
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
|
255
|
+
len = SizeofResource(inst, shyres);
|
256
|
+
if (GetFileSize(payload, NULL) != len)
|
257
|
+
{
|
258
|
+
HGLOBAL resdata = LoadResource(inst, shyres);
|
259
|
+
data = LockResource(resdata);
|
260
|
+
SetFilePointer(payload, 0, 0, FILE_BEGIN);
|
261
|
+
SetEndOfFile(payload);
|
262
|
+
WriteFile(payload, (LPBYTE)data, len, &rlen, NULL);
|
263
|
+
}
|
264
|
+
CloseHandle(payload);
|
265
|
+
|
266
|
+
sprintf(cmd, "%s\\..\\shoes.bat", path);
|
267
|
+
ShellExecute(NULL, "open", cmd, buf, NULL, 0);
|
268
|
+
}
|
269
|
+
|
270
|
+
return 0;
|
271
|
+
}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#include <windows.h>
|
2
|
+
#include "stub32.h"
|
3
|
+
|
4
|
+
IDI_APPLICATION ICON
|
5
|
+
"..\\..\\shoes\\appwin32.ico"
|
6
|
+
|
7
|
+
ASKDLG DIALOG 20, 20, 199, 59
|
8
|
+
STYLE DS_SETFONT |DS_MODALFRAME |WS_POPUP |WS_VISIBLE |WS_SYSMENU |WS_CAPTION
|
9
|
+
CAPTION "shoes!! feel yeah!!"
|
10
|
+
FONT 8, "MS Shell Dlg"
|
11
|
+
BEGIN
|
12
|
+
CONTROL "Shoes is downloading.",IDSHOE,"STATIC",SS_LEFT |WS_CHILD |WS_VISIBLE ,8,8,179,14
|
13
|
+
CONTROL "",IDPROG,PROGRESS_CLASS,WS_CHILD |PBS_SMOOTH,8,24,179,8
|
14
|
+
CONTROL "&Cancel",IDCANCEL,"BUTTON",BS_PUSHBUTTON |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,88,38,40,14
|
15
|
+
END
|
16
|
+
|
@@ -0,0 +1,56 @@
|
|
1
|
+
|
2
|
+
READYING ONE'S SELF TO BUILD SHOES
|
3
|
+
|
4
|
+
Before building, be sure you have all the right libraries installed.
|
5
|
+
Shoes relies on Cairo, Pango, libungif, libjpeg, GTK+ 2.0, and Ruby,
|
6
|
+
as well as GCC and its linker.
|
7
|
+
|
8
|
+
To install all of these libraries on Ubuntu or Debian:
|
9
|
+
|
10
|
+
# aptitude install libcairo2-dev libpixman-1-dev libpango1.0-dev \
|
11
|
+
libungif4-dev libjpeg62-dev libgtk2.0-dev vlc libvlc-dev \
|
12
|
+
libsqlite3-dev libcurl4-openssl-dev libportaudio19-dev \
|
13
|
+
ruby1.8-dev rake
|
14
|
+
|
15
|
+
(On Ubuntu older than 8.10, actually you'll need libvlc0-dev.)
|
16
|
+
|
17
|
+
To install these libraries on Fedora:
|
18
|
+
|
19
|
+
# yum install -y giflib-devel cairo-devel libpixman-devel \
|
20
|
+
pango-devel libjpeg-devel gtk2-devel sqlite-devel vlc-devel \
|
21
|
+
libcurl-devel libportaudio-devel ruby-devel
|
22
|
+
|
23
|
+
//////////////////////////////////////////////////////////////////////////
|
24
|
+
|
25
|
+
BUILDING AND INSTALLING SHOES
|
26
|
+
|
27
|
+
To build from the source tarball:
|
28
|
+
|
29
|
+
$ make
|
30
|
+
# make install
|
31
|
+
|
32
|
+
A few options to be aware of:
|
33
|
+
|
34
|
+
* VIDEO=1 will build in VideoLAN support.
|
35
|
+
* PREFIX=/opt/shoes will install to /opt/shoes.
|
36
|
+
|
37
|
+
So, a practical use of the two options would be:
|
38
|
+
|
39
|
+
$ make VIDEO=1
|
40
|
+
# make PREFIX=/opt/shoes install
|
41
|
+
|
42
|
+
This source tarball should work for all Linux and BSD variants, but
|
43
|
+
if you need help building on your platform, consult the Shoes wiki.
|
44
|
+
<http://github.com/why/shoes/wikis>
|
45
|
+
|
46
|
+
Or, come join the Shoes mailing list, by sending an email.
|
47
|
+
|
48
|
+
To: shoes@code.whytheluckystiff.net
|
49
|
+
Cc: why@whytheluckystiff.net
|
50
|
+
Subject: subscribe
|
51
|
+
|
52
|
+
Be sure to CC the owner of the list, just as shown above.
|
53
|
+
|
54
|
+
//////////////////////////////////////////////////////////////////////////
|
55
|
+
|
56
|
+
STAYING CURRENT WITH SHOES
|
@@ -0,0 +1,144 @@
|
|
1
|
+
# shoes - abstract windowing for gtk, osx, and win32
|
2
|
+
# by why the lucky stiff, released to you under the MIT license
|
3
|
+
|
4
|
+
SRC = shoes/app.c shoes/canvas.c shoes/effects.c shoes/image.c shoes/internal.c shoes/ruby.c shoes/world.c shoes/native/gtk.c shoes/http/curl.c
|
5
|
+
OBJ = ${SRC:.c=.o}
|
6
|
+
|
7
|
+
PREFIX = /usr/local
|
8
|
+
INCS = -I. -I/usr/include -I/usr/local/include
|
9
|
+
LIBS = -L/usr/lib -L/usr/local/lib -lcairo -lpangocairo-1.0 -lgif -ljpeg -lrt
|
10
|
+
|
11
|
+
REVISION = `git rev-list HEAD | wc -l`
|
12
|
+
RUBY_INCS = `ruby -rrbconfig -e 'puts Config::CONFIG["archdir"]'`
|
13
|
+
RUBY_SO = `ruby -rrbconfig -e 'puts Config::CONFIG["RUBY_SO_NAME"]'`
|
14
|
+
RUBY_LIBS = `ruby -rrbconfig -e 'puts Config::CONFIG["LIBRUBYARG_SHARED"]'` -l${RUBY_SO}
|
15
|
+
RUBY_PREFIX = `ruby -rrbconfig -e 'puts Config::CONFIG["prefix"]'`
|
16
|
+
RUBY_PLATFORM = `ruby -rrbconfig -e 'puts RUBY_PLATFORM'`
|
17
|
+
RUBY_VERSION = `ruby -rrbconfig -e 'puts Config::CONFIG["ruby_version"]'`
|
18
|
+
CAIRO_CFLAGS = `pkg-config --cflags cairo`
|
19
|
+
CAIRO_LIB = `pkg-config --libs cairo`
|
20
|
+
PANGO_CFLAGS = `pkg-config --cflags pango`
|
21
|
+
PANGO_LIB = `pkg-config --libs pango`
|
22
|
+
GTK_CFLAGS = `pkg-config --cflags gtk+-2.0`
|
23
|
+
GTK_LIB = `pkg-config --libs gtk+-2.0`
|
24
|
+
CURL_CFLAGS = `curl-config --cflags`
|
25
|
+
CURL_LIB = `curl-config --libs`
|
26
|
+
RELEASE_NAME = `cat shoes/version.h | ruby -ne 'puts $$1.downcase if ~/SHOES_RELEASE_NAME "(.+)"/'`
|
27
|
+
HPRICOT_NAME = `ruby -rubygems -e 'puts eval(File.read("req/hpricot/gemspec")).full_name'`
|
28
|
+
SQLITE_NAME = `ruby -rubygems -e 'puts eval(File.read("req/sqlite3/gemspec")).full_name'`
|
29
|
+
JSON_NAME = `ruby -rubygems -e 'puts eval(File.read("req/json/gemspec")).full_name'`
|
30
|
+
GEM_DIR = "dist/ruby/gems/${RUBY_VERSION}"
|
31
|
+
SHOES_IDENT = "shoes ${RELEASE_NAME} (0.r${REVISION}) [${RUBY_PLATFORM}]"
|
32
|
+
|
33
|
+
VERSION = 0.r${REVISION}
|
34
|
+
CFLAGS = -DSHOES_GTK -fPIC ${INCS} ${CAIRO_CFLAGS} ${PANGO_CFLAGS} ${GTK_CFLAGS} ${CURL_CFLAGS} -I${RUBY_INCS}
|
35
|
+
LDFLAGS = -fPIC ${LIBS} ${CAIRO_LIB} ${PANGO_LIB} ${GTK_LIB} ${CURL_LIB} ${RUBY_LIBS}
|
36
|
+
OPTIONS =
|
37
|
+
|
38
|
+
ifeq (${DEBUG}, 1)
|
39
|
+
CFLAGS += -DDEBUG
|
40
|
+
OPTIONS += DEBUG
|
41
|
+
SHOES_IDENT += +debug
|
42
|
+
endif
|
43
|
+
|
44
|
+
ifeq (${VIDEO}, 1)
|
45
|
+
VLC_0_8 = $(shell vlc --version 2>/dev/null | ruby -ne 'puts $$1 if ~/VLC version (\d+\.\d+)/')
|
46
|
+
CFLAGS += -DVIDEO $(if $(filter 0.8, $(VLC_0_8)), -DVLC_0_8, -I/usr/include/vlc/plugins)
|
47
|
+
LIBS += -lvlc
|
48
|
+
OPTIONS += VIDEO
|
49
|
+
SHOES_IDENT += +video
|
50
|
+
endif
|
51
|
+
|
52
|
+
all: options dist/shoes.launch
|
53
|
+
|
54
|
+
options:
|
55
|
+
@echo build options: ${SHOES_IDENT}
|
56
|
+
@echo "CC = ${CC}"
|
57
|
+
@echo "RUBY = ${RUBY_PREFIX}"
|
58
|
+
@echo "OPTIONS =${OPTIONS}"
|
59
|
+
|
60
|
+
.c.o:
|
61
|
+
@echo CC $<
|
62
|
+
@${CC} -c ${CFLAGS} -o $@ $<
|
63
|
+
|
64
|
+
dist/libshoes.so: ${OBJ}
|
65
|
+
@echo CC -o $@
|
66
|
+
@mkdir dist
|
67
|
+
@${CC} -o $@ ${OBJ} ${LDFLAGS} -shared
|
68
|
+
|
69
|
+
dist/shoes-bin: dist/libshoes.so bin/main.o
|
70
|
+
@echo CC -o $@
|
71
|
+
@${CC} -o $@ ${LDFLAGS} bin/main.o -Ldist -lshoes
|
72
|
+
|
73
|
+
dist/shoes.launch: dist/shoes-bin
|
74
|
+
@cp platform/nix/shoes.launch dist/
|
75
|
+
@mkdir -p dist/ruby
|
76
|
+
@ln -s ${RUBY_PREFIX}/lib/ruby/1.8 dist/ruby/lib
|
77
|
+
@cp ${RUBY_PREFIX}/lib/lib${RUBY_SO}.so dist
|
78
|
+
@ln -s lib${RUBY_SO}.so dist/libruby.so.1.8
|
79
|
+
@cp -r lib dist/lib
|
80
|
+
@cp -r req/rubygems/* dist/lib
|
81
|
+
@mkdir -p ${GEM_DIR}/specifications
|
82
|
+
@mkdir -p ${GEM_DIR}/gems/${HPRICOT_NAME}
|
83
|
+
@cp -r req/hpricot/lib ${GEM_DIR}/gems/${HPRICOT_NAME}/lib
|
84
|
+
@cd req/hpricot/ext/hpricot_scan && ruby extconf.rb && make
|
85
|
+
@cp req/hpricot/ext/hpricot_scan/*.so ${GEM_DIR}/gems/${HPRICOT_NAME}/lib
|
86
|
+
@cp req/hpricot/gemspec ${GEM_DIR}/specifications/${HPRICOT_NAME}.gemspec
|
87
|
+
@mkdir -p ${GEM_DIR}/gems/${SQLITE_NAME}
|
88
|
+
@cp -r req/sqlite3/lib ${GEM_DIR}/gems/${SQLITE_NAME}/lib
|
89
|
+
@cd req/sqlite3/ext/sqlite3 && ruby extconf.rb && make
|
90
|
+
@cp req/sqlite3/ext/sqlite3/*.so ${GEM_DIR}/gems/${SQLITE_NAME}/lib
|
91
|
+
@cp req/sqlite3/gemspec ${GEM_DIR}/specifications/${SQLITE_NAME}.gemspec
|
92
|
+
@mkdir -p ${GEM_DIR}/gems/${JSON_NAME}
|
93
|
+
@cp -r req/json/lib ${GEM_DIR}/gems/${JSON_NAME}/lib
|
94
|
+
@cd req/json/ext/generator && ruby extconf.rb && make
|
95
|
+
@cd req/json/ext/parser && ruby extconf.rb && make
|
96
|
+
@mkdir -p ${GEM_DIR}/gems/${JSON_NAME}/lib/json/ext
|
97
|
+
@cp req/json/ext/**/*.so ${GEM_DIR}/gems/${JSON_NAME}/lib/json/ext
|
98
|
+
@cp req/json/gemspec ${GEM_DIR}/specifications/${JSON_NAME}.gemspec
|
99
|
+
@cp -r req/ftsearch/lib/* dist/lib
|
100
|
+
@cd req/ftsearch/ext/ftsearchrt && ruby extconf.rb && make
|
101
|
+
@cp req/ftsearch/ext/ftsearchrt/*.so dist/lib
|
102
|
+
@cd req/binject/ext/binject_c && ruby extconf.rb && make
|
103
|
+
@cp req/binject/ext/binject_c/*.so dist/lib
|
104
|
+
@cp -r samples dist/samples
|
105
|
+
@cp -r static dist/static
|
106
|
+
@rm -rf dist/**/.svn
|
107
|
+
@echo ${SHOES_IDENT} > dist/VERSION.txt
|
108
|
+
@cp README COPYING dist
|
109
|
+
@echo 'LD_LIBRARY_PATH="$$APPPATH/../lib/shoes" $$APPPATH/../lib/shoes/shoes-bin $$@' >> dist/shoes.launch
|
110
|
+
@chmod 755 dist/shoes.launch
|
111
|
+
|
112
|
+
clean:
|
113
|
+
@echo cleaning
|
114
|
+
@rm -rf dist
|
115
|
+
@rm -f ${OBJ} bin/main.o shoes-${VERSION}.tar.gz
|
116
|
+
|
117
|
+
dist: clean
|
118
|
+
@echo creating dist tarball
|
119
|
+
@mkdir -p shoes-${VERSION}
|
120
|
+
@cp -R COPYING Makefile README bin shoes samples static \
|
121
|
+
shoes-${VERSION}
|
122
|
+
@rm -f shoes-${VERSION}/bin/main.skel
|
123
|
+
@rm -rf shoes-${VERSION}/**/.svn
|
124
|
+
@tar -cf shoes-${VERSION}.tar shoes-${VERSION}
|
125
|
+
@gzip shoes-${VERSION}.tar
|
126
|
+
@rm -rf shoes-${VERSION}
|
127
|
+
|
128
|
+
install: all
|
129
|
+
@echo installing executable file to ${DESTDIR}${PREFIX}/bin
|
130
|
+
@mkdir -p ${DESTDIR}${PREFIX}/bin
|
131
|
+
@cp -f dist/shoes.launch ${DESTDIR}${PREFIX}/bin/shoes
|
132
|
+
@chmod 755 ${DESTDIR}${PREFIX}/bin/shoes
|
133
|
+
@echo installing libraries to ${DESTDIR}${PREFIX}/lib/shoes
|
134
|
+
@rm -rf ${DESTDIR}${PREFIX}/lib/shoes
|
135
|
+
@mkdir -p ${DESTDIR}${PREFIX}/lib/shoes
|
136
|
+
@cp -r dist/* ${DESTDIR}${PREFIX}/lib/shoes/
|
137
|
+
|
138
|
+
uninstall:
|
139
|
+
@echo removing executable file from ${DESTDIR}${PREFIX}/bin
|
140
|
+
@rm -f ${DESTDIR}${PREFIX}/bin/shoes
|
141
|
+
# @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
|
142
|
+
# @rm -f ${DESTDIR}${MANPREFIX}/man1/shoes.1
|
143
|
+
|
144
|
+
.PHONY: all options clean dist install uninstall
|