# Using MinGW cross-compiler on GNU/Linux
#
# Written by Robert Nelson, June 2006
+#
# Absolute paths used in place of relative paths
# Kern Sibbald, October 2008
+# Split Win32 and Win64 objects and binaries. However
+# the clean is a significant kludge -- hard coded.
+# The object directories are deleted during make clean,
+# so don't point them to any source directory.
#
# Global Configuration
TOPDIR := @WIN32TOPDIR@
#
# where we find depkgs
-DEPKGS := $(TOPDIR)/depkgs-mingw32
+DEPKGS := $(TOPDIR)/@WIN32DEPKGS@
+DEPKGS32 := $(TOPDIR)/@WIN32DEPKGS32@
DOCDIR := $(TOPDIR)/docs
-BINDIR := $(BUILDDIR)/release
-LIBDIR := $(BUILDDIR)/release
-OBJDIR := .
MINGW_BIN := @WIN32BINDIR@
MINGW_INCLUDE := @WIN32INCDIR@
AR := $(MINGW_BIN)/mingw32-ar
RANLIB := $(MINGW_BIN)/mingw32-ranlib
WINDRES := $(MINGW_BIN)/mingw32-windres
-DLLTOOL := $(MINGW_BIN)/../mingw32/bin/dlltool
+DLLTOOL := $(MINGW_BIN)/mingw32-dlltool
OBJCPY := $(MINGW_BIN)/mingw32-objcopy
-NSIS_DIR := $(DEPKGS)/nsis
-STAB2CV := $(DEPKGS)/tools/bin/stab2cv
+NSIS_DIR := $(DEPKGS32)/nsis
+STAB2CV := $(DEPKGS32)/tools/bin/stab2cv
+
+WIN64=@WIN64@
+
+ifeq ($(WIN64),yes)
+ CFLAGS := -g -Wall -mno-cygwin -mthreads -O3 -fno-strict-aliasing -DHAVE_VSS64 -Wno-unknown-pragmas
+ LIBS_NETWORK := -lws2_32
+ WIN_VERSION := 64
+ BINDIR := $(BUILDDIR)/release64
+ LIBDIR := $(BUILDDIR)/release64
+ OBJDIR := obj64
+else
+ CFLAGS := -g -Wall -mno-cygwin -m32 -mwin32 -mthreads -O3 -fno-strict-aliasing -Wno-unknown-pragmas
+ LIBS_NETWORK := -lwsock32
+ WIN_VERSION := 32
+ BINDIR := $(BUILDDIR)/release32
+ LIBDIR := $(BUILDDIR)/release32
+ OBJDIR := obj32
+endif
+
+bat=@BAT@
+
+ifeq ($(bat),no)
+ BUILD_BAT=no
+else
+ BUILD_BAT=yes
+endif
+
+OBJDIRS := obj32 obj64
-CFLAGS := -g -Wall -mno-cygwin -m32 -mwin32 -mthreads -O3 -fno-strict-aliasing
LDFLAGS := -g -Wall -mno-cygwin -Wl,--disable-auto-import
INCLUDE_DDK := -I$(MINGW_INCLUDE)/ddk