## makefile for gxtuner by @brummer
## please edit to your needs
## set the install Path for gxtuner

	PREFIX = /usr
	BIN_DIR = $(PREFIX)/bin
	SHARE_DIR = $(PREFIX)/share
	DESKAPPS_DIR = $(SHARE_DIR)/applications
	PIXMAPS_DIR = $(SHARE_DIR)/pixmaps
	VER = 1.7
	LIBS = `pkg-config --libs jack gtk+-2.0 gthread-2.0 fftw3f` -lzita-resampler
	CFLAGS += -Wall -ffast-math `pkg-config --cflags jack gtk+-2.0 gthread-2.0 fftw3f`
	OBJS = jacktuner.o gxtuner.o cmdparser.o pitchtracker.o main.o
	CREATEDEB = yes '' | dh_make -s -n -e $(USER)@org -c gpl -i >/dev/null
	DIRS = $(BIN_DIR)  $(DESKAPPS_DIR)  $(PIXMAPS_DIR) 
	BUILDDEB = dpkg-buildpackage -rfakeroot -b 2>/dev/null | grep dpkg-deb 
	#SOURCES =$(OBJS:%.o=%.cpp)

	## output style (bash colours)
	BLUE = "\033[1;34m"
	BROWN = "\033[0;33m"
	GREEN = "\033[0;32m"
	LGREEN = "\033[1;32m"
	RED =  "\033[1;31m"
	NONE = "\033[0m"

gxtuner : config $(OBJS) build check
	@

build :
	@rm -rf gxtuner
	@echo $(BROWN)
	- $(CXX) $(LDFLAGS) $(CFLAGS) $(OBJS) $(LIBS) -o gxtuner

check :
	@if [ -f ./gxtuner ]; then echo $(BLUE)"build finish, now run make install"; \
	else echo $(RED)"sorry, build failed"; fi
	@echo $(NONE)

config :
	@echo '#define VERSION  "$(VER)"' > config.h
	@echo '#define PIXMAPS_DIR  "$(PIXMAPS_DIR)"' >> config.h
	@echo '#ifndef HAVE_JACK_SESSION' >> config.h 
	@echo '#define HAVE_JACK_SESSION 1' >> config.h 
	@echo '#endif' >> config.h 
	@echo  ""
	@echo  $(LGREEN)"build gxtuner with jack_session support"$(GREEN)
	@echo  ""

nosession : nconf $(OBJS) build check
	@

nconf :
	@echo '#define VERSION  "$(VER)"' > config.h
	@echo '#define PIXMAPS_DIR  "$(PIXMAPS_DIR)"' >> config.h
	@echo  ""
	@echo $(RED)"build gxtuner without jack_session support !!"$(GREEN)
	@echo  ""

jacktuner.o : jacktuner.cpp jacktuner.h config.h
	@rm -rf jacktuner.o
	-$(CXX) $(LDFLAGS) $(CFLAGS) -c jacktuner.cpp

gxtuner.o : gxtuner.cpp gxtuner.h config.h
	@rm -rf gxtuner.o
	-$(CXX) $(LDFLAGS) $(CFLAGS) -c gxtuner.cpp

cmdparser.o : cmdparser.cpp cmdparser.h
	@rm -rf cmdparser.o
	-$(CXX) $(LDFLAGS) $(CFLAGS) -c cmdparser.cpp

pitchtracker.o : pitchtracker.cpp pitchtracker.h
	@rm -rf pitchtracker.o
	$(CXX) $(LDFLAGS) $(CFLAGS) -c pitchtracker.cpp

main.o : main.cpp jacktuner.h gxtuner.h cmdparser.h pitchtracker.h
	@rm -rf main.o
	-$(CXX) $(LDFLAGS) $(CFLAGS) -c main.cpp

install :
	install gxtuner $(DESTDIR)$(BIN_DIR)
	install gxtuner.desktop $(DESTDIR)$(DESKAPPS_DIR)
	install gxtuner.png $(DESTDIR)$(PIXMAPS_DIR)
	@echo $(BLUE)"gxtuner installation finish,"$(NONE)

clean :
	@echo $(RED)"clean up,"
	@rm -rf gxtuner config.h *-stamp *~ *.o
	@echo ". ." $(BLUE)", done"$(NONE)

clean-full :
	@echo $(RED)"clean up,"
	@rm -rf gxtuner config.h *-stamp *~ *.o
	@rm -rf ./debian/*.log ./debian/*.substvars ./debian/gxtuner
	@echo ". ." $(BLUE)", done"$(NONE)

tar : clean-full
	@cd ../ && \
	tar -cf gxtuner-$(VER).tar.bz2 --bzip2 gxtuner-$(VER)
	@echo $(LGREEN)"build gxtuner-"$(VER)".tar.bz2"$(NONE)

dist-tar : clean
	@cd ../ && \
	tar -cf gxtuner-$(VER)-nopkg.tar.bz2 --bzip2 gxtuner-$(VER) --exclude=debian
	@echo $(LGREEN)"build gxtuner-"$(VER)"-nopkg.tar.bz2"$(NONE)

deb : 
	@rm -rf ./debian
	@echo $(BLUE)"try to build debian package, that may take some time"$(NONE)
	-@ $(CREATEDEB)
	-@echo $(DIRS) > ./debian/dirs
	-@ if $(BUILDDEB); then echo ". ." $(GREEN)", done"$(NONE); else \
     echo $(RED)"sorry, build fail"$(NONE); fi

uninstall :
	rm -rf $(BIN_DIR)/gxtuner $(DESKAPPS_DIR)/gxtuner.desktop $(PIXMAPS_DIR)/gxtuner.png
	@echo $(RED)"uninstall gxtuner, . . . finish"$(NONE)

