5 VERSION
:= $(call git-describe
)
6 DISTROOT
:= $(DISTDIR
)/$(APPLICATION
)_
$(VERSION
)
7 node-webkit-version
:= 0.10.4
9 FIND_FILES
:= -type f
! -name
'.*'
10 FIND_JS
:= -type f
-name
'*.js'
12 SOURCES
:= $(shell cd src
&& find .
$(FIND_FILES
))
13 MY_SOURCES
:= $(shell cd src
&& find .
$(FIND_JS
) -not
-path
'./ext/*')
15 TEST_SOURCES
:= $(shell find
test/spec
$(FIND_JS
))
17 LINT_TARGETS
:= $(call jshint-stampify
,$(MY_SOURCES
))
18 TEST_TARGETS
:= $(call jstest-stampify
,$(TEST_SOURCES
))
20 JSHINTCONFIG
:= test/jshint.config
21 JSTEST_NODE_PATH
:= src
24 ICONSETS
:= $(shell find src
-type d
-name
'*.iconset')
25 ICONS
:= $(ICONSETS
:.iconset
=.icns
) $(ICONSETS
:.iconset
=.ico
)
27 IMAGEGZSRC
:= $(shell find src
-type f
-name
'*.xcf.gz')
28 IMAGESRC
:= $(shell find src
-type f
-name
'*.xcf')
29 IMAGES
:= $(IMAGEGZSRC
:.xcf.gz
=.png
) $(IMAGESRC
:.xcf
=.png
)
31 BUILT
:= $(ICONS
) $(IMAGES
)
33 HTTP_SERVER_PORT ?
= 8000
35 all: $(BUILT
) $(call pngcrush-stampify
,$(IMAGES
))
40 dist: $(addprefix $(DISTROOT
),-src.zip
-src.
tar.gz .appcache .nw
-osx-ia32.zip
-osx-x64.zip
-linux-ia32.
tar.gz
-linux-x64.
tar.gz
-win-ia32.zip
)
51 serve
: |
$(npmbindir
)/http-server
52 $(npmbindir
)/http-server
$(@D
) -p
$(HTTP_SERVER_PORT
) -c-1
61 $(RM
) $(node-webkit-archives
)
63 $(DISTROOT
)-src.zip
$(DISTROOT
)-src.
tar.gz
: | .git
65 $(call git-archive
,$@
,$(notdir $(DISTROOT
))/)
67 $(DISTROOT
).bare.zip
: | .git
71 cd src
&& $(GIT
) archive
$(call git-describe
) . |
tar -x
-C ..
/$@.tmp
72 $(MAKE
) $(BUILT
:src
/%=$@.tmp
/%)
73 $(RM
) $(IMAGESRC
:src
/%=$@.tmp
/%) $(IMAGEGZSRC
:src
/%=$@.tmp
/%)
74 cd
$@.tmp
&& $(ZIP
) ..
/$(@F
) -r .
77 %.appcache
: %.bare.zip tools
/generate-appcache
80 tools
/generate-appcache
$@.tmp
83 # Python's zipfile module generates zipfiles that node-webkit cannot
84 # read, so delegate to a real zip tool.
85 %.nw
: %.bare.zip tools
/generate-nw
88 tools
/generate-nw
$@.tmp
`echo $(*F) | sed -E 's/.+_[^0-9]+//'`
89 cd
$@.tmp
&& $(ZIP
) -r ..
/$(@F
) .
92 include rules
/programs.mk
93 include rules
/javascript.mk
94 include rules
/icons.mk
96 include rules
/node-webkit.mk
97 include rules
/pngcrush.mk
100 .PHONY
: all check distclean lint
test dist clean serve