# Makefile to build the ChkLogs Package
# $Id: makefile,v 1.3.2 1997/09/28 20:03:13 grimaldo Exp $
# D. Emilio Grimaldo T.
#	publish:	Creates a dir tree for tar ball (not for user)
#	install:	Installs the scripts into the system
#	docs:		Installs documentation etc. in DOCDIR
#	html:		Installs HTML manual pages in HTMLDIR
#	rpm:		Installs on the RPM build tree
VERSION  = 2.0
BUILD    = 3
RELEASEID=$(VERSION)-$(BUILD)

#----------------------------------
# Destination Site Configuration
#
ROOT 	 = /usr/local

MANDIR   = $(ROOT)/man
BINDIR   = $(ROOT)/sbin

# On BSD systems it might be `installbsd -c'
PUT	 = install

#		Documentation goes there
#
DOCDIR   = $(ROOT)/doc/chklogs-$(RELEASEID)

#		Html Documentation goes there
#
HTMLDIR   = $(ROOT)/doc/chklogs

#		Perl library directory. 
#
PERL_LIB = /usr/lib/perl5

#		Perl Executable
#
PERL_BIN = /usr/bin/perl

#		Same as in the GUI (xchklogs). You may put chklogs.pl
#		here if you want to keep the Perl distribution untouched.
#		But the you *must* also make the same change to the
#		$DEGT_LIB variable in chklogsadm and chklogs!
#
DEGT_LIB = $(ROOT)/lib/chklogs
GZIP_BIN = /bin/gzip
SYSLOG_PID = syslog.pid

#		The effective group Id used by the Unix install program
#		Examples: adm, admin, operator.
U_OPTIONS= -g adm

# include makefile.cfg

SED_SCRIPT_CHKLOGS = \
	-e s?/usr/bin/perl?$(PERL_BIN)? \
	-e s?/usr/local/lib/chklogs?$(DEGT_LIB)? \
	-e s?/bin/gzip?$(GZIP_BIN)? \
	-e s?syslog\.pid?$(SYSLOG_PID)? 

SED_SCRIPT_CHKLOGSADM = \
	-e s?/usr/bin/perl?$(PERL_BIN)? \
	-e s?/usr/local/lib/chklogs?$(DEGT_LIB)? 

#-------------------------------------------------------------
#        **** DO NOT MODIFY ANYTHING BELOW ****
#              except if you don't have `install'
#
# Components
#
MAIN =  bin/chklogs \
	bin/chklogsadm

LIBS =  bin/Chklogs.pm	\
	bin/DegtUtils.pm \
	bin/Interpret.pm \
	bin/Smtp.pm

MANPAGE= docs/chklogs.8 \
	docs/chklogs.5  \
	docs/chklogsrc.5  \
	docs/chklogsadm.8

DOCS =	docs/chklogs.txt \
	chklogs.lsm \
	chklogs.IAFA

PLUGS =	plugs/ck_uutraf \
	plugs/ck_xferlog \
	plugs/uusummary  \
	plugs/logsummary \
	plugs/cdkwrap

GUI =	

ADMIN = bugreport.txt \
	GuideMe	\
	license.txt \
	support/Register \
	support/SetupChklogs \
	support/chklogs1.gif

#----------------------------------
# Version Identification
#
#		Version Identification   
#		   Main Scripts 
VER_CHKLOGS      = 2.0
VER_CHKLOGSADM   = 1.3
VER_CHKLOGS_PL   = 1.2
VER_CHKLOGS_PM   = 1.1
VER_SMTP_PM   	 = 1.1
VER_DEGTUTILS_PM = 1.1
VER_INTERPRET_PM = 1.1

#		   Manual pages
VER_CHKLOGS_8    = 1.5
VER_CHKLOGS_5    = 1.2
VER_CHKLOGSADM_8 = 1.2

#		   Documentation
VER_CHKLOGS_TXT  = 1.7
VER_XCHKLOGS_TXT = 1.1

