1VER_MAJOR=3
2VER_MINOR=1
3VER_RELEASE=7
4VERSION=$(VER_MAJOR).$(VER_MINOR).$(VER_RELEASE)
5BUILD_DIR_RELEASE=.build_release
6BUILD_DIR_DEBUG=.build_debug
7BUNDLE_NAME=sviewgl
8OUT_NAME=sviewgl
9
10PREFIX?=/usr/local
11
12UNAME=$(shell uname -s)
13ifeq ($(UNAME), Darwin)
14	BUNDLE_NAME=sviewgl.app
15	OUT_NAME="Simple Viewer GL.app"
16endif
17
18all:    release
19
20help:
21	@echo "Usage:"
22	@echo "    make <release | debug>    - make release or debug application"
23	@echo "    make install              - install application"
24	@echo "    make <cppcheck>           - do static code verification"
25	@echo "    make <dist>               - make tar.gz source package"
26	@echo "    make <deb>                - make DEB package"
27	@echo "    make <rpm>                - make RPM package"
28	@echo "    make <clean>              - cleanup directory"
29
30release:
31	$(shell if [ ! -d $(BUILD_DIR_RELEASE) ]; then mkdir $(BUILD_DIR_RELEASE); fi)
32	cd $(BUILD_DIR_RELEASE) ; cmake -DCMAKE_BUILD_TYPE=Release -DAPP_VERSION_MAJOR:STRING=$(VER_MAJOR) -DAPP_VERSION_MINOR:STRING=$(VER_MINOR) -DAPP_VERSION_RELEASE:STRING=$(VER_RELEASE) .. ; make ; cd ..
33	rm -fr $(OUT_NAME) && cp -r $(BUILD_DIR_RELEASE)/$(BUNDLE_NAME) $(OUT_NAME)
34
35debug:
36	$(shell if [ ! -d $(BUILD_DIR_DEBUG) ]; then mkdir $(BUILD_DIR_DEBUG); fi)
37	cd $(BUILD_DIR_DEBUG) ; cmake -DCMAKE_BUILD_TYPE=Debug -DAPP_VERSION_MAJOR:STRING=$(VER_MAJOR) -DAPP_VERSION_MINOR:STRING=$(VER_MINOR) -DAPP_VERSION_RELEASE:STRING=$(VER_RELEASE) .. ; make ; cd ..
38	rm -fr $(OUT_NAME) && cp -r $(BUILD_DIR_DEBUG)/$(BUNDLE_NAME) $(OUT_NAME)
39
40cppcheck:
41	cppcheck \
42		-DEXIF_SUPPORT=1 -DLCMS2_SUPPORT=1 -DJPEG2000_SUPPORT=1 -DGIF_SUPPORT=1 \
43		-DTIFF_SUPPORT=1 -DWEBP_SUPPORT=1 -DOPENEXR_SUPPORT=1 -DIMLIB2_SUPPORT=1 \
44		-j 1 --std=c++11 --enable=all -f -I src src/ 2> cppcheck-output
45
46clean:
47	rm -fr $(BUILD_DIR_RELEASE) $(BUILD_DIR_DEBUG) $(OUT_NAME) $(BUNDLE_NAME) cppcheck-output $(BUNDLE_NAME)-$(VERSION)* $(BUNDLE_NAME)_$(VERSION)* *.log *.tasks *.sh *.xz *.list *.deb strace_out cov-int
48
49install:
50	install -m 755 -d $(DESTDIR)$(PREFIX)/bin
51	install -m 755 $(BUNDLE_NAME) $(DESTDIR)$(PREFIX)/bin
52
53dist:   clean
54	install -d $(BUNDLE_NAME)-$(VERSION)
55	cp -R cmake src res dist/debian INSTALL README.md CMakeLists.txt Makefile sviewgl.desktop res/Icon-1024.png dist/fedora/* dist/gentoo/* $(BUNDLE_NAME)-$(VERSION)
56	mv $(BUNDLE_NAME)-$(VERSION)/simpleviewer-gl-_VERSION_.ebuild $(BUNDLE_NAME)-$(VERSION)/simpleviewer-gl-$(VERSION).ebuild
57	sed "s/_VERSION_/$(VERSION)/" -i $(BUNDLE_NAME)-$(VERSION)/$(BUNDLE_NAME).spec
58	sed "s/_VERSION_/$(VERSION)/" -i $(BUNDLE_NAME)-$(VERSION)/debian/changelog
59	tar -zf $(BUNDLE_NAME)-$(VERSION).tar.gz -c $(BUNDLE_NAME)-$(VERSION)
60
61deb:    dist
62	mv $(BUNDLE_NAME)-$(VERSION).tar.gz $(BUNDLE_NAME)_$(VERSION).orig.tar.gz
63	cd $(BUNDLE_NAME)-$(VERSION) ; PREFIX=/usr dpkg-buildpackage -F -tc
64
65rpm:    dist
66	rpmbuild -ta $(BUNDLE_NAME)-$(VERSION).tar.gz
67