## $Id: Makefile.in,v 1.28 1997/05/25 19:40:43 luethje Exp $
##
## ISDN accounting for isdn4linux.
##
## Copyright 1995, 1997 by Andreas Kool (akool@Kool.f.EUnet.de)
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2, or (at your option)
## any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## $Log: Makefile.in,v $
## Revision 1.28  1997/05/25 19:40:43  luethje
## isdnlog:  close all files and open again after kill -HUP
## isdnrep:  support vbox version 2.0
## isdnconf: changes by Roderich Schupp <roderich@syntec.m.EUnet.de>
## conffile: ignore spaces at the end of a line
##
## Revision 1.27  1997/05/20 19:00:51  luethje
## some primitve changes
##
## Revision 1.26  1997/05/19 22:58:02  luethje
## - bugfix: it is possible to install isdnlog now
## - improved performance for read files for vbox files and mgetty files.
## - it is possible to decide via config if you want to use avon or
##   areacode.
##
## Revision 1.25  1997/05/17 01:08:11  luethje
## some bugfixes
##
## Revision 1.24  1997/05/15 22:32:41  luethje
## new version
##
## Revision 1.23  1997/05/11 22:59:14  luethje
## new version
##
## Revision 1.22  1997/05/10 01:20:52  luethje
## some primitive changes
##
## Revision 1.21  1997/05/09 23:30:37  luethje
## isdnlog: new switch -O
## isdnrep: new format %S
## bugfix in handle_runfiles()
##
## Revision 1.20  1997/05/06 22:13:21  luethje
## bugfixes in HTML-Code of the isdnrep
##
## Revision 1.19  1997/05/05 21:22:14  luethje
## new version
##
## Revision 1.18  1997/05/04 20:19:34  luethje
## README completed
## isdnrep finished
## interval-bug fixed
##
## Revision 1.17  1997/04/20 23:44:46  luethje
## some primitve changes
##
## Revision 1.16  1997/04/20 22:55:14  luethje
## isdnrep has new features (Documentation will follow ;-)):
##   -variable format string
##   -can create html output (option -w1 or ln -s isdnrep isdnrep.cgi)
##    idea and design by Dirk Staneker (dirk.staneker@student.uni-tuebingen.de
## bugfix of processor.c from akool
##
## Revision 1.15  1997/04/17 23:29:39  luethje
## new structure of isdnrep completed.
##
## Revision 1.14  1997/04/16 22:22:43  luethje
## some bugfixes, README completed
##
## Revision 1.13  1997/04/15 22:36:58  luethje
## allows the character `"' in the program argument like the shell.
## some bugfixes.
##
## Revision 1.12  1997/04/15 00:19:53  luethje
## replace variables: some bugfixes, README comleted
##
## Revision 1.11  1997/04/10 23:32:04  luethje
## Added the feature, that environment variables are allowed in the config files.
##
## Revision 1.10  1997/04/08 21:56:42  luethje
## Create the file isdn.conf
## some bug fixes for pid and lock file
## make the prefix of the code in `isdn.conf' variable
##
## Revision 1.9  1997/04/08 00:02:05  luethje
## Bugfix: isdnlog is running again ;-)
## isdnlog creates now a file like /var/lock/LCK..isdnctrl0
## README completed
## Added some values (countrycode, areacode, lock dir and lock file) to
## the global menu
##
## Revision 1.8  1997/04/06 21:07:25  luethje
## renamed file isdnrep.c to rep_main.c and function.c to isdnrep.c
##
## Revision 1.7  1997/04/03 22:32:36  luethje
## copy the old config files into the new dirctory and create the new config files.
##
## Revision 1.6  1997/04/03 08:56:58  fritz
## Bugfix: Changes for bash-2.00.0:
##         workaround for empty list in for-loops.
##         workaround for missing allow_null_glob_expansion
## Bugfix: CONFIG_HASX11 was not reset on non-X11 systems.
##
## Revision 1.5  1997/03/24 22:52:00  luethje
## isdnrep completed.
##
## Revision 1.4  1997/03/24 04:03:12  fritz
## Added uninstall target, changed rootperm target.
##
## Revision 1.3  1997/03/24 01:42:31  fritz
## Added capbility to override CFLAGS from commandline.
##
## Revision 1.2  1997/03/23 23:11:48  luethje
## improved performance
##
## Revision 1.1  1997/03/23 19:22:33  fritz
## Make isdnlog configurable.
##
## Revision 2.6.37  1997/02/11  17:53:19  akool