#		   Plug-outs
VER_CK_UUTRAF	 = 1.2
VER_CK_XFERLOG	 = 1.2
VER_LOGSUMMARY   = 1.2
VER_UUSUMMARY	 = 1.2
VER_CDKWRAP	 = 1.1

#		   Administrative
VER_CHKLOGS_LSM  = 2.0
VER_IAFA_CHKLOGS = 1.4
VER_BUGREPORT_TXT= 1.2
VER_GUIDEME      = 1.3
VER_MAKEFILE     = 1.3

#
# Distributor Site Configuration
#

PUBLISH  = /home/grimaldo/Publish
RPM      = /home/grimaldo/Rpm
PACKAGE  = chklogs-$(RELEASEID)
RELDIR   = $(PUBLISH)/$(PACKAGE)
EXTRASDIR= $(PUBLISH)/Extra
WORKDIR  = /home/grimaldo/proj/chklogs
GUIDIRSRC= ../xchklogs
RN	 = $(WORKDIR)/relnotes/rn-$(VER_CHKLOGS)
L_OPTIONS= -g projects

D_SUPPORT= $(RELDIR)/support/

#
# Targets
#
all:    install 

install: 
	@echo Installing Chklogs version  $(VER_CHKLOGS)-$(BUILD)

# 	Make sure they exist in case of non-standard root
	@$(PUT) $(U_OPTIONS) -d $(MANDIR)/man5
	@$(PUT) $(U_OPTIONS) -d $(MANDIR)/man8
	@$(PUT) $(U_OPTIONS) -d $(BINDIR)
	@$(PUT) $(U_OPTIONS) -d $(DOCDIR)
	@$(PUT) $(U_OPTIONS) -d $(HTMLDIR)
	@$(PUT) $(U_OPTIONS) -d $(DEGT_LIB)

	@$(PUT) $(U_OPTIONS) -m 0770  bin/chklogs  $(BINDIR)/
	@$(PUT) $(U_OPTIONS) -m 0770  bin/chklogsadm $(BINDIR)/
	@$(PUT) $(U_OPTIONS) -m 0660  bin/Chklogs.pm $(DEGT_LIB)/
	@$(PUT) $(U_OPTIONS) -m 0664  bin/DegtUtils.pm $(DEGT_LIB)/
	@$(PUT) $(U_OPTIONS) -m 0660  bin/Interpret.pm $(DEGT_LIB)/
	@$(PUT) $(U_OPTIONS) -m 0664  bin/Smtp.pm $(DEGT_LIB)/

	@$(PUT) $(U_OPTIONS) -m 0664  doc/chklogs.8 $(MANDIR)/man8/
	@$(PUT) $(U_OPTIONS) -m 0664  doc/chklogs.conf.5 $(MANDIR)/man5/
	@$(PUT) $(U_OPTIONS) -m 0664  doc/chklogsrc.5 $(MANDIR)/man5/
	@$(PUT) $(U_OPTIONS) -m 0664  doc/chklogsadm.8 $(MANDIR)/man8/

	@$(PUT) $(U_OPTIONS) -m 0770  plugs/ck_uutraf $(DEGT_LIB)/
	@$(PUT) $(U_OPTIONS) -m 0770  plugs/ck_xferlog $(DEGT_LIB)/
	@$(PUT) $(U_OPTIONS) -m 0770  plugs/uusummary $(DEGT_LIB)/
	@$(PUT) $(U_OPTIONS) -m 0770  plugs/logsummary $(DEGT_LIB)/
	@$(PUT) $(U_OPTIONS) -m 0770  plugs/cdkwrap $(DEGT_LIB)/

#	@echo "Backing up your existing configuration file"
#	-cp /etc/chklogs.conf  /etc/chklogs.conf.old
#	head chklogs.conf.sample /etc/chklogs.conf

