#! 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=		Win32Main.cpp
RCSRCS=			Win32Main.rc

PROGRAM=		$(BINDIR)/AbiWord.exe

# Mingw provides libiconv, a darn good one (:
ifneq ($(ABI_REQUIRE_PEER_ICONV),0)
ABIICONV = Abi_libiconv
else
ABIICONV =
endif

## TODO should /profile be on the following line ??  does this
## TODO enable linking with profile-libraries and thus bloat us.

ifeq ($(OS_NAME), MINGW32)
MINGRES_INCS=--include-dir=../../ap/win --include-dir=../../../af/xap/win
CPPSRCS+=		dummy.cpp

ABI_LIBS=	kernel32 user32 gdi32 winspool comdlg32 advapi32 \
			shell32 uuid comctl32 ole32 

LoadOrder=	AbiGr AbiFmt AbiPTbl AbiImpExp AbiXAp AbiWPAp \
			AbiEv AbiUtil AbiImpExp AbiWordVer AbiSpell Abi_libwv fribidi \
			Abi_libpopt $(ABIICONV) Abi_libpng Abi_zlib

ABI_APPLIBS=		$(LoadOrder) $(LoadOrder) $(LoadOrder)
ABI_APPLIBDEP=		$(LoadOrder)

SHARED_LDFLAGS =	$(SHARED_FLAGS) -Wl,--dll -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--out-implib,libAbiWord.dll.a


else

ABI_LDFLAGS=		-nologo -subsystem:windows -incremental:no -machine:$(LINK_ARCH) -profile
ABI_APPLIBS=		AbiWordVer AbiUtil AbiImpExp AbiPTbl AbiFmt AbiEv \
					AbiXAp AbiGr AbiWPAp AbiSpell Abi_libpng Abi_zlib $(ABIICONV) Abi_libwv \
					Abi_libpopt

ABI_APPLIBDEP=		$(ABI_APPLIBS)

####ABI_LIBS=		kernel32 user32 gdi32 winspool comdlg32 advapi32 \
####			shell32 ole32 oleaut32 uuid odbc32 odbccp32
ABI_LIBS=		kernel32 user32 gdi32 winspool comdlg32 advapi32 \
			shell32 uuid comctl32 msvcprt ole32

GARBAGE=		AbiWord.map AbiWord.pdb

endif

# ifeq ($(ABI_OPT_CURL),1)
# ABI_APPLIBS+=	Abi_libcurl
# # Note: ws2_32.lib is the winsock 2 import library (may cause user to require Winsock 2 update)
# ABI_LIBS+=		ws2_32
# so lets try delay loading it, win95 users should be able to run abiword, just not its libcurl based features
#ABI_LIBS+= Delayimp -delayload:ws2_32.dll
# endif

TARGETS=		$(PROGRAM)

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

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

ifeq ($(OS_NAME), MINGW32)
$(PROGRAM): $(OBJS) $(EXTRA_LIBDEP)
	@$(MAKE_OBJDIR)
	@echo Linking dynamic $(PROGRAM)
	$(CCC) -o $(BINDIR)/libAbiWord.dll $(SHARED_LDFLAGS) $(CFLAGS) $(OBJDIR)/dummy.o  $(LDFLAGS) $(EXTRA_LIBS) $(OS_LIBS) $(XLDFLAGS)
	@mv libAbiWord.dll.a $(LIBDIR)
	$(CCC) -o $@ $(CFLAGS) $(OBJDIR)/Win32Main.o $(OBJDIR)/Win32Mainrc.o $(LDFLAGS) -L$(LIBDIR) -lAbiWord.dll $(OS_LIBS) $(XLDFLAGS)
else
$(PROGRAM): $(OBJS) $(EXTRA_LIBDEP)
	@$(MAKE_OBJDIR)
	@echo Linking $(PROGRAM)....
	@$(CC) $(shell echo $(OBJS) | $(TRANSFORM_TO_DOS_PATH))	\
		-Fe$(shell echo $@ | $(TRANSFORM_TO_DOS_PATH))	\
		-link $(LDFLAGS) $(OS_LIBS) $(ABI_LDFLAGS)				\
		$(shell echo $(EXTRA_LIBS) | $(TRANSFORM_TO_DOS_PATH))
endif

build:: $(TARGETS)
	@echo Target $(TARGETS) completed.
