7 VERSION
:= $(call git-describe
)
8 DISTROOT
:= $(DISTDIR
)/$(APPLICATION
)_
$(VERSION
)
9 node-webkit-version
:= 0.10.4
11 FIND_FILES
:= -type f
! -name
'.*'
12 FIND_JS
:= -type f
-name
'*.js'
14 SOURCES
:= $(shell cd src
&& find .
$(FIND_FILES
))
15 MY_SOURCES
:= $(shell cd src
&& find .
$(FIND_JS
) -not
-path
'./ext/*')
17 TEST_SOURCES
:= $(shell find
test/spec
$(FIND_JS
))
19 LINT_TARGETS
:= $(call jshint-stampify
,$(MY_SOURCES
))
20 TEST_TARGETS
:= $(call jstest-stampify
,$(TEST_SOURCES
))
22 JSHINTCONFIG
:= test/jshint.config
23 JSTEST_NODE_PATH
:= src
26 ICONSETS
:= $(shell find src
-type d
-name
'*.iconset')
27 ICONS
:= $(ICONSETS
:.iconset
=.icns
) $(ICONSETS
:.iconset
=.ico
)
29 IMAGEGZSRC
:= $(shell find src
-type f
-name
'*.xcf.gz')
30 IMAGESRC
:= $(shell find src
-type f
-name
'*.xcf')
31 IMAGES
:= $(IMAGEGZSRC
:.xcf.gz
=.png
) $(IMAGESRC
:.xcf
=.png
)
33 BUILT
:= $(ICONS
) $(IMAGES
)
35 HTTP_SERVER_PORT ?
= 8000
37 all: $(BUILT
) $(call pngcrush-stampify
,$(IMAGES
))
42 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
)
53 serve
: |
$(npmbindir
)/http-server
54 $(npmbindir
)/http-server
$(@D
) -p
$(HTTP_SERVER_PORT
) -c-1
63 $(RM
) $(node-webkit-archives
)
65 $(DISTROOT
)-src.zip
$(DISTROOT
)-src.
tar.gz
: | .git
67 $(call git-archive
,$@
,$(notdir $(DISTROOT
))/)
69 $(DISTROOT
).bare.zip
: | .git
73 cd src
&& $(GIT
) archive
$(call git-describe
) . |
tar -x
-C ..
/$@.tmp
74 $(MAKE
) $(BUILT
:src
/%=$@.tmp
/%)
75 $(RM
) $(IMAGESRC
:src
/%=$@.tmp
/%) $(IMAGEGZSRC
:src
/%=$@.tmp
/%)
76 cd
$@.tmp
&& $(ZIP
) ..
/$(@F
) -r .
79 %.appcache
: %.bare.zip tools
/generate-appcache
82 tools
/generate-appcache
$@.tmp
85 # Python's zipfile module generates zipfiles that node-webkit cannot
86 # read, so delegate to a real zip tool.
87 %.nw
: %.bare.zip tools
/generate-nw
90 tools
/generate-nw
$@.tmp
`echo $(*F) | sed -E 's/.+_[^0-9]+//'`
91 cd
$@.tmp
&& $(ZIP
) -r ..
/$(@F
) .
94 include rules
/programs.mk
95 include rules
/javascript.mk
96 include rules
/icons.mk
97 include rules
/node-webkit.mk
98 include rules
/pngcrush.mk
101 .PHONY
: all check distclean lint
test dist clean serve