
ImageGrid.Viewer Makefile


To check for buld/development dependencies that make can't install itself:
	$ make check

To setup the development environment:
	$ make dev

To do a default build use:
	$ make dist

In some cases making things directly starting from a clean directory
may either fail or use global version of a utility instead of the 
version specified for the app, if this happens first build the 
environment and then try again:
	$ make dev
	...
	$ make dist

To print full list of user make targets use:
	$ make help


Variables to control the build:
	APP_NAME	- Application name
	APP_BIN		- App binary name (ignored for MacOS)

	TARGET_OS	- target OS (win32, linux, darwin)
	ARCH		- target achitecture (ia32, x86, x64, ...)

	ELECTRON_DOWNOAD_URL
			- URL to download electron binary
	ELECTRON_DIST	- electron distribution file name pattern
	BUILD_MODE	- can be "repack" or "in-place" (default)


Variables to help with troubleshooting:
	IMAGEGRID_DEBUG - force show devtools on startup
			  NOTE: devtools will should start automaticalky
				if loading takes too long or if it was 
				started on last run,
	IMAGEGRID_FORCE_SHOW
			- force show viewer GUI on startup


NOTE: when setting variables avoid using spaces and other characters 
	make can get fussy about...
NOTE: cross compilation is at this time not supported, if you try it 
	and it works then 1) you got very lucky and 2) tell me about it =)
	...at least the node native packages (sharp) will likely either 
	fail or	will get compiled to the wrong arch and not be used, and 
	some non-native packages may misbehave (though I'm not aware of 
	any at this point, so report them if you encounter one).
	This is complicated by the fact that most of ImageGrid.Viewer is
	platform-agnostic and will run on almost anything and will simply 
	try to ignore broken packages and features depending on them, so
	check the console log for any odd load reports...
	...but note that cross-building and packaging is only possible 
	either without the native modules or with them pre-built for the 
	target platform, at this point.


Examples:
	# check if all dependencies are available...
	$ make check

	# make development environment...
	$ make dev

	# full build...
	$ make clean dist

	# build in repack mode...
	$ BUILD_MODE=repack make dist

	# build for darwin/macOS... (EXPERIMENTAL)
	$ TARGET_OS=darwin make clean dist

	# run with Devtools started... 
	$ IMAGEGRID_DEBUG=1 make run 

	# force show the main window... 
	$ IMAGEGRID_FORCE_SHOW=1 make run 


Help and info:
   help:                          Print make target help and exit
   version:                       Print version and exit

Dependency checking:
   check:                         Run all dependency checks
   check-web:                     Run web build dependency checks
   check-help:                    Run help/build (Makefile) dependency checks

Generic targets:
   all:                           Run the full build chain
   doc:                           Build documentation
   dev:                           Build the development environment
   dev-npm:                       Install the npm global dev package (might need sudo)
   dist:                          Build distributable package
   test-dist:                     Build testing distributable package
   deploy:                        Run ./scripts/deploy.sh on contents of DIST_DIR
   run:                           Run app in-place

Cleanup:
   clean:                         Cleanup
   clean-generated:               Clean generated files
   clean-dist:                    Clean DIST_DIR directory
   clean-all:                     Clean all

Generic components:
   js:                            Build JS modules
   app-dir-full:                  Build full app directory
   app-dir-minimal:               Build minimal app directory

Web/Browser:
   web:                           Build a browser-runnable package

Electron:
   electron-dist:                 Make electron distributable
   electron-test-dist:            Make electron test distributable
   electron-unpacked:             Make unpacked electron app
   electron-run:                  Run app in electron

Open Desktop:

Patches:
   patched-requirejs:             Patch requirejs (see: NOTES)
   unpatched-requirejs:           Unpatch requirejs

CLI:
   devel-cli:                     Install CLI interface as a link to this tree.
   cli:                           install CLI interface as independent package.


---
This file was generated by: make doc/MAKE
