1 # This is free and unencumbered software released into the public
2 # domain. To the extent possible under law, the author of this file
3 # waives all copyright and related or neighboring rights to it.
7 include $(dir $(realpath
$(lastword
$(MAKEFILE_LIST
))))programs.mk
9 node-webkit-platforms
:= \
10 osx-x64.zip osx-ia32.zip \
11 linux-x64.
tar.gz linux-ia32.
tar.gz \
14 node-webkit-pattern
:= \
15 $(addprefix node-webkit-v
%-,$(node-webkit-platforms
))
17 # These are like 30MB, don't download them every time.
18 .PRECIOUS
: $(node-webkit-pattern
)
20 $(node-webkit-pattern
):
22 wget
-O
$@ http
://dl.node-webkit.org
/v
$(*F
)/$(@F
) ||
($(RM
) $@
&& exit
1)
24 node-webkit-version ?
= 0.10.2
25 node-webkit-prefix ?
= node-webkit
/
27 node-webkit
= $(node-webkit-prefix
)node-webkit-v
$(firstword $(value node-webkit-version-
$1) $(node-webkit-version
))-$1
29 node-webkit-archives
= \
30 $(foreach p
,$(node-webkit-platforms
),$(call node-webkit
,$(p
)))
32 define node-webkit-package-osx
36 mv
$(@D
)/$(notdir $(2:.zip
=)) $(@
:.zip
=)
37 tools
/generate-osx-app
$(@
:.zip
=) $1
38 $(RM
) $(@
:.zip
=)/nwsnapshot
39 mv
$(@
:.zip
=)/credits.html
$(@
:.zip
=)/node-webkit\ credits.html
40 cd
$(@D
) && $(ZIP
) -r
$(@F
) $(@F
:.zip
=)
44 %-osx-ia32.zip
: %.nw
$(call node-webkit
,osx-ia32.zip
)
45 $(call node-webkit-package-osx
,$<,$(word 2,$^
))
47 %-osx-x64.zip
: %.nw
$(call node-webkit
,osx-x64.zip
)
48 $(call node-webkit-package-osx
,$<,$(word 2,$^
))
50 define node-webkit-package-linux
52 $(RM
) -r
$(@
:.
tar.gz
=)
54 mkdir
-p
$(@
:.
tar.gz
=)
55 mv
$(@D
)/$(notdir $(2:.
tar.gz
=)) $(@
:.
tar.gz
=)/nw
56 cp
-a
$1 $(@
:.
tar.gz
=)/nw
/package.nw
57 cp
-a tools
/nw-linux-wrapper
$(@
:.
tar.gz
=)/`echo $(notdir $1) | sed -E 's/-[^-]+$$//'`
58 $(RM
) $(@
:.
tar.gz
=)/nw
/nwsnapshot
59 mv
$(@
:.
tar.gz
=)/nw
/credits.html
$(@
:.
tar.gz
=)/nw
/node-webkit\ credits.html
60 tar -czf
$@
-C
$(@D
) $(@F
:.
tar.gz
=)
61 $(RM
) -r
$(@
:.
tar.gz
=)
64 %-linux-ia32.
tar.gz
: %.nw
$(call node-webkit
,linux-ia32.
tar.gz
)
65 $(call node-webkit-package-linux
,$<,$(word 2,$^
))
67 %-linux-x64.
tar.gz
: %.nw
$(call node-webkit
,linux-x64.
tar.gz
)
68 $(call node-webkit-package-linux
,$<,$(word 2,$^
))
72 node-webkit-icon
= $(shell $(UNZIP
) -p
$1 package.json | grep
-Eo
'"[^"]+.ico"' -m
1)
74 define node-webkit-package-win
77 if
$(UNZIP
) -l
$2 credits.html
> /dev
/null
; then
$(UNZIP
) -d
$(@D
)/$(notdir $(2:.zip
=)) $2; else $(UNZIP
) -d
$(@D
) $2; fi
78 mv
$(@D
)/$(notdir $(2:.zip
=)) $(@
:.zip
=)
79 $(RM
) $(@
:.zip
=)/nwsnapshot.exe
80 $(UNZIP
) -p
$< $(call node-webkit-icon
,$<) > $(@D
)/icon.ico
81 $(WINE
) tools
/rcedit.exe
$(@
:.zip
=)/nw.exe
--set-icon
$(@D
)/icon.ico
83 mv
$(@
:.zip
=)/credits.html
$(@
:.zip
=)/node-webkit\ credits.html
84 cp
-a
$< $(@
:.zip
=)/package.nw
85 mv
$(@
:.zip
=)/nw.exe
$(@
:.zip
=)/`echo $(notdir $1) | sed -E 's/-[^-]+$$/.exe/'`
86 cd
$(@D
) && $(ZIP
) -r
$(@F
) $(@F
:.zip
=)
90 %-win-ia32.zip
: %.nw
$(call node-webkit
,win-ia32.zip
)
91 $(call node-webkit-package-win
,$<,$(word 2,$^
))