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
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
|