mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-10-31 19:30:07 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			255 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Makefile
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			255 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Makefile
		
	
	
		
			Executable File
		
	
	
	
	
| #**********************************************************************
 | |
| # 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
 | |
| 
 | |
| 
 | |
| # process LESS files to CSS...
 | |
| %.css: %.less
 | |
| 	lessc $< > $@
 | |
| 
 | |
| # minify js...
 | |
| %.min.js: %.js
 | |
| 	uglifyjs $< -c -o $@
 | |
| 
 | |
| 
 | |
| 
 | |
| #**********************************************************************
 | |
| 
 | |
| # get all the .less files to process...
 | |
| CSS_FILES := $(patsubst %.less,%.css,$(wildcard *.less))
 | |
| 
 | |
| LIB_DIR=lib
 | |
| EXT_LIB_DIR=ext-lib
 | |
| CSS_DIR=css
 | |
| NW_PROJECT_FILE=package.json
 | |
| JS_FILES := $(wildcard *.js)
 | |
| HTML_FILES := $(wildcard *.html)
 | |
| 
 | |
| # get files to minify...
 | |
| JS_MIN_FILES := $(patsubst %.js,%.min.js,$(wildcard *.js))
 | |
| 
 | |
| LOGS := *.log
 | |
| 
 | |
| NODE_DIR=node_modules
 | |
| BUILD_DIR=build
 | |
| WIN_BUILD_DIR=build/Win32
 | |
| 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
 | |
| 
 | |
| DIST_DIR=dist
 | |
| 
 | |
| # XXX add version
 | |
| WIN_DIST_ZIP=$(DIST_DIR)/$(APP_NAME)-win32.zip
 | |
| MAC_DIST_ZIP=$(DIST_DIR)/$(APP_NAME)-osx.zip
 | |
| MAC_10_6_DIST_ZIP=$(DIST_DIR)/$(APP_NAME)-osx10.6.zip
 | |
| 
 | |
| 
 | |
| APP_ZIP=$(BUILD_DIR)/app.zip
 | |
| 
 | |
| 
 | |
| 
 | |
| #**********************************************************************
 | |
| 
 | |
| all: dev
 | |
| 
 | |
| 
 | |
| minify: $(JS_MIN_FILES)
 | |
| 
 | |
| 
 | |
| 
 | |
| #**********************************************************************
 | |
| # build dependencies...
 | |
| # XXX can make auto-create directories???
 | |
| 
 | |
| $(NODE_DIR):
 | |
| 	mkdir -p $(NODE_DIR)
 | |
| $(BUILD_DIR):
 | |
| 	mkdir -p $(BUILD_DIR)
 | |
| $(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)
 | |
| 
 | |
| 
 | |
| $(APP_ZIP): $(CSS_FILES) $(BUILD_DIR) $(NODE_DIR) node-deps
 | |
| 	zip -r $(APP_ZIP) $(NW_PROJECT_FILE) $(JS_FILES) $(CSS_FILES) \
 | |
| 		$(HTML_FILES) $(LIB_DIR) $(EXT_LIB_DIR) $(CSS_DIR) \
 | |
| 		$(NODE_DIR)
 | |
| 
 | |
| zip: $(APP_ZIP)
 | |
| 
 | |
| 
 | |
| 
 | |
| #**********************************************************************
 | |
| # dev env...
 | |
| 
 | |
| node-deps:
 | |
| 	npm install fs.extra
 | |
| #	npm install exif
 | |
| 
 | |
| css: $(CSS_FILES)
 | |
| 
 | |
| dev: $(CSS_FILES)
 | |
| 	unzip -uj $(wildcard targets/node-webkit/node-webkit-*-win-ia32.zip) -d .
 | |
| 	rm -f nwsnapshot.exe credits.html
 | |
| 	chmod +x *.{exe,dll}
 | |
| 
 | |
| #dev-targets:
 | |
| #	mkdir -p targets/node-webkit
 | |
| #	wget 
 | |
| 
 | |
| 
 | |
| 
 | |
| #**********************************************************************
 | |
| # build targets...
 | |
| # XXX most of the code here is duplicated, find a way to reuse sections...
 | |
| 
 | |
| # node-webkit win32
 | |
| win32: $(APP_ZIP) $(WIN_BUILD_DIR)
 | |
| 	#unzip -uj $(wildcard targets/node-webkit/node-webkit-*-win-ia32.zip) \
 | |
| 	unzip -u targets/node-webkit/node-webkit-*-win-ia32.zip \
 | |
| 		-d $(WIN_BUILD_DIR)
 | |
| 	mv $(WIN_BUILD_DIR)/node-webkit*win-ia32/* $(WIN_BUILD_DIR)/	
 | |
| 	rm -rf $(WIN_BUILD_DIR)/node-webkit*/	
 | |
| 	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}
 | |
| 	rm -f $(WIN_BUILD_DIR)/nwsnapshot.exe \
 | |
| 		$(WIN_BUILD_DIR)/credits.html
 | |
| 
 | |
| win32-dist: win32 $(DIST_DIR)
 | |
| 	# XXX include vips...
 | |
| 	# XXX build and include gid, buldcache...
 | |
| 	# XXX include scripts/utils...
 | |
| 	zip -r $(WIN_DIST_ZIP) $(WIN_BUILD_DIR)
 | |
| 
 | |
| 
 | |
| 
 | |
| # node-webkit mac
 | |
| # XXX BUG: rebuilding without cleaning will mess up folders...
 | |
| # XXX this is for 10.7+
 | |
| osx: $(APP_ZIP) $(MAC_BUILD_DIR) Info.plist
 | |
| 	unzip -u $(wildcard targets/node-webkit/node-webkit-*-osx-ia32.zip) \
 | |
