#
# Makefile
#
# $Id: Makefile,v 1.31.2.30 2004/05/12 17:46:33 zvision Exp $
#
# Make file for OpenH323 Gatekeeper - The GNU Gatekeeper
#
# Reconstructed by C.W.Huang   Nov 11, 2002
#


PROG	=	gnugk
SOURCES	:=	MulticastGRQ.cxx gk.cxx gkauth.cxx gkDestAnalysis.cxx \
		RasSrv.cxx RasTbl.cxx GkClient.cxx \
		BroadcastListen.cxx \
		SoftPBX.cxx Toolkit.cxx h323util.cxx GkStatus.cxx \
		yasocket.cxx thread.cxx ProxyThread.cxx ProxyChannel.cxx \
		singleton.cxx main.cxx gkacct.cxx radproto.cxx radauth.cxx radacct.cxx \
		gksql.cxx sqlacct.cxx gktimer.cxx

# Accounting support
ifndef NO_ACCT
STDCCFLAGS += -DHAS_ACCT=1
endif

# RADIUS support
ifndef NO_RADIUS
STDCCFLAGS += -DHAS_RADIUS=1
endif

# LDAP support
ifdef HAS_LDAP
SOURCES += gkldap.cxx ldaplink.cxx gk_ldap_interface.cxx
STDCCFLAGS += -DHAS_LDAP=1 -DLDAP_HAS_CACHE
endif
# end of LDAP configuration

# MySQL support
# has to be added after LDAP support because order of -I options is crucial
ifndef NO_MYSQL
ifndef MYSQLDIR
ifneq (,$(wildcard /usr/include/mysql/mysql.h))
MYSQLDIR := /usr/include/mysql
export MYSQLDIR
else
ifneq (,$(wildcard /usr/local/include/mysql/mysql.h))
	MYSQLDIR := /usr/local/include/mysql
	MYSQLLIBDIR := /usr/local/lib
	export MYSQLDIR MYSQLLIBDIR
else
ifneq (,$(wildcard /usr/local/mysql/include/mysql/mysql.h))
		MYSQLDIR := /usr/local/mysql/include/mysql
		MYSQLLIBDIR := /usr/local/mysql/lib
		export MYSQLDIR MYSQLLIBDIR
endif
endif
endif
endif

ifdef MYSQLDIR
ifneq (,$(wildcard $(MYSQLDIR)))
STDCCFLAGS_stub := $(STDCCFLAGS)
STDCCFLAGS = -DHAS_MYSQL=1 -I$(MYSQLDIR) $(STDCCFLAGS_stub)
ifdef MYSQLLIBDIR
LDFLAGS += -L$(MYSQLLIBDIR)
endif
ENDLDLIBS += -lmysqlclient -lz
HAS_MYSQL = 1
SOURCES += gksql_mysql.cxx
endif
endif
endif
# end of MySQL configuration

# PostgreSQL support
ifndef NO_PGSQL
ifndef PGSQLDIR
ifneq (,$(wildcard /usr/include/pgsql/libpq-fe.h))
PGSQLDIR := /usr/include/pgsql
export PGSQLDIR
else
ifneq (,$(wildcard /usr/local/include/pgsql/libpq-fe.h))
	PGSQLDIR := /usr/local/include/pgsql
	PGSQLLIBDIR := /usr/local/lib
	export PGSQLDIR PGSQLLIBDIR
else
ifneq (,$(wildcard /usr/local/pgsql/include/libpq-fe.h))
		PGSQLDIR := /usr/local/pgsql/include
		PGSQLLIBDIR := /usr/local/pgsql/lib
		export PGSQLDIR PGSQLLIBDIR
endif
endif
endif
endif

ifdef PGSQLDIR
ifneq (,$(wildcard $(PGSQLDIR)))
STDCCFLAGS_stub := $(STDCCFLAGS)
STDCCFLAGS = -DHAS_PGSQL=1 -I$(PGSQLDIR) $(STDCCFLAGS_stub)
ifdef PGSQLLIBDIR
LDFLAGS += -L$(PGSQLLIBDIR)
endif
ENDLDLIBS += -lpq -lcrypt
HAS_PGSQL = 1
SOURCES += gksql_pgsql.cxx
endif
endif
endif
# end of PostgreSQL configuration

ifndef NO_WAITARQ
SOURCES += WaitingARQ.cxx
STDCCFLAGS	+= -DHAS_WAITARQ=1
HAS_WAITARQ	= 1
endif

# include the Makefile of OpenH323
ifndef OPENH323DIR
OPENH323DIR=$(HOME)/openh323
endif

VERSION_FILE := $(OPENH323DIR)/version.h

include $(OPENH323DIR)/openh323u.mak

### Remove -fdata-sections gcc option that cause problems during link step
temp_STDCCFLAGS := $(subst -fdata-sections,,$(STDCCFLAGS))
STDCCFLAGS = $(temp_STDCCFLAGS)

STDCCFLAGS	+= -DMAJOR_VERSION=$(MAJOR_VERSION) -DMINOR_VERSION=$(MINOR_VERSION) -DBUILD_NUMBER=$(BUILD_NUMBER)

ifdef LARGE_FDSET
STDCCFLAGS_stub	:= $(STDCCFLAGS)
STDCCFLAGS	= -DLARGE_FDSET=$(LARGE_FDSET) $(STDCCFLAGS_stub)
endif

# extra targets
addpasswd: $(OBJDIR)/addpasswd.o
	$(CXX) -o $(OBJDIR)/addpasswd $(CFLAGS) $(OBJDIR)/addpasswd.o $(LDFLAGS) -l$(PTLIB_BASE)$(LIB_TYPE) $(ENDLDLIBS) $(ENDLDFLAGS)

doc:	docs/manual.sgml
	cd docs; sgml2html manual.sgml; \
	which bg5sgml2html > /dev/null 2>&1 && \
	bg5sgml2html manual-zh.sgml || true

# end
