#
# $Id: Makefile,v 1.26 1993/08/06 21:58:39 mh Exp $
#

#### Configuration section ####
LDIR		= /usr/local
BIN		= $(LDIR)/bin
LIBDIR		= $(LDIR)/lib
		# A $(LIBDIR)/tkgnats is created from this
TKGNATSLIB	= $(LIBDIR)/tkgnats
WISHPATH	= $(BIN)/wish

GNATS_ROOT	= $(LDIR)/gnats
#### XXX You most definitely will have to modify these XXX ####
GNATS_SITE	= # you-forgot-to-configure-GNATS_SITE-in-makefile
GNATS_ADDR	= # you-forgot-to-configure-GNATS_ADDR-in-makefile
####

MAKEPATH	= mkdir -p
SED		= sed

####
LIBDIR_REPL	=LIBDIR=$(LIBDIR); \#\#LIBDIR\#\#
LIBDIR_SED	=-e 's,^.*\#\#LIBDIR\#\#,$(LIBDIR_REPL),'

LIBDIR_REPL2	=set LIBDIR $(LIBDIR); \#\#LIBDIR\#\#
LIBDIR_SED2	=-e 's,^.*\#\#LIBDIR\#\#,$(LIBDIR_REPL2),'

GNATS_ROOT_REPL =GNATS_ROOT=$(GNATS_ROOT); \#\#GNATS_ROOT\#\#
GNATS_ROOT_SED  =-e 's,^.*\#\#GNATS_ROOT\#\#,$(GNATS_ROOT_REPL),'

GNATS_ROOT_REPL2=set GNATS_ROOT $(GNATS_ROOT); \#\#GNATS_ROOT\#\#
GNATS_ROOT_SED2 =-e 's,^.*\#\#GNATS_ROOT\#\#,$(GNATS_ROOT_REPL2),'

GNATS_SITE_REPL =set TkGnats(GNATS_SITE) $(GNATS_SITE); \#\#GNATS_SITE\#\#
GNATS_SITE_SED	=-e 's,^.*\#\#GNATS_SITE\#\#,$(GNATS_SITE_REPL),'

GNATS_ADDR_REPL =set TkGnats(GNATS_ADDR) $(GNATS_ADDR); \#\#GNATS_ADDR\#\#
GNATS_ADDR_SED	=-e 's,^.*\#\#GNATS_ADDR\#\#,$(GNATS_ADDR_REPL),'

TKGNATSLIB_REPL =set TkGnats(lib) $(TKGNATSLIB); \#\#TKGNATSLIB\#\#
TKGNATSLIB_SED	=-e 's,^.*\#\#TKGNATSLIB\#\#,$(TKGNATSLIB_REPL),'

WISH_SED	=-e 's,^\#!/usr/local/bin/wish,\#!$(WISHPATH),'
####

T_LIB	= _tlib
T_BIN	= _tbin


dialogs= \
 $(T_BIN)/entryDialog \
 $(T_BIN)/msgDialog \
 $(T_BIN)/sortDialog

tkgnatsbin= \
 $(T_BIN)/tkgnats \
 $(T_BIN)/tksendpr \
 $(T_BIN)/tkquerypr \
 $(T_BIN)/tkeditpr \
 $(T_BIN)/tkviewpr \
 $(dialogs)

xbmfiles= \
 $(T_LIB)/working1.xbm \
 $(T_LIB)/working2.xbm \
 $(T_LIB)/tksendpr.xbm \
 $(T_LIB)/tkgnats.xbm \
 $(T_LIB)/tkquerypr.xbm \
 $(T_LIB)/tkeditpr.xbm \
 $(T_LIB)/info.xbm

tkgnatslib= \
 $(T_LIB)/tkpr_library.t \
 $(T_LIB)/reports.t \
 $(T_LIB)/tkgnats.cf.t \
 $(T_LIB)/tkprfolder.t \
 $(xbmfiles)

all: check_cfg dirs $(tkgnatslib) $(tkgnatsbin)

check_cfg:
	@echo "checking some of the Makefile configuration variables.."
	@echo "-------------------------------------------------------"
	@if [ X$(GNATS_ADDR) = X ]; then \
	  echo "***Error: GNATS_ADDR is not set";\
	  echo "   set it to the name of the machine that gnats"; \
	  echo "   bugs are supposed to be sent to"; \
	  exit 1; \
	else \
	  echo "$(GNATS_ADDR) is the configured mail addr for GNATS PR's"; \
	fi
	@if [ ! -d $(GNATS_ROOT)/gnats-adm ]; then \
	  echo "***Warning: GNATS_ROOT=$(GNATS_ROOT) seems to be incorrect";\
	fi
	@if [ ! -d $(LIBDIR)/gnats ]; then \
	  echo "***Warning: Cannot find '$(LIBDIR)/gnats'"; \
	else \
	  ls -l $(LIBDIR)/gnats; \
	fi
	@if [ ! -f $(LIBDIR)/gnats/$(GNATS_SITE) ]; then \
echo "***Warning: Cannot find category file '$(LIBDIR)/gnats/$(GNATS_SITE)'";\
	fi
	@if [ ! -f $(WISHPATH) ]; then \
	  echo "***Warning: Cannot find Tk/Tcl shell '$(WISHPATH)'";\
	fi
	@echo "Done"