| 		-d $(MAC_BUILD_DIR)
 | |
| 	cp $(APP_ZIP) $(MAC_BUILD_DIR)/node-webkit.app/Contents/Resources/app.nw
 | |
| 	# XXX not sure if this is needed...
 | |
| 	chmod +x $(MAC_BUILD_DIR)/node-webkit.app/Contents/Resources/app.nw
 | |
| 	# XXX there is something wrong with the updated Info.plist, need to investigate...
 | |
| 	cp Info.plist $(MAC_BUILD_DIR)/node-webkit.app/Contents/
 | |
| 	mv $(MAC_BUILD_DIR)/node-webkit.app $(MAC_BUILD_DIR)/$(APP_NAME).app
 | |
| 	# XXX TODO: add real credits...
 | |
| 	rm -f $(MAC_BUILD_DIR)/nwsnapshot \
 | |
| 		$(MAC_BUILD_DIR)/credits.html
 | |
| 
 | |
| # XXX this is almost identical to osx...
 | |
| # XXX BUG: rebuilding without cleaning will mess up folders...
 | |
| osx-10.6: $(APP_ZIP) $(MAC_10_6_BUILD_DIR) Info.plist
 | |
| 	unzip -u $(wildcard targets/node-webkit/node-webkit-*-osx10.6-ia32.zip) \
 | |
| 		-d $(MAC_10_6_BUILD_DIR)
 | |
| 	cp $(APP_ZIP) $(MAC_10_6_BUILD_DIR)/node-webkit.app/Contents/Resources/app.nw
 | |
| 	# XXX not sure if this is needed...
 | |
| 	chmod +x $(MAC_10_6_BUILD_DIR)/node-webkit.app/Contents/Resources/app.nw
 | |
| 	# XXX there is something wrong with the updated Info.plist, need to investigate...
 | |
| 	cp Info.plist $(MAC_10_6_BUILD_DIR)/node-webkit.app/Contents/
 | |
| 	mv $(MAC_10_6_BUILD_DIR)/node-webkit.app $(MAC_10_6_BUILD_DIR)/$(APP_NAME).app
 | |
| 	# XXX TODO: add real credits...
 | |
| 	rm -f $(MAC_10_6_BUILD_DIR)/nwsnapshot \
 | |
| 		$(MAC_10_6_BUILD_DIR)/credits.html
 | |
| 
 | |
| 
 | |
| 
 | |
| osx-dist: osx $(DIST_DIR)
 | |
| 	zip -r $(MAC_DIST_ZIP) $(MAC_BUILD_DIR)
 | |
| 
 | |
| osx-10.6-dist: osx $(DIST_DIR)
 | |
| 	zip -r $(MAC_10_6_DIST_ZIP) $(MAC_10_6_BUILD_DIR)
 | |
| 
 | |
| 
 | |
| 
 | |
| # node-webkit linux-ia32
 | |
| linux-ia32: $(APP_ZIP) $(LINUX_IA32_BUILD_DIR)
 | |
| 	tar --strip-components 1 \
 | |
| 		-xzf $(wildcard targets/node-webkit/node-webkit-*-linux-ia32.tar.gz) \
 | |
| 		-C $(LINUX_IA32_BUILD_DIR)
 | |
| 	cat $(APP_ZIP) >> $(LINUX_IA32_BUILD_DIR)/nw
 | |
| 	mv $(LINUX_IA32_BUILD_DIR)/nw $(LINUX_IA32_BUILD_DIR)/$(APP_NAME)
 | |
| 	chmod +x $(LINUX_IA32_BUILD_DIR)/*
 | |
| 	rm -f $(LINUX_IA32_BUILD_DIR)/nwsnapshot \
 | |
| 		$(LINUX_IA32_BUILD_DIR)/credits.html
 | |
| 
 | |
| linux-ia32-dist: linux-ia32 $(DIST_DIR)
 | |
| 	# XXX use tar -czf ...
 | |
| 	zip -r $(LINUX_IA32_BUILD_DIR) $(LINUX_IA32_BUILD_DIR)
 | |
| 
 | |
| 
 | |
| 
 | |
| # node-webkit linux-x64
 | |
| linux-x64: $(APP_ZIP) $(LINUX_X64_BUILD_DIR)
 | |
| 	tar --strip-components 1 \
 | |
| 		-xzf $(wildcard targets/node-webkit/node-webkit-*-linux-x64.tar.gz) \
 | |
| 		-C $(LINUX_X64_BUILD_DIR)
 | |
| 	cat $(APP_ZIP) >> $(LINUX_X64_BUILD_DIR)/nw
 | |
| 	mv $(LINUX_X64_BUILD_DIR)/nw $(LINUX_X64_BUILD_DIR)/$(APP_NAME)
 | |
| 	chmod +x $(LINUX_X64_BUILD_DIR)/*
 | |
| 	rm -f $(LINUX_X64_BUILD_DIR)/nwsnapshot \
 | |
| 		$(LINUX_X64_BUILD_DIR)/credits.html
 | |
| 
 | |
| linux-x64-dist: linux-x64 $(DIST_DIR)
 | |
| 	# XXX use tar -czf ...
 | |
| 	zip -r $(LINUX_X64_BUILD_DIR) $(LINUX_X64_BUILD_DIR)
 | |
| 
 | |
| 
 | |
| 
 | |
| # XXX android...
 | |
| # XXX iOS...
 | |
| 
 | |
| 
 | |
| all: win32 osx osx-10.6 linux-ia32 linux-x64
 | |
| 
 | |
| dist: win32-dist osx-dist
 | |
| 
 | |
| 
 | |
| #**********************************************************************
 | |
| # 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
 | |
| 
 | |
| 
 | |
| 
 | |
| #**********************************************************************
 |