-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwrk2fit-dnd.mk
100 lines (80 loc) · 2.25 KB
/
wrk2fit-dnd.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
VSN = 20160614
DL ?= _dl
WRK ?= _wrk
OUT ?= _out
VFS ?= _vfs
#
# Deps
#
TKDND_VSN = 2.8
TKDND_WINDOWS = tkdnd$(TKDND_VSN)-win32-ix86.tar.gz
TKDND_WINDOWS_DIR = tkdnd$(TKDND_VSN)-win32
TCLKIT_VSN = 8.6.1
TCLKIT_HOST = tclkit-$(TCLKIT_VSN)-host
TCLKIT_LINUX = tclkit-$(TCLKIT_VSN)-linux-amd64
TCLKIT_WINDOWS = tclkit-$(TCLKIT_VSN)-win32-i586-xcompile
SDX_VSN = 20110317
SDX = sdx.kit
#
# Phony targets
#
.PHONY: all clean distclean
all: $(VFS)/wrk2fit-win32-$(VSN).exe
clean:
rm -rf $(OUT) $(VFS) $(WRK)
distclean: clean
rm -rf $(DL)
#
# Download deps
#
$(DL)/$(TKDND_WINDOWS):
mkdir -p $(shell dirname $@)
curl -L -o $@-part "http://downloads.sourceforge.net/project/tkdnd/Windows%20Binaries/TkDND%20$(TKDND_VSN)/tkdnd$(TKDND_VSN)-win32-ix86.tar.gz"
mv $@-part $@
$(DL)/$(TCLKIT_HOST): $(DL)/$(TCLKIT_LINUX)
cp $< $@
$(DL)/$(TCLKIT_LINUX):
mkdir -p $(shell dirname $@)
curl -L -o $@-part "http://www.rkeene.org/devel/kitcreator/kitbuild/0.8.0/$(TCLKIT_LINUX)"
mv $@-part $@
chmod +x $@
$(DL)/$(TCLKIT_WINDOWS):
mkdir -p $(shell dirname $@)
curl -L -o $@-part "http://www.rkeene.org/devel/kitcreator/kitbuild/0.8.0/$(TCLKIT_WINDOWS)"
mv $@-part $@
chmod +x $@
$(DL)/$(SDX):
mkdir -p $(shell dirname $@)
curl -L -o $@-part "https://tclkit.googlecode.com/files/sdx-$(SDX_VSN).kit"
mv $@-part $@
#
# Build admintool VFS
#
$(VFS)/wrk2fit-win32-$(VSN).vfs/.done: \
wrk2fit-dnd
mkdir -p $(shell dirname $@)
for SCRIPT in $^; do \
cp $$SCRIPT $(shell dirname $@); \
done
cd $(shell dirname $@) && mv wrk2fit-dnd main.tcl
sed -i "3ilappend auto_path lib" $(shell dirname $@)/main.tcl
touch $@
$(VFS)/wrk2fit-win32-$(VSN).vfs/.done-libs: \
$(DL)/$(TKDND_WINDOWS)
mkdir -p $(shell dirname $@)/lib/
tar -zxvf $(DL)/$(TKDND_WINDOWS) -C $(shell dirname $@)/lib/
find $(shell dirname $@)/lib -type d -exec chmod 755 {} \;
find $(shell dirname $@)/lib -type f -exec chmod 644 {} \;
touch $@
$(VFS)/wrk2fit-win32-$(VSN).exe: \
$(DL)/$(SDX) \
$(DL)/$(TCLKIT_HOST) \
$(DL)/$(TCLKIT_WINDOWS) \
$(VFS)/wrk2fit-win32-$(VSN).vfs/.done \
$(VFS)/wrk2fit-win32-$(VSN).vfs/.done-libs
$(DL)/$(TCLKIT_HOST) $(DL)/$(SDX) \
wrap $(shell basename $@) \
-runtime $(DL)/$(TCLKIT_WINDOWS) \
-vfs $(VFS)/wrk2fit-win32-$(VSN).vfs
mv $(shell basename $@) $@
chmod +x $@