#	---------------------------------------------------------------------------------
#
#	makefile
#
#	Main make file that invokes the custom ones
#
#	Project: pgjobs
#	Author:  Zlatko Michailov
#	Created:  8-Jun-2004
#	Updated:  9-Jun-2004
#	Updated: 14-Jan-2004
#
#	This file is provided as is, with no warranty. Use at your own risk.
#
#	Copyright (c) 2004, Zlatko Michailov
#
#	---------------------------------------------------------------------------------
#
#	Possible goals:
#		all (default)	- FULL build - all binaries are re-compiled
#		quick			- QUICK build - compiled binaries are re-used
#		clean_distrib	- Clean up distrib but preserve compiled binaries
#		clean			- Clean up distrib and compiled binaries
#		install			- Install from distrib
#
#	---------------------------------------------------------------------------------



ifeq "${MAKECMDGOALS}" "quick"
	BUILD=QUICK
else
	BUILD=FULL
endif


VERSION=`grep BuildVersion src/pgjobs.conf | gawk -F '=' '{print $$2}'`



#---------------------------------------------------------------------------------
#	Full build: cleanup already built binaries and build from scratch
#---------------------------------------------------------------------------------

all: init clean done



#---------------------------------------------------------------------------------
#	Quick build: build (with whatever is already compiled)
#---------------------------------------------------------------------------------

quick: init clean_distrib done



#---------------------------------------------------------------------------------
#	Init: init build
#---------------------------------------------------------------------------------
init:
	@echo
	@date +"%Y.%m.%d %T"
	@echo "-------------------"
	@echo
	@echo "${BUILD} build of pgjobs ${VERSION}"
	@echo



#---------------------------------------------------------------------------------
#	Done: complete build
#---------------------------------------------------------------------------------
done: fixate
	@echo
	@echo "Done."
	@echo
	@echo "-------------------"
	@date +"%Y.%m.%d %T"
	@echo



#---------------------------------------------------------------------------------
#	Fixate version: record the current build ID in distrib/pgjobs.conf
#---------------------------------------------------------------------------------

fixate: distrib
	@echo
	@echo "Fixate distribution version"
	@echo "---------------------------"
	@echo "system=${VERSION}"	>> distrib/pgjobs.conf
	@echo "master=1"			>> distrib/pgjobs.conf
	@echo ""					>> distrib/pgjobs.conf



#---------------------------------------------------------------------------------
#	Distrib: create a distribution
#---------------------------------------------------------------------------------
	
distrib: build
	@echo
	@echo "Create distribution"
	@echo "-------------------"
	cp src/agent/pgjobs			distrib/app
	cp src/agent/pgjobsagent	distrib/app
	cp src/db/enabledb.sql		distrib/app
	cp src/db/disabledb.sql		distrib/app
	cp src/db/install-plpgsql	distrib/app
	cp src/db/psql1				distrib/app
	cp src/support/uninstall	distrib/app
	cp src/support/pgjobs		distrib/etc
	cp src/support/install		distrib
	cp src/support/pgjobs.conf	distrib



#---------------------------------------------------------------------------------
#	Build: build binaries, i.e. invoke other make sessions
#---------------------------------------------------------------------------------
	
build: 
	@echo
	@echo "Build binaries"
	@echo "--------------"
	${MAKE} --directory=src/agent



#---------------------------------------------------------------------------------
#	Cleanup: remove distrib area and binaries that are already built
#---------------------------------------------------------------------------------

clean: clean_distrib
	-${MAKE} --quiet --directory=src/agent clean
	


#---------------------------------------------------------------------------------
#	Cleanup: clean up distrib area
#---------------------------------------------------------------------------------

clean_distrib:
	@echo
	@echo "Cleanup workarea"
	@echo "----------------"
	rm -rf distrib
	mkdir distrib
	mkdir distrib/etc
	mkdir distrib/app
	


#---------------------------------------------------------------------------------
#	Install: invoke distrib/install
#---------------------------------------------------------------------------------

install:
	distrib/install



