# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
# 
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
# 
# The Original Code is Freedom code.
# 
# The Initial Developer of the Original Code is Zero-Knowledge Systems,
# Inc.  Portions created by Zero-Knowledge are Copyright (C) 2000
# Zero-Knowledge Systems, Inc.  All Rights Reserved.
# 
# Contributor(s):

# 
# Default target
#

default:: libs exes

# Get the variables definition
include $(ZK_ROOT)/freedom/client/makefiles/Makefile.vars

# Override and define new variables
ZK_PUBLIBS := libfreedomclientLinux.a
# ZK_SUB_PROJECTS := test


ZK_CXXPUBEXES = \
	freedom \
	$(END_OF_LIST)

ZK_DEFS     += -DCLIENT_SHIM -DFREEDOM_CLIENT
ZK_LDFLAGS  += $(ZK_GTKLDFLAGS) 
ZK_LDFLAGS  := $(ZK_LDFLAGS) -Wl,--whole-archive -lfrcerrorhandling -Wl,--no-whole-archive

# gdk_pixbuf and libglade should be statcally linked
ZK_CXXSYSLIBS += \
	-Wl,-Bstatic -lgdk_pixbuf -lglade-gnome -lglade -Wl,-Bdynamic \
	-ltiff -ljpeg -lpng -Wl,-Bstatic -lxml -Wl,-Bdynamic -lz \
	$(END_OF_LIST)

ZK_INCS     += \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkcentral/clienttypes/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkshim/trafficfilter/xp/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkbase/inethelp/xp/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkui/freedomclient/linux/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkbase/errorhandling/linux/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkbase/general/xp/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkbase/libzktest/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkbase/clientbase/linux/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkbase/clientbase/xp/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/ \
        -idirafter $(ZK_FREEDOM_ROOT)/include/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/inc/ \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkui/zkcommonui/linux \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkui/zkdialogs/linux \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkui/zkdialogs/xp \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkui/zkwizards/linux \
        -idirafter $(ZK_FREEDOM_ROOT)/client/zkui/zkwizards/xp \
	-idirafter $(ZK_FREEDOM_ROOT)/client/zkbase/errorhandling/xp/ \
	-idirafter $(ZK_FREEDOM_ROOT)/client/zkcentral/zkservice/ \
	-idirafter $(ZK_FREEDOM_ROOT)/client/zkshim/trafficfilter/linux/ \
	-idirafter $(ZK_FREEDOM_ROOT)/client/zkshim/linux/clientshim/include/ \
	-idirafter $(ZK_FREEDOM_ROOT)/client/zkproxies/dinetd/ \
        -idirafter $(ZK_FREEDOM_ROOT)/ndb/include/ \
        -idirafter $(ZK_ROOT) \
        -idirafter $(ZK_ROOT)/include/ \
        -idirafter $(ZK_ROOT)/libzkmime/include/ \
        -idirafter $(ZK_ROOT)/libzkthread/include/ \
        -idirafter $(ZK_ROOT)/libzkpacket/include/ \
        -idirafter $(ZK_ROOT)/lib3rd/openssl/include \
        -idirafter $(ZK_ROOT)/libzk/include/ \
        -idirafter $(ZK_ROOT)/libzk/src/ \
        -idirafter $(ZK_ROOT)/libzkip/include/ \
	-idirafter ../xp/ \
	$(ZK_GTKINCS) \
	$(END_OF_LIST)


ZK_CXXFLAGS := $(subst -Wshadow, ,$(ZK_CXXFLAGS)) $(ZK_GTKDEFS)

ZK_EXE_SRCFILES := \
	freedom.cpp \
	$(END_OF_LIST)

ZK_LIB_SRCFILES := \
	UiIconDisplay.cpp \
	UiFreedomManager.cpp \
	UiConsoleWindow.cpp  \
	UiMsgDisplay.cpp \
	UiStatusDisplay.cpp \
	UiMainWindow.cpp \
	UiMainWindowImp.cpp  \
	UiNIQSUpdate.cpp \
	testframework.cpp \
	$(END_OF_LIST)

ZK_ALL_SRCFILES := \
	$(ZK_EXE_SRCFILES) \
	$(ZK_LIB_SRCFILES) \
	$(END_OF_LIST)

PKG_EXES := $(ZK_CXXPUBEXES) 

PKG_PIXMAP := \
	$(notdir $(wildcard pixmaps/*.xpm pixmaps/freedomrc pixmaps/libpixmap.so pixmaps/*.gif \
	                    pixmaps/*.png)) \
	$(END_OF_LIST)

PKG_XML := \
	$(notdir $(wildcard xml/*.xml)) \
	$(END_OF_LIST)

# Get the target rules
include $(ZK_ROOT)/makefiles/Makefile.targs

# Add new targets or complement default target using :: rules
package:: exes
	@$(ZK_SCRIPTDIR)/promoteFiles.pl $(ZK_BUILDDIR_PUBBIN) $(ZK_PKG_CLIENT_ROOT)/usr/bin $(PKG_EXES)
	@$(ZK_SCRIPTDIR)/promoteFiles.pl pixmaps $(ZK_PKG_CLIENT_ROOT)/usr/share/freedom/pixmaps $(PKG_PIXMAP)
	@$(ZK_SCRIPTDIR)/promoteFiles.pl xml $(ZK_PKG_CLIENT_ROOT)/usr/share/freedom/xml $(PKG_XML)
	@$(ZK_SCRIPTDIR)/promoteFiles.pl ./ $(ZK_PKG_CLIENT_ROOT)/usr/share/freedom/ inituser.sh 


# Specify dependencies
$(ZK_BUILDDIR_PUBLIB)/libfreedomclientLinux.a: $(patsubst %.cpp,$(ZK_BUILDDIR_PROJ)$(/)%.o,$(filter %.cpp, $(ZK_LIB_SRCFILES)))


# Please, Please, Please, Please, don't change this link order without a good reason! 
$(ZK_FULLCXXEXES): $(ZK_BUILDDIR_PUBBIN)/%: $(ZK_BUILDDIR_PROJ)$(/)freedom.o  \
	 -lfreedomclientLinux \
	 -lfrcdinetd \
	 -lfrcproxies \
	 -lzkdialogsLinux \
	 -lzkdialogs \
	 -lzkwizardsLinux \
         -lzkcommonuiLinux \
	 -lfrcservice \
	 -lfrctrafficfilter \
	 -lfrcclienttypes \
         -lfrcinethelp \
	 -lclientbaseLinux \
	 -lclientbase \
	 -lmozreg     \
         -lZkTest \
	 -lfrcerrorhandling \
	 -lfrcgeneral \
	 $(ZK_GTKLIBS) \
	 -ldb \
	 -lframtp \
	 -lfrdbo \
	 -lfrent \
	 -lfrnym \
	 -lfrkeyqry \
	 -lfrlocalaip \
	 -lfraips \
	 -lfrmaip \
	 -lfrmailauth \
	 -lfrmailblocklist_client \
	 -lfrmailmsg \
	 -lfrnetinfo \
	 -lfrnidb \
	 -lfrniqs \
	 -lfrpktfmt \
	 -lfrsec \
	 -lfrtoken \
	 -lgnugetopts \
	 -lnewt \
	 -lpcap \
	 -lpopt \
	 -lslang \
	 -lzkmime \
	 -lzkpacket \
	 -lzkipclient \
	 -lfrcrypt -lzkrand \
         -lzkrand \
	 -lzkthread \
	 -lzk \
	 -lyarrow \
	 -lcrypto \
	 -lbz2 \
	 -lpthread 
