#
# 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
ECHO_CMD = @
-BUILDDIR := @BUILDDIR@
-TOPDIR := @TOPDIR@
-DEPKGS := $(TOPDIR)/depkgs-mingw32
+# Main Bacula source dir
+MAINDIR := @WIN32MAINDIR@
+#
+# Build dir -- i.e. normally src/win32
+BUILDDIR := @WIN32BUILDDIR@
+#
+# Dir above Bacula where we find depkgs
+TOPDIR := @WIN32TOPDIR@
+#
+# where we find depkgs
+DEPKGS := $(TOPDIR)/@WIN32DEPKGS@
+DEPKGS32 := $(TOPDIR)/@WIN32DEPKGS32@
DOCDIR := $(TOPDIR)/docs
-BINDIR := ../release
-LIBDIR := ../release
-OBJDIR := .
-MINGW_BIN := @BINDIR@
-MINGW_INCLUDE := @INCDIR@
-MINGW_DLLDIR := @DLLDIR@
+MINGW_BIN := @WIN32BINDIR@
+MINGW_INCLUDE := @WIN32INCDIR@
+MINGW_DLLDIR := @WIN32DLLDIR@
CC = $(MINGW_BIN)/mingw32-g++ $(DEFINES) $(INCLUDES)
CXX = $(MINGW_BIN)/mingw32-g++ $(DEFINES) $(INCLUDES)
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
-INCLUDE_BACULA := -I../.. -I../compat
+INCLUDE_BACULA := -I$(MAINDIR)/src -I$(BUILDDIR)/compat
INCLUDE_PTHREADS := -I$(DEPKGS)/include/pthreads
INCLUDE_ZLIB := -I$(DEPKGS)/include
INCLUDE_VSS := -I$(DEPKGS)/vss