.SUFFIXES:
.SUFFIXES: .c .o

SHELL			:= /bin/sh
GENCONF   := install/genconf

#
# autoconf generic stuff
#
PREFIX			:= @prefix@
EXEC_PREFIX		:= @exec_prefix@
BINDIR			:= @bindir@
SBINDIR			:= @sbindir@
LIBEXECDIR		:= @libexecdir@
DATADIR			:= @datadir@
SYSCONFDIR		:= @sysconfdir@
SHAREDSTATEDIR	:= @sharedstatedir@
LOCALSTATEDIR	:= @localstatedir@
LIBDIR			:= @libdir@
INFODIR			:= @infodir@
INCLUDEDIR		:= @includedir@
OLDINCLUDEDIR	:= @oldincludedir@
MANDIR			:= @mandir@
MAN1DIR			:= $(MANDIR)/man1
MAN8DIR			:= $(MANDIR)/man8
MAN1EXT			:= .1
MAN8EXT			:= .8
SRCDIR			:= @srcdir@

#
# end of autoconf generic stuff
#

#
# autoconf isdnlog specific stuff
#
INSTALL					:= @INSTALL@
INSTALL_DIR			:= $(INSTALL) -m 0755 -o 0 -g 0 -d
INSTALL_SBIN		:= $(INSTALL) -m 0700 -o 0 -g 0
INSTALL_BIN			:= $(INSTALL) -m 0755 -o 0 -g 0
INSTALL_DATA		:= $(INSTALL) -m 0644 -o 0 -g 0

LIBISDNDIR		:= @LIBISDNDIR@
I4LCONFDIR		:= @I4LCONFDIR@
CONFFILE  		:= @CONFFILE@
CALLERIDFILE  := @CALLERIDFILE@
OLDCONFDIR		:= @OLDCONFDIR@
OLDCONFFILE 	:= @OLDCONFFILE@
LIBAREA				:= @LIBAREA@
RUNDIR				:= @RUNDIR@
DBMLIB				:= @DBMLIB@
POSTGRES			:= @POSTGRES@
POSTGRESDIR		:= @POSTGRESDIR@
SERV_PORT			:= @SERV_PORT@
USERFILE			:= @USERFILE@
DEFS          :=

export LOGFILE       := @LOGFILE@
export COUNTRYCODE   := @COUNTRYCODE@
export COUNTRYPREFIX := @COUNTRYPREFIX@
export AREACODE      := @AREACODE@
export AREAPREFIX    := @AREAPREFIX@

export ILABEL        := %b %e %T %ICall to tei %t from %N2 on %n2
export OLABEL        := %b %e %T %Itei %t calling %N2 with %n2
export CHARGEMAX     := 1000.00


ifndef ROOTDIR
export ROOTDIR=$(shell pwd)
MAKELIB  =1
else
#PREFIXDIR=$(ROOTDIR)
endif

PREFIXDIR=.

ifeq ($(MAKELIB),1)
SUBDIRS     = $(LIBISDNDIR)
endif

export CFLAGS  = -Wall -pipe -O6 -m486 -fomit-frame-pointer -fforce-mem -fforce-addr -funroll-loops -fstrength-reduce

ifndef _CC
export _CC  = gcc
endif

CC          = $(_CC)

INCLUDE     = -I./connect -I./tools -I$(PREFIXDIR) -I$(LIBISDNDIR)

LIB         = $(DBMLIB)




SERVICEFILE = /etc/services


######################################################################
# DON'T EDIT BELOW THIS LINE
######################################################################

VERSION     = 2.99.21