docs:  
	mkdir -p $(DOCDIR)
	$(PUT) $(U_OPTIONS) -m 0664  doc/chklogs.txt $(DOCDIR)/
	@$(PUT) $(U_OPTIONS) -m 0660  chklogs.lsm $(DOCDIR)/
	@$(PUT) $(U_OPTIONS) -m 0660  chklogs.IAFA $(DOCDIR)/
#	@$(PUT) $(U_OPTIONS) -m 0660  doc/xchklogs.txt $(DOCDIR)/

	@$(PUT) $(U_OPTIONS) -m 0660  $(RN)  $(DOCDIR)/
	#$(PUT) $(U_OPTIONS) -m 0660  bugreport.txt  $(DOCDIR)/

html:
	@$(PUT) $(U_OPTIONS) -m 0644  doc/chklogs-8.html $(HTMLDIR)/
	@$(PUT) $(U_OPTIONS) -m 0644  doc/chklogs.conf-5.html $(HTMLDIR)/
	@$(PUT) $(U_OPTIONS) -m 0644  doc/chklogsrc-5.html $(HTMLDIR)/
	$(PUT) $(U_OPTIONS) -m 0644  doc/chklogsadm-8.html $(HTMLDIR)/

#-------------------------------------------------------------
#        **** DO NOT MODIFY ANYTHING BELOW ****
#               DISTRIBUTION MAINTENANCE

publish: $(MAIN) $(LIBS) $(MANPAGE) $(DOCS) $(GUI) $(PLUGS) $(ADMIN)
	@echo Preparing Release  $(RELDIR) 
	$(PUT) $(L_OPTIONS) -d -m 0770 -o grimaldo $(RELDIR)/plugs
	$(PUT) $(L_OPTIONS) -d -m 0770 -o grimaldo $(RELDIR)/doc
	$(PUT) $(L_OPTIONS) -d -m 0770 -o grimaldo $(RELDIR)/bin
	$(PUT) $(L_OPTIONS) -d -m 0770 -o grimaldo $(RELDIR)/support

	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo bin/chklogs  $(RELDIR)/bin/chklogs-dist
	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo bin/chklogsadm $(RELDIR)/bin/chklogsadm-dist
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo bin/Chklogs.pm $(RELDIR)/bin/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo bin/DegtUtils.pm $(RELDIR)/bin/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo bin/Interpret.pm $(RELDIR)/bin/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo bin/Smtp.pm $(RELDIR)/bin/

	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo docs/chklogs.8 $(RELDIR)/doc/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo docs/chklogs.5 $(RELDIR)/doc/chklogs.conf.5
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo docs/chklogsrc.5 $(RELDIR)/doc/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo docs/chklogsadm.8 $(RELDIR)/doc/

	$(PUT) $(L_OPTIONS) -m 0644 -o grimaldo $(EXTRASDIR)/chklogs-8.html $(RELDIR)/doc/
	$(PUT) $(L_OPTIONS) -m 0644 -o grimaldo $(EXTRASDIR)/chklogs.conf-5.html $(RELDIR)/doc/
	$(PUT) $(L_OPTIONS) -m 0644 -o grimaldo $(EXTRASDIR)/chklogsrc-5.html $(RELDIR)/doc/
	$(PUT) $(L_OPTIONS) -m 0644 -o grimaldo $(EXTRASDIR)/chklogsadm-8.html $(RELDIR)/doc/

	/home/grimaldo/bin/txtdoc -merge -o /tmp/chklogs.txt docs/chklogs.txt
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo /tmp/chklogs.txt $(RELDIR)/doc/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo chklogs.lsm $(RELDIR)/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo chklogs.IAFA $(RELDIR)/
#	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo $(GUIDIRSRC)/$(GUI) $(RELDIR)/doc/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo license.txt $(RELDIR)/

	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo plugs/ck_uutraf $(RELDIR)/plugs/
	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo plugs/ck_xferlog $(RELDIR)/plugs/
	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo plugs/uusummary $(RELDIR)/plugs/
	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo plugs/logsummary $(RELDIR)/plugs/
	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo plugs/cdkwrap $(RELDIR)/plugs/

	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo support/Register $(D_SUPPORT)
	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo support/SetupChklogs $(D_SUPPORT)
	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo $(EXTRASDIR)/chklogs1.gif $(D_SUPPORT)

	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo $(RN)  $(RELDIR)/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo bugreport.txt  $(RELDIR)/
	$(PUT) $(L_OPTIONS) -m 0770 -o grimaldo GuideMe  $(RELDIR)/
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo makefile  $(RELDIR)/
	
	$(PUT) $(L_OPTIONS) -m 0660 -o grimaldo /etc/chklogs.conf $(RELDIR)/chklogs.conf.sample

