# See COPYING file for copyright and license details.
include config.mk
NAME = getxbook
SRC = getgbook.c getabook.c getbnbook.c
LIB = util.o
GUI = getxbookgui.tcl
DOC = README COPYING INSTALL LEGAL
EXTRAS = extras/mkpdf.sh extras/mkocrpdf.sh extras/mkdjvu.sh extras/mkocrtxt.sh extras/mkocrdjvu.sh
BIN = $(SRC:.c=)
MAN = $(SRC:.c=.1) $(GUI:.tcl=.1) $(NAME).1
OBJ = $(SRC:.c=.o) $(LIB)
all: $(BIN)
$(OBJ): util.h config.mk
$(BIN): util.a
.o:
	@echo LD $@
	@$(LD) -o $@ $< util.a $(LDFLAGS)
.c.o:
	@echo CC $<
	@$(CC) -c $(CFLAGS) $<
util.a: $(LIB)
	@echo AR $@
	@$(AR) -r -c $@ $(LIB)
	@ranlib $@
install: all
	mkdir -p $(DESTDIR)$(PREFIX)/bin
	cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
	sed "s:^set iconpath .*:set iconpath \"$(DESTDIR)$(PREFIX)/share/pixmaps\":" < $(GUI) \
	    > $(DESTDIR)$(PREFIX)/bin/$(GUI:.tcl=)
	chmod +x $(DESTDIR)$(PREFIX)/bin/getxbookgui
	mkdir -p $(DESTDIR)$(PREFIX)/share/pixmaps
	cp icons/* $(DESTDIR)$(PREFIX)/share/pixmaps/
	mkdir -p $(DESTDIR)$(PREFIX)/share/applications
	cp $(NAME).desktop $(DESTDIR)$(PREFIX)/share/applications/
	mkdir -p $(DESTDIR)$(MANPREFIX)/man1
	for f in $(MAN); do sed "s/VERSION/$(VERSION)/g" < $$f > $(DESTDIR)$(MANPREFIX)/man1/$$f; done
uninstall:
	cd $(DESTDIR)$(PREFIX)/bin && rm -f $(BIN) $(GUI:.tcl=)
	cd $(DESTDIR)$(MANPREFIX)/man1 && rm -f $(MAN)
	rm -rf $(DESTDIR)$(PREFIX)/share/$(NAME)
clean:
	rm -f -- $(BIN) $(OBJ) util.a index.html comparison.html
dist:
	mkdir -p $(NAME)-$(VERSION)
	cp $(SRC) $(GUI) $(DOC) $(MAN) util.h util.c Makefile config.mk $(NAME)-$(VERSION)
	mkdir -p $(NAME)-$(VERSION)/icons
	cp icons/* $(NAME)-$(VERSION)/icons/
	mkdir -p $(NAME)-$(VERSION)/extras
	cp $(EXTRAS) $(NAME)-$(VERSION)/extras/
	tar c $(NAME)-$(VERSION) | bzip2 -c > $(NAME)-$(VERSION).tar.bz2
	gpg -b < $(NAME)-$(VERSION).tar.bz2 > $(NAME)-$(VERSION).tar.bz2.sig
	rm -rf $(NAME)-$(VERSION)
	echo $(NAME)-$(VERSION).tar.bz2 $(NAME)-$(VERSION).tar.bz2.sig
# needs config.mk set up to build statically
dist-static: $(BIN)
	mkdir -p $(NAME)-$(VERSION)
	cp $(BIN) $(GUI) $(DOC) $(MAN) config.mk $(NAME)-$(VERSION)
	sed 's/^install: all$$/install:/' < Makefile > $(NAME)-$(VERSION)/Makefile
	mkdir -p $(NAME)-$(VERSION)/icons
	cp icons/* $(NAME)-$(VERSION)/icons/
	mkdir -p $(NAME)-$(VERSION)/extras
	cp $(EXTRAS) $(NAME)-$(VERSION)/extras/
	tar c $(NAME)-$(VERSION) | bzip2 -c > $(NAME)-$(VERSION)-static.tar.bz2
	gpg -b < $(NAME)-$(VERSION)-static.tar.bz2 > $(NAME)-$(VERSION)-static.tar.bz2.sig
	rm -rf $(NAME)-$(VERSION)
	echo $(NAME)-$(VERSION)-static.tar.bz2 $(NAME)-$(VERSION)-static.tar.bz2.sig
getxbookgui.exe: getxbookgui.tcl
	@echo STARPACK $@
	@sdx qwrap getxbookgui.tcl
	@sdx unwrap getxbookgui.kit
	@sdx wrap $@ -runtime $(W32TCLKIT)
	@rm -r getxbookgui.kit getxbookgui.vfs
# needs to be run from a mingw setup
dist-win: $(BIN) $(GUI:.tcl=.exe)
	mkdir -p $(NAME)-win
	cp $(OBJ:.o=.exe) $(GUI:.tcl=.exe) $(NAME)-win
	mkdir -p $(NAME)-win/icons
	cp icons/* $(NAME)-win/icons/
	for f in LEGAL README COPYING; do \
	sed 's/$$/\r/g' < $$f > $(NAME)-win/$$f.txt; done
	for f in *1; do \
	b=`basename $$f .1`; \
	groff -m man -T utf8 < $$f | col -bx | sed 's/$$/\r/g' > $(NAME)-win/$$b.txt; done
	zip -j $(NAME)-$(VERSION)-win.zip $(NAME)-win/*
	gpg -b < $(NAME)-$(VERSION)-win.zip > $(NAME)-$(VERSION)-win.zip.sig
	rm -rf $(NAME)-win
	echo $(NAME)-$(VERSION)-win.zip $(NAME)-$(VERSION)-win.zip.sig
# needs to be run from a mac
# currently unused thanks to kind homebrew people packaging it
dist-mac: $(BIN) $(GUI)
	mkdir -p $(NAME)-$(VERSION)/$(NAME).app/Contents/MacOS
	mkdir -p $(NAME)-$(VERSION)/$(NAME).app/Contents/Resources
	cp $(BIN) $(NAME)-$(VERSION)/$(NAME).app/Contents/MacOS/
	cp $(GUI) $(NAME)-$(VERSION)/$(NAME).app/Contents/MacOS/$(GUI:.tcl=)
	for f in $(DOC); do cp $$f $(NAME)-$(VERSION)/$$f.txt; done
	echo '