ifeq ($(POSTGRES),1)
DEFS       += -DPOSTGRES
INCLUDE    += -I$(POSTGRESDIR)/include
LIB        += -L$(POSTGRESDIR)/lib -lpq
endif

ifdef DBMALLOC
DEFS       += -DDBMALLOC=1
LIB        += -ldbmalloc
endif

DEFS       += \
               -DVERSION=\"$(VERSION)\"   \
               -DI4LVERSION=\"$(I4LVERSION)\"   \
                $(INCLUDE)

%.o: %.c
	$(CC) $(CFLAGS) $(DEFS) $(INCLUDE) -c -o $@ $<

ISDNLOG_OBJS =  isdnlog/isdnlog.o isdnlog/processor.o isdnlog/functions.o \
                isdnlog/server.o isdnlog/start_prog.o isdnlog/messages.o  \
                connect/connect.o connect/socket.o tools/tools.o      	  \
                connect/conv_address.o isdnlog/user_access.o 		  \
                isdnrep/cheap.o tools/isdnconf.o $(LIBISDNDIR)/libisdn.a


ifeq ($(POSTGRES),1)
ISDNLOG_OBJS += isdnlog/postgres.o
endif

ifdef TESTCENTER
ISDNLOG_OBJS += isdnlog/test_center.o
endif

ISDNREP_OBJS =  isdnrep/rep_main.o isdnrep/cheap.o tools/tools.o          \
                tools/isdnconf.o isdnlog/messages.o isdnrep/isdnrep.o     \
                $(LIBISDNDIR)/libisdn.a

ISDNCONF_OBJS=  isdnconf/isdnconf.o tools/tools.o tools/isdnconf.o        \
                $(LIBISDNDIR)/libisdn.a

ISDNLOG      =  bin/isdnlog
ISDNCONF     =  bin/isdnconf
ISDNREP      =  bin/isdnrep