rpm: $(MAIN) $(MANPAGE) $(DOCS) $(GUI) $(PLUGS) $(ADMIN)
	(cd $(PUBLISH); signpackage --sign $(PACKAGE) --pgp --certname $(PACKAGE)/certificate)
	(cd $(PUBLISH) ; tar -cvf $(PACKAGE).tar $(PACKAGE)/)
	gzip $(PUBLISH)/$(PACKAGE).tar
	mv $(PUBLISH)/$(PACKAGE).tar.gz  $(RPM)/SOURCES/

target:
	# Not used by X-setup script due to weird tcl/make interaction
	@sed $(SED_SCRIPT_CHKLOGS) bin/chklogs-dist > bin/chklogs
	@sed $(SED_SCRIPT_CHKLOGSADM) bin/chklogsadm-dist > bin/chklogsadm

test_distrib:
	echo "Testing distrib target"
	echo $(PERL_BIN) $(DEGT_LIB) $(SYSLOG_PID) $(GZIP_BIN)
	echo "`date` Testing distrib target" >> make.test
	echo     $(PERL_BIN)  $(DEGT_LIB)    >> make.test
	echo     $(SYSLOG_PID)  $(GZIP_BIN)  >> make.test

test_install:
	echo "Testing install target" $(DEGT_LIB) 
	echo `date` "Testing install target"  $(DEGT_LIB) >> make.test

#
# Dependencies and Rules
#
bin/chklogs: 
	co -r$(VER_CHKLOGS) $@

bin/chklogsadm: 
	co -r$(VER_CHKLOGSADM) $@

bin/chklogs.pl: 
	co -r$(VER_CHKLOGS_PL) $@

bin/Chklogs.pm: 
	co -r$(VER_CHKLOGS_PM) $@

bin/DegtUtils.pm: 
	co -r$(VER_DEGTUTILS_PM) $@

bin/Interpret.pm: 
	co -r$(VER_INTERPRET_PM) $@

bin/Smtp.pm: 
	co -r$(VER_SMTP_PM) $@

docs/chklogs.8: 
	co -r$(VER_CHKLOGS_8) $@

docs/chklogsadm.8: 
	co -r$(VER_CHKLOGSADM_8) $@

docs/chklogs.5: 
	co -r$(VER_CHKLOGS_5) $@

docs/chklogs.txt:
	co -r$(VER_CHKLOGS_TXT) $@

docs/xchklogs.txt:
#	co -r$(VER_XCHKLOGS_TXT) $@

chklogs.lsm:
	co -r$(VER_CHKLOGS_LSM) $@

chklogs.IAFA:
	co -r$(VER_IAFA_CHKLOGS) $@

plugs/ck_uutraf:
	co -r$(VER_CK_UUTRAF) $@

plugs/cdkwrap:
	co -r$(VER_CDKWRAP) $@

plugs/ck_xferlog:
	co -r$(VER_CK_XFERLOG) $@

plugs/uusummary:
	co -r$(VER_UUSUMMARY) $@

plugs/logsummary:
	co -r$(VER_LOGSUMMARY) $@

bugreport.txt:
	co -r$(VER_BUGREPORT_TXT) $@

GuideMe:
	co -r$(VER_GUIDEME) $@

support/chklogs1.gif:
	ln -s $(EXTRASDIR)/chklogs1.gif support/chklogs1.gif