uninstall: uninstall_tkgnatsbin uninstall_tkgnatslib
uninstall_tkgnatsbin:
	for f in $(tkgnatsbin); do \
	rm -if "$(BIN)/`basename $$f`"; \
	done
uninstall_tkgnatslib:
	for f in $(tkgnatslib); do \
	rm -if "$(TKGNATSLIB)/`basename $$f`"; \
	done
	

$(T_LIB)/working1.xbm: working1.xbm Makefile
	cp working1.xbm $@
	-chmod +r $@
$(T_LIB)/working2.xbm: working2.xbm Makefile
	cp working2.xbm $@
	-chmod +r $@
$(T_LIB)/tkgnats.xbm: tkgnats.xbm Makefile
	cp tkgnats.xbm $@
	-chmod +r $@
$(T_LIB)/tkquerypr.xbm: tkquerypr.xbm Makefile
	cp tkquerypr.xbm $@
	-chmod +r $@
$(T_LIB)/tksendpr.xbm: tksendpr.xbm Makefile
	cp tksendpr.xbm $@
	-chmod +r $@
$(T_LIB)/tkeditpr.xbm: tkeditpr.xbm Makefile
	cp tkeditpr.xbm $@
	-chmod +r $@
$(T_LIB)/info.xbm: info.xbm Makefile
	cp info.xbm $@
	-chmod +r $@

clean:
	rm -rf $(T_LIB)
	rm -rf $(T_BIN)
	rm -f Package.date

dirs:
	-$(MAKEPATH) $(T_LIB)
	-$(MAKEPATH) $(T_BIN)

install: all install_tkgnatsbin install_tkgnatslib
install_tkgnatsbin:
	-$(MAKEPATH) $(BIN)
	cp $(T_BIN)/* $(BIN)/
install_tkgnatslib:
	-$(MAKEPATH) $(TKGNATSLIB)
	cp $(T_LIB)/* $(TKGNATSLIB)/

$(T_LIB)/tkprfolder.t: tkprfolder.t Makefile
	cp tkprfolder.t $@
	-chmod +r $@

$(T_LIB)/tkpr_library.t: tkpr_library.t Makefile
	$(SED) $(TKGNATSLIB_SED) <tkpr_library.t >$@
	-chmod +r $@

$(T_LIB)/reports.t: reports.t Makefile
	cp reports.t $@
	-chmod +r $@

$(T_LIB)/tkgnats.cf.t: tkgnats.cf.t Makefile
	$(SED) $(TKGNATSLIB_SED) \
	    $(LIBDIR_SED2) \
	    $(GNATS_ROOT_SED2) \
	    $(GNATS_SITE_SED) \
	    $(GNATS_ADDR_SED) \
	   <tkgnats.cf.t >$@

$(T_BIN)/tkeditpr: tkeditpr Makefile
	$(SED) $(WISH_SED) $(TKGNATSLIB_SED) \
	    $(LIBDIR_SED) \
	    $(GNATS_ROOT_SED) \
	    <tkeditpr >$@
	-chmod +x $@

$(T_BIN)/sortDialog: sortDialog Makefile
	$(SED) $(WISH_SED) <sortDialog >$@
	-chmod +x $@
$(T_BIN)/entryDialog: entryDialog Makefile
	$(SED) $(WISH_SED) <entryDialog >$@
	-chmod +x $@
$(T_BIN)/msgDialog: msgDialog Makefile
	$(SED) $(WISH_SED) $(TKGNATSLIB_SED) <msgDialog >$@
	-chmod +x $@
$(T_BIN)/tkviewpr: tkviewpr Makefile
	$(SED) $(WISH_SED) $(TKGNATSLIB_SED) <tkviewpr >$@
	-chmod +x $@
$(T_BIN)/tkgnats: tkgnats Makefile
	$(SED) $(WISH_SED) $(TKGNATSLIB_SED) <tkgnats >$@
	-chmod +x $@
$(T_BIN)/tksendpr: tksendpr Makefile
	$(SED) $(WISH_SED) $(TKGNATSLIB_SED) <tksendpr >$@
	-chmod +x $@
$(T_BIN)/tkquerypr: tkquerypr Makefile
	$(SED) $(WISH_SED) $(TKGNATSLIB_SED) <tkquerypr >$@
	-chmod +x $@

package: clean
	echo CVS > /tmp/tkgnpkg.exclude
	echo "This package was made by $$LOGNAME@`hostname` on" > Package.date
	date >> Package.date
	cd ../;tar cvXf /tmp/tkgnpkg.exclude - tkgnats | \
	compress > tkgnats.tar.Z; \
	ls -l tkgnats.tar.Z

sed_check:
	(cd $(T_BIN); fgrep usr *) >/tmp/cfg_check.bin
	(cd $(T_LIB); fgrep usr *) >/tmp/cfg_check.lib
	more /tmp/cfg_check.bin /tmp/cfg_check.lib

#
# do not use these rules !!! these are for tkgnats developement only !!
#
__all:
	make 'GNATS_SITE=wxsystems' 'GNATS_ADDR=wx-bugs@wx.gtegsc.com' all
__check:
	make 'GNATS_SITE=wxsystems' 'GNATS_ADDR=wx-bugs@wx.gtegsc.com' check_cfg
__install:
	make 'GNATS_SITE=wxsystems' 'GNATS_ADDR=wx-bugs@wx.gtegsc.com' install