MODS         =  *.o */*.o

PROGS        =  $(ISDNLOG) $(ISDNREP) $(ISDNCONF)

all:            libs $(PROGS)

libs:
		set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i; done

clean:
		-rm -f $(MODS)
		set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i clean; done

distclean:      clean
		-rm -f $(PROGS) .depend config.h config.status config.cache \
		config.log Makefile confdefs.h policy.h
		set -e; for i in `echo $(SUBDIRS)`; do $(MAKE) -C $$i distclean; done

ifeq (.depend,$(wildcard .depend))
include .depend
HEADERS := $(HEADERS) .depend
endif

rootperm:
	@echo 'main(int argc,char**argv){unlink(argv[0]);return(getuid()==0);}'>g
	@if gcc -x c -o G g && rm -f g && ./G ; then \
		echo ""; echo 'Do "make (un)install" as root!' ;echo ""; false; \
	fi

uninstall: rootperm
		if ps -x | fgrep $(ISDNLOG) >/dev/null; then kill `cat $(RUNDIR)/isdnlog.pid` 2>/dev/null; fi
		rm -f $(SBINDIR)/$(ISDNLOG) $(BINDIR)/$(ISDNREP) $(BINDIR)/$(ISDNCONF)
		rm -f $(MAN8DIR)/isdnlog.8 $(MAN1DIR)/isdnrep.1

installdirs: rootperm
		$(INSTALL_DIR) $(I4LCONFDIR)
		$(INSTALL_DIR) $(BINDIR)
		$(INSTALL_DIR) $(SBINDIR)
#		$(INSTALL_DIR) $(MAN1DIR)
#		$(INSTALL_DIR) $(MAN8DIR)

install: depend all rootperm installdirs
		@echo "Killing running isdnlog!"
		-@if ps -x | fgrep $(ISDNLOG) >/dev/null; then kill `cat $(RUNDIR)/isdnlog.pid 2>/dev/null`; fi
		-@test ! -d $(OLDCONFDIR) || cp -auv $(OLDCONFDIR)/$(USERFILE) $(I4LCONFDIR)
		-@test ! -d $(OLDCONFDIR) || (cp -auv $(OLDCONFDIR)/$(OLDCONFFILE) $(I4LCONFDIR) \
		 && $(ISDNREP) 1>/dev/null 2>&1) \
		 && mv $(I4LCONFDIR)/$(OLDCONFFILE) $(I4LCONFDIR)/$(OLDCONFFILE).old
		$(GENCONF) $(I4LCONFDIR)/$(CONFFILE) $(I4LCONFDIR)/$(CALLERIDFILE)
		@echo "Generate config files. Wait a moment..."
		-@$(ISDNCONF) -c 040 1>/dev/null 2>&1 || echo "Can not read areacode/avon lib."
		$(INSTALL_BIN) $(ISDNLOG)  $(SBINDIR)
		$(INSTALL_BIN) $(ISDNREP)  $(BINDIR)
		$(INSTALL_BIN) $(ISDNCONF) $(BINDIR)
#		$(INSTALL_DATA) isdnlog/isdnlog.8 $(MAN8DIR)
#		$(INSTALL_DATA) isdnrep/isdnrep.1 $(MAN1DIR)
		@echo ""
		@echo "Don't forget to create $(I4LCONFDIR)/$(USERFILE)"
		@echo ""
		@(grep isdnlog $(SERVICEFILE) >/dev/null) || \
		(echo "";echo "";echo "Add a line to the file $(SERVICEFILE)" ;echo "";echo ""; \
		echo "isdnlog $(SERV_PORT)/tcp        isdnlog" >> $(SERVICEFILE))

install-strip:
		$(MAKE) INSTALL_BIN='$(INSTALL_BIN) -s' \
			INSTALL_SBIN='$(INSTALL_SBIN) -s' install

distrib: distclean
		cd .. && tar cf /tmp/isdnlog-$(I4LVERSION).tar    \
		  isdnlog-$(I4LVERSION)/Makefile       \
		  isdnlog-$(I4LVERSION)/Isdn           \
		  isdnlog-$(I4LVERSION)/README         \
		  isdnlog-$(I4LVERSION)/NEWS           \
		  isdnlog-$(I4LVERSION)/COPYING        \
		  isdnlog-$(I4LVERSION)/BUGS           \
		  isdnlog-$(I4LVERSION)/TODO           \
		  isdnlog-$(I4LVERSION)/FAQ            \
		  isdnlog-$(I4LVERSION)/samples        \
		  isdnlog-$(I4LVERSION)/tools          \
		  isdnlog-$(I4LVERSION)/isdnconf       \
		  isdnlog-$(I4LVERSION)/isdnlog        \
		  isdnlog-$(I4LVERSION)/isdnrep        \
		  isdnlog-$(I4LVERSION)/connect        \
		  isdnlog-$(I4LVERSION)/lib            \
		  isdnlog-$(I4LVERSION)/contrib	       \
		  isdnlog-$(I4LVERSION)/bin
		gzip -f9 /tmp/isdnlog-$(I4LVERSION).tar
#		uuencode /tmp/isdnlog-$(I4LVERSION).tar.gz isdnlog-$(I4LVERSION).tar.gz > /tmp/isdnlog-$(I4LVERSION).uue

$(ISDNLOG):     $(ISDNLOG_OBJS)
		$(CC) -o $(ISDNLOG) $(LFLAGS) $(ISDNLOG_OBJS) $(LIB)

$(ISDNREP):     $(ISDNREP_OBJS)
		$(CC) -o $(ISDNREP) $(LFLAGS) $(ISDNREP_OBJS) $(LIB)

$(ISDNCONF):    $(ISDNCONF_OBJS)
		$(CC) -o $(ISDNCONF) $(LFLAGS) $(ISDNCONF_OBJS) $(LIB)

tools/tools.h: $(LIBISDNDIR)/libisdn.h $(PREFIXDIR)/policy.h
		touch tools/tools.h

depend: .depend

.depend:
		$(CPP) -M $(CFLAGS) $(DEFS) $(INCLUDE) */*.c >.depend
#		$(CPP) -M $(CFLAGS) $(DEFS) $(INCLUDE) */*.c */*/*.c >.depend
