STATUS=@STATUS@
BRAND=@BRAND@
THEME=@THEME@
NAME=@NAME@
VERSION=@VERSION@
PRODUCT_NAME=@PRODUCT_NAME@
CODENAME=@CODENAME@
ARCH=$(shell arch)

.PHONY: graphics gfxboot-images browser-qt ahttpd boot-gfxboot boot-grub boot-splash boot indexhtml install browser-qt/design/bg.png

ifeq (,$(filter-out i586 i686 x86_64,$(ARCH)))
all: graphics gfxboot-images
else
all: graphics
endif

# graphics

# generate derivative graphics
graphics:
# make default wallpaper
	cp -al images/background4x3.png images/wallpaper.png
	cp -al images/background16x9.png backgrounds/default-wide.png
	cp -al images/product-logo.png backgrounds/product-logo.png
	cp -al images/wallpaper.png backgrounds/default.png
	cp -al images/wallpaper.png backgrounds/xdm.png
# make wallpapers for gfxboot and grub2
#       convert images/background4x3.png -resize 800x600 images/small.png
# display status
#       convert images/small.png images/product-logo.png -geometry +30+30 -composite images/grub.png
#       cp -al images/grub.png images/boot.png
# use predefined image 800x600 with logo
	if [ -n "$(STATUS)" ];then \
		mv images/boot.png images/.boot.png; \
		convert images/.boot.png -undercolor '#c62530' -fill white -font /usr/share/fonts/ttf/dejavu/DejaVuSansCondensed-Bold.ttf -style Normal -weight Normal -pointsize 30 -gravity NorthEast -draw 'text 0,55 " $(STATUS) "' images/boot.png;\
		rm -f images/.boot.png; \
		for i in images/with-logo/*.png; do \
			mv $$i $$i.png; \
			convert $$i.png -undercolor '#c62530' -fill white -font /usr/share/fonts/ttf/dejavu/DejaVuSansCondensed-Bold.ttf -style Normal -weight Normal -pointsize 30 -gravity NorthEast -draw 'text 0,0 " $(STATUS) "' $$i;\
			rm -f $$i.png; \
		done; \
	fi
	convert -size 16x16 -define png:color-type=2 -depth 8 xc:'#001056' grub2/selected_blob_c.png
	convert -colorspace YCbCr -sampling-factor 2x2 images/boot.png JPEG:images/boot.jpg
	cp -al images/boot.png images/grub.png; \
# product logo for ahttpd
	cp -al images/product-logo.png ahttpd/images/product-logo.png
# product logo for indexhtml
	cp -al images/product-logo.png indexhtml/images/product-logo.png

# browser-qt

browser-qt/design/bg.png: images/installer.png
	if [ -n "$(STATUS)" ];then \
	    convert $< -undercolor '#c62530' -fill white -font /usr/share/fonts/ttf/dejavu/DejaVuSansCondensed-Bold.ttf -style Normal -weight Normal -pointsize 30 -gravity northwest -draw 'text 0,0 " $(STATUS) "' $@; \
	else \
	    cp -a $< $@; \
	fi

browser-qt:browser-qt/design/bg.png
	install -d $(datadir)/alterator-browser-qt/design
	rcc-qt5 -binary browser-qt/theme.qrc -o $(datadir)/alterator-browser-qt/design/$(THEME).rcc
	#cp -f browser-qt/design/design-live.qss browser-qt/design/design.qss
	rcc-qt5 -binary browser-qt/theme.qrc -o $(datadir)/alterator-browser-qt/design/$(THEME)-live.rcc
	install -d $(sysconfdir)/alternatives/packages.d
	printf '/etc/alterator/design-browser-qt\t/usr/share/alterator-browser-qt/design/$(THEME).rcc\t50\n'>$(sysconfdir)/alternatives/packages.d/$(THEME).rcc

# ahttpd

ahttpd:
	for i in ahttpd/images/*.svg; do \
	    image=$${i%.svg}; \
	    convert -background none $$image.svg $$image.png ; \
	done
	install -d $(datadir)/alterator/design/styles
	cp -a ahttpd/images $(datadir)/alterator/design
	cp -a ahttpd/styles/*.css $(datadir)/alterator/design/styles

# gfxboot
gfxboot-images:
	cp -a  /usr/src/design-bootloader-source ./
	cp -a bootloader/config design-bootloader-source/
	cp -a bootloader/gfxboot.cfg design-bootloader-source/data-install/
	cp -a bootloader/gfxboot.cfg design-bootloader-source/data-boot/
	if [ -n "$(STATUS)" ];then \
	    convert images/boot.jpg -resize "800x600!" -undercolor '#c62530' -fill white -font /usr/share/fonts/ttf/dejavu/DejaVuSansCondensed-Bold.ttf -style Normal -weight Normal -pointsize 30 -gravity northwest -draw 'text 0,55 " $(STATUS) "' design-bootloader-source/data-boot/back.jpg; \
	else \
	    cp -al images/boot.jpg design-bootloader-source/data-boot/back.jpg; \
	fi
	cp -al design-bootloader-source/data-boot/back.jpg design-bootloader-source/data-install/back.jpg; \
	mv design-bootloader-source/data-install/back{,.1}.jpg
	convert -quality 97 -fill '#acdaf2' -draw 'rectangle 0,0,2,2' design-bootloader-source/data-install/back{.1,}.jpg
	rm -f design-bootloader-source/data-install/back.*.jpg
	DEFAULT_LANG='--lang-to-subst--' PATH=$(PATH):/usr/sbin make -C design-bootloader-source

boot-gfxboot:
	install -d -m 755  $(sysconfdir)/../boot/splash/$(THEME)
	install -d -m 755 $(datadir)/gfxboot/$(THEME)
	install -m 644 design-bootloader-source/message $(sysconfdir)/../boot/splash/$(THEME)
	install -m 644 design-bootloader-source/bootlogo $(datadir)/gfxboot/$(THEME)
	#install -m644 bootloader/bootlogo $(datadir)/gfxboot/$(THEME)

#bootsplash
boot-splash:
	mkdir -p $(datadir)/plymouth/themes/$(THEME)
	cp -al images/grub.jpg $(datadir)/plymouth/themes/$(THEME)/grub.jpg
	# Put logo to background*x*.png
	cp -al images/with-logo/background*x*.png $(datadir)/plymouth/themes/$(THEME)/
	cp -a bootsplash/* $(datadir)/plymouth/themes/$(THEME)
	mv $(datadir)/plymouth/themes/$(THEME)/theme.plymouth $(datadir)/plymouth/themes/$(THEME)/$(THEME).plymouth
	rm -f $(datadir)/plymouth/themes/$(THEME)/*.in
	mkdir -p $(datadir)/pixmaps
	mv $(datadir)/plymouth/themes/$(THEME)/system-logo.png $(datadir)/pixmaps

#grub2
boot-grub:
	install -d -m 755  $(sysconfdir)/../boot/grub/themes/$(THEME)
	cp -a grub2/* $(sysconfdir)/../boot/grub/themes/$(THEME)/
	install -m 644 images/boot.png $(sysconfdir)/../boot/grub/themes/$(THEME)/boot.png
	install -m 644 images/boot.jpg $(sysconfdir)/../boot/grub/themes/$(THEME)/grub.jpg

ifeq (,$(filter-out i586 i686 x86_64,$(ARCH)))
boot: boot-gfxboot boot-splash boot-grub
else
boot: boot-splash boot-grub
endif

INDEXHTML_DIR=$(datadir)/doc/indexhtml
indexhtml:
	for i in indexhtml/*.html indexhtml/*.css;do \
	  install -Dpm644 $$i $(INDEXHTML_DIR)/`basename $$i`; \
	done
	install -Dpm644 /dev/null $(INDEXHTML_DIR)/index.html
	cp -a indexhtml/images $(INDEXHTML_DIR)
	for i in alt-docs documentation;do \
	  ln -s /usr/share/doc/$$i $(INDEXHTML_DIR)/$$i; \
	done
	install -Dpm644 indexhtml/indexhtml.desktop $(datadir)/applications/indexhtml.desktop

install: browser-qt ahttpd boot indexhtml
	# install product icon
#	for size in 16 22 24 32 48 64 128; do \
#	    install -Dm 0644 icons/alt-$(THEME)-$$size.png $(datadir)/icons/hicolor/$${size}x$${size}/apps/alt-$(THEME).png; \
#	done
#	install -Dm 0644 icons/alt-$(THEME)-desktop.png $(datadir)/icons/hicolor/48x48/apps/alt-$(THEME)-desktop.png
	install -d $(datadir)/design/{$(THEME),backgrounds}
	install -d $(datadir)/icons/hicolor/32x32/apps
	cp -a backgrounds icons faces $(datadir)/design/$(THEME)
	ln -s ../../../wallpapers $(datadir)/design/$(THEME)/backgrounds/more
	install -d $(sysconfdir)/alternatives/packages.d
	echo "/usr/share/design-current	/usr/share/design/$(THEME)	000012000000" >> $(sysconfdir)/alternatives/packages.d/branding-$(BRAND)-$(THEME)-graphics
	echo "/usr/share/design/current	/usr/share/design/$(THEME)	000012000000" >> $(sysconfdir)/alternatives/packages.d/branding-$(BRAND)-$(THEME)-graphics
	#release
	mkdir -p $(sysconfdir)/buildreqs/packages/ignore.d/
	install -pD -m644 /dev/null $(sysconfdir)/buildreqs/packages/ignore.d/$(BRAND)-$(THEME)-release
	install -d $(datadir)/branding-data-current
	install -pD -m644 systemd/os-release $(datadir)/branding-data-current/release/os-release
	echo "$(PRODUCT_NAME) ($(CODENAME))" >$(datadir)/branding-data-current/release/altlinux-release
	for n in fedora redhat system; do \
	    ln -s altlinux-release $(sysconfdir)/$$n-release; \
	    ln -s altlinux-release $(datadir)/branding-data-current/release/$$n-release; \
	done
	for r in $(datadir)/branding-data-current/release/*-release; do \
	    f="$${r##*/}"; \
	    touch $(sysconfdir)/"$$f"; \
	done
	#notes
	cd notes; \
	install -d $(datadir)/alt-notes; \
	cp -a livecd-*.html $(datadir)/alt-notes; \
	cp -a release-notes.*.html $(datadir)/alt-notes; \
	for relnotes in release-notes.*.html; do \
	    suffix="$${relnotes#release-notes.}"; \
	    ln -s $$relnotes $(datadir)/alt-notes/livecd-finish.$$suffix; \
	done; \
	install -d $(datadir)/branding-data-current/alt-notes; \
	cp -a license.*.html $(datadir)/branding-data-current/alt-notes; \
	cd ..
	for r in $(datadir)/branding-data-current/alt-notes/license.*.html; do \
	    f="$${r##*/}"; \
	    touch $(datadir)/alt-notes/"$$f"; \
	done
	#slideshow
	mkdir -p $(datadir)/install2/slideshow
	mkdir -p $(sysconfdir)/alterator
	cp -a slideshow/* $(datadir)/install2/slideshow/
	install slideshow/slideshow.conf $(sysconfdir)/alterator/
	# Set English slideshow as default
	#ln -s slides-en $(datadir)/install2/slideshow/slides
	#indexhtml
	install -d $(datadir)/doc/indexhtml
	cp -a indexhtml/{*.html,images} $(datadir)/doc/indexhtml
	install -Dm755 indexhtml/indexhtml-desktop.desktop $(datadir)/kf5/kio_desktop/DesktopLinks/indexhtml.desktop
	install -Dm755 indexhtml/indexhtml-desktop.desktop $(datadir)/Desktop/indexhtml.desktop
