| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | #**********************************************************************
 | 
					
						
							|  |  |  | # TODO: build to a BUILD_DIR...
 | 
					
						
							|  |  |  | # TODO: build all target platforms...
 | 
					
						
							|  |  |  | #	- Windows (AppJS)
 | 
					
						
							|  |  |  | #	- MacOSX (AppJS)
 | 
					
						
							|  |  |  | #	- Windows8 (native?) XXX
 | 
					
						
							|  |  |  | #	- PhoneGap-remote
 | 
					
						
							|  |  |  | #	  push and api call to fetch and rebuild
 | 
					
						
							|  |  |  | #	- PhoneGap-local XXX
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | APP_NAME=ImageGrid.Viewer | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-09 18:39:01 +03:00
										 |  |  | NODE_VERSION=v5.10.0 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | # process LESS files to CSS...
 | 
					
						
							|  |  |  | %.css: %.less | 
					
						
							|  |  |  | 	lessc $< > $@ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # minify js...
 | 
					
						
							|  |  |  | %.min.js: %.js | 
					
						
							|  |  |  | 	uglifyjs $< -c -o $@ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #**********************************************************************
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # get all the .less files to process...
 | 
					
						
							| 
									
										
										
										
											2014-07-20 03:00:24 +04:00
										 |  |  | #LESS_FILES := $(shell find . -type f -name '*.less')
 | 
					
						
							|  |  |  | #CSS_FILES := $(patsubst %.less,%.css,$(LESS_FILES))
 | 
					
						
							|  |  |  | CSS_FILES := $(patsubst %.less,%.css,$(wildcard css/*.less)) | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | LIB_DIR=lib | 
					
						
							|  |  |  | EXT_LIB_DIR=ext-lib | 
					
						
							|  |  |  | CSS_DIR=css | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | FEATURES_DIR=features | 
					
						
							| 
									
										
										
										
											2016-05-26 05:36:28 +03:00
										 |  |  | WORKERS_DIR=workers | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | NW_PROJECT_FILE=package.json | 
					
						
							|  |  |  | JS_FILES := $(wildcard *.js) | 
					
						
							|  |  |  | HTML_FILES := $(wildcard *.html) | 
					
						
							| 
									
										
										
										
											2014-11-16 04:40:32 +03:00
										 |  |  | CHROME_APP_KEY=chrome-app.pem | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | # get files to minify...
 | 
					
						
							|  |  |  | JS_MIN_FILES := $(patsubst %.js,%.min.js,$(wildcard *.js)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | LOGS := *.log | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | NODE_DIR=node_modules | 
					
						
							|  |  |  | BUILD_DIR=build | 
					
						
							| 
									
										
										
										
											2014-11-16 04:40:32 +03:00
										 |  |  | CHROME_APP_BUILD_DIR=build/Chrome-App/ImageGrid.Viewer | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | WIN_BUILD_DIR=build/Win64 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | MAC_BUILD_DIR=build/MacOSX | 
					
						
							|  |  |  | MAC_10_6_BUILD_DIR=build/MacOSX-10.6 | 
					
						
							|  |  |  | LINUX_IA32_BUILD_DIR=build/Linux-ia32 | 
					
						
							|  |  |  | LINUX_X64_BUILD_DIR=build/Linux-x64 | 
					
						
							|  |  |  | ANDROID_BUILD_DIR=build/Android | 
					
						
							|  |  |  | IOS_BUILD_DIR=build/iOS | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | DIST_DIR=./dist | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | # XXX add version
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | WIN_DIST_ZIP=$(DIST_DIR)/$(APP_NAME)-win64.zip | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | MAC_DIST_ZIP=$(DIST_DIR)/$(APP_NAME)-osx.zip | 
					
						
							|  |  |  | MAC_10_6_DIST_ZIP=$(DIST_DIR)/$(APP_NAME)-osx10.6.zip | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | APP_ZIP=$(BUILD_DIR)/package.nw | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #**********************************************************************
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | all: dev | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | minify: $(JS_MIN_FILES) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #**********************************************************************
 | 
					
						
							|  |  |  | # build dependencies...
 | 
					
						
							|  |  |  | # XXX can make auto-create directories???
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | $(NODE_DIR): node-deps | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | $(BUILD_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(BUILD_DIR) | 
					
						
							| 
									
										
										
										
											2014-11-16 04:40:32 +03:00
										 |  |  | $(CHROME_APP_BUILD_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(CHROME_APP_BUILD_DIR) | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | $(WIN_BUILD_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(WIN_BUILD_DIR) | 
					
						
							|  |  |  | $(MAC_BUILD_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(MAC_BUILD_DIR) | 
					
						
							|  |  |  | $(MAC_10_6_BUILD_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(MAC_10_6_BUILD_DIR) | 
					
						
							|  |  |  | $(LINUX_IA32_BUILD_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(LINUX_IA32_BUILD_DIR) | 
					
						
							|  |  |  | $(LINUX_X64_BUILD_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(LINUX_X64_BUILD_DIR) | 
					
						
							|  |  |  | $(ANDROID_BUILD_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(ANDROID_BUILD_DIR) | 
					
						
							|  |  |  | $(IOS_BUILD_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(IOS_BUILD_DIR) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $(DIST_DIR): | 
					
						
							|  |  |  | 	mkdir -p $(DIST_DIR) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | $(APP_ZIP): $(CSS_FILES) $(BUILD_DIR) $(NODE_DIR) $(NW_PROJECT_FILE) \ | 
					
						
							|  |  |  | 	$(JS_FILES) $(CSS_FILES) $(HTML_FILES) | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 	zip -r $(APP_ZIP) $(NW_PROJECT_FILE) $(JS_FILES) $(CSS_FILES) \
 | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 		$(HTML_FILES) $(LIB_DIR) $(EXT_LIB_DIR) $(FEATURES_DIR) \
 | 
					
						
							| 
									
										
										
										
											2016-05-26 05:36:28 +03:00
										 |  |  | 		$(WORKERS_DIR) $(CSS_DIR) \
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | 		$(NODE_DIR)/app-module-path | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | zip: $(APP_ZIP) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #**********************************************************************
 | 
					
						
							|  |  |  | # dev env...
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-08 17:50:11 +04:00
										 |  |  | # see: package.json for a list...
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | node-deps: | 
					
						
							| 
									
										
										
										
											2014-09-08 17:50:11 +04:00
										 |  |  | 	npm install | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-09 18:39:01 +03:00
										 |  |  | sharp: node-deps | 
					
						
							|  |  |  | 	cd node_modules/sharp/ | 
					
						
							|  |  |  | 	node-gyp --target=$(NODE_VERSION) rebuild | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-03 06:43:23 +03:00
										 |  |  | css: $(CSS_FILES) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | dev: css | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 	#unzip -uj $(wildcard targets/nwjs/nwjs-*-win-ia32.zip) -d . | 
					
						
							| 
									
										
										
										
											2014-07-20 03:00:24 +04:00
										 |  |  | 	#rm -f nwsnapshot.exe credits.html | 
					
						
							|  |  |  | 	#chmod +x *.{exe,dll} | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | #dev-targets:
 | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | #	mkdir -p targets/nwjs
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | #	wget 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #**********************************************************************
 | 
					
						
							|  |  |  | # build targets...
 | 
					
						
							|  |  |  | # XXX most of the code here is duplicated, find a way to reuse sections...
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-16 04:40:32 +03:00
										 |  |  | chrome-app: $(APP_ZIP) $(CHROME_APP_BUILD_DIR) | 
					
						
							|  |  |  | 	unzip -u $(APP_ZIP) -d $(CHROME_APP_BUILD_DIR) | 
					
						
							|  |  |  | 	cp manifest.json $(CHROME_APP_BUILD_DIR) | 
					
						
							| 
									
										
										
										
											2014-11-16 16:49:12 +03:00
										 |  |  | 	cp -R images $(CHROME_APP_BUILD_DIR) | 
					
						
							| 
									
										
										
										
											2014-11-16 04:40:32 +03:00
										 |  |  | 	rm -rf $(CHROME_APP_BUILD_DIR)/node_modules/ | 
					
						
							| 
									
										
										
										
											2014-11-16 16:49:12 +03:00
										 |  |  | 	# this needs to be OS independent... | 
					
						
							|  |  |  | 	chrome --pack-extension=$(CHROME_APP_BUILD_DIR) --pack-extension-key=$(CHROME_APP_KEY) | 
					
						
							| 
									
										
										
										
											2014-11-16 04:40:32 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | # nwjs win64
 | 
					
						
							| 
									
										
										
										
											2016-05-08 18:27:59 +03:00
										 |  |  | # XXX include exiftool???
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | # XXX include scripts/utils???
 | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | win64: $(APP_ZIP) $(WIN_BUILD_DIR) | 
					
						
							| 
									
										
										
										
											2016-05-07 02:14:16 +03:00
										 |  |  | 	rm -rf $(WIN_BUILD_DIR) | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 	unzip -u targets/nwjs/nwjs-*-win-x64.zip \
 | 
					
						
							|  |  |  | 		-d $(WIN_BUILD_DIR) | 
					
						
							| 
									
										
										
										
											2016-05-07 02:14:16 +03:00
										 |  |  | 	mv -uf $(WIN_BUILD_DIR)/nwjs*win-x64/* $(WIN_BUILD_DIR)/ | 
					
						
							|  |  |  | 	rm -rf $(WIN_BUILD_DIR)/nwjs*/ | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 	cat $(APP_ZIP) >> $(WIN_BUILD_DIR)/nw.exe | 
					
						
							|  |  |  | 	mv $(WIN_BUILD_DIR)/nw.exe $(WIN_BUILD_DIR)/$(APP_NAME).exe | 
					
						
							|  |  |  | 	chmod +x $(WIN_BUILD_DIR)/*.{exe,dll} | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | 	cp -vR \
 | 
					
						
							|  |  |  | 		$(NODE_DIR) $(WIN_BUILD_DIR) | 
					
						
							| 
									
										
										
										
											2016-05-05 14:40:58 +03:00
										 |  |  | 	cp -vR "`which exiftool`" $(WIN_BUILD_DIR) | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | 	# cleanup nwjs-sdk... | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 	rm -f $(WIN_BUILD_DIR)/nwsnapshot.exe \
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | 		$(WIN_BUILD_DIR)/payload.exe \
 | 
					
						
							|  |  |  | 		$(WIN_BUILD_DIR)/chromedriver.exe \
 | 
					
						
							|  |  |  | 		$(WIN_BUILD_DIR)/nwjc.exe \
 | 
					
						
							| 
									
										
										
										
											2016-04-30 03:38:52 +03:00
										 |  |  | 		$(WIN_BUILD_DIR)/credits.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | win64-dist: win64 $(DIST_DIR) | 
					
						
							|  |  |  | 	zip -r $(WIN_DIST_ZIP) $(WIN_BUILD_DIR) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | # XXX OSX
 | 
					
						
							|  |  |  | # XXX Linux
 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | # XXX android...
 | 
					
						
							|  |  |  | # XXX iOS...
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | all: win64 | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-02 15:12:18 +03:00
										 |  |  | dist: win64-dist | 
					
						
							| 
									
										
										
										
											2014-07-20 02:25:36 +04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #**********************************************************************
 | 
					
						
							|  |  |  | # cleanup...
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | clean-dev: | 
					
						
							|  |  |  | 	rm -rf *.exe *.dll *.pak | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | clean-build: | 
					
						
							|  |  |  | 	rm -rf $(BUILD_DIR) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | clean: clean-build | 
					
						
							|  |  |  | 	rm -f $(CSS_FILES) $(JS_MIN_FILES) $(LOGS) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | clean-all: clean clean-dev | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #**********************************************************************
 |