#! gmake

## AbiWord
## Copyright (C) 1998 AbiSource, Inc.
##
## 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
## of the License, 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., 59 Temple Place - Suite 330, Boston, MA  
## 02111-1307, USA.

ABI_ROOT:=$(shell pwd)/../../../..

include $(ABI_ROOT)/src/config/abi_defs_wp.mk

CPPSRCS=		UnixMain.cpp

INCLUDES=		$(GTK_CFLAGS)

PROGRAM=		$(BINDIR)/AbiWord_d
PROGRAM_S=		$(BINDIR)/AbiWord_s

# TODO the Linux linker is fussy about the ordering of libraries.
# TODO in order to get all symbols to resolve, i had to list them
# TODO several times.  see if there is a better way of doing this.

ifdef ABI_OPT_LIBXML2
LoadOrder=		AbiGr AbiFmt AbiPTbl AbiImpExp AbiXAp AbiWPAp \
			AbiEv AbiUtil AbiWordVer AbiSpell Abi_libwv
else 
LoadOrder=		AbiGr AbiFmt AbiPTbl AbiImpExp AbiXAp AbiWPAp \
			AbiEv AbiUtil AbiWordVer AbiSpell Abi_libwv
endif

ifdef ABI_REQUIRE_PEER_ICONV
LoadOrder+= Abi_libiconv
endif

ABI_APPLIBS=		$(LoadOrder) $(LoadOrder) $(LoadOrder)
ABI_APPLIBDEP=		$(LoadOrder)
 
# libdl flags go into the process later
#ifeq (0,1)
ABI_LIBS=		png z
#else
#ABI_LIBS=		png z iconv 
#endif

ifdef __FreeBSD__
#ABI_LIBS+=		iconv intl
endif # FreeBSD
ifdef __OpenBSD__
ABI_LIBS+=		iconv intl
endif # OpenBSD

# include both dynamic and static binaries
TARGETS=		$(PROGRAM) $(PROGRAM_S)

include $(ABI_ROOT)/src/config/abi_rules.mk

##################################################################
## everything below here must *FOLLOW* abi_rules
##################################################################

# One build gets dynamic libdl flags, the other gets static flags
DYNAMIC_LDFLAGS=	$(addprefix -l,$(DL_LIBS))
STATIC_LDFLAGS =	$(STATIC_FLAGS)
ifdef __OpenBSD__
STATIC_LDFLAGS += -lintl
endif

# we override the $(PROGRAM) rule.

$(PROGRAM): $(OBJS) $(EXTRA_LIBDEP)
ifeq ($(UNIX_CAN_BUILD_DYNAMIC),1)
	@$(MAKE_OBJDIR)
	@echo Linking dynamic $(PROGRAM)
	@echo $(CCC) -o $@ $(CFLAGS) $(OBJS) $(DYNAMIC_LDFLAGS) $(LDFLAGS) $(EXTRA_LIBS) $(XLDFLAGS) 
	@$(CCC) -o $@ $(CFLAGS) $(OBJS) $(DYNAMIC_LDFLAGS) $(LDFLAGS) $(EXTRA_LIBS) $(XLDFLAGS) 

else
	@echo "Not linking dynamic $(PROGRAM)"
	@echo "    UNIX_CAN_BUILD_DYNAMIC not defined for this platform."
endif

$(PROGRAM_S): $(OBJS) $(EXTRA_LIBDEP)
ifeq ($(UNIX_CAN_BUILD_STATIC),1)
	@$(MAKE_OBJDIR)
	@echo Linking static $(PROGRAM_S)
	@$(CCC) -o $@ $(CFLAGS) $(OBJS) $(STATIC_LDFLAGS) -L/usr/local/lib $(LDFLAGS) $(EXTRA_LIBS) $(XLDFLAGS)
else
	@echo "Not linking static $(PROGRAM_S)"
	@echo "    UNIX_CAN_BUILD_STATIC not defined for this platform."
endif

build:: $(TARGETS)
