# 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
+ 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
+ LIBS_NETWORK := -lwsock32
+ WIN_VERSION := 32
+ BINDIR := $(BUILDDIR)/release32
+ LIBDIR := $(BUILDDIR)/release32
+ OBJDIR := obj32
+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_MYSQL := -I$(DEPKGS)/include/mysql
LIBS_DB := \
- $(DEPKGS)/lib/libdb.a
+ $(DEPKGS)/lib/libdb.a
LIBS_PTHREADS := \
- $(DEPKGS)/lib/libpthreadGCE.a
+ $(DEPKGS)/lib/libpthreadGCE.a
LIBS_ZLIB := \
- $(DEPKGS)/lib/libz.a
+ $(DEPKGS)/lib/libz.a
LIBS_MYSQL := \
- $(DEPKGS)/lib/libmysql.a
+ $(DEPKGS)/lib/libmysql.a
LIBS_POSTGRESQL := \
- $(DEPKGS)/lib/libpq.a
+ $(DEPKGS)/lib/libpq.a
LIBS_SQLITE := \
- $(DEPKGS)/lib/libsqlite3.a
+ $(DEPKGS)/lib/libsqlite3.a
LIBS_SSL := \
- $(DEPKGS)/lib/libssl.dll.a
+ $(DEPKGS)/lib/libssl.dll.a
LIBS_CRYPTO := \
- $(DEPKGS)/lib/libcrypto.dll.a
+ $(DEPKGS)/lib/libcrypto.dll.a
LIBS_WX := \
- $(DEPKGS)/lib/wx_dll/libwxmsw28_core.a \
- $(DEPKGS)/lib/wx_dll/libwxbase28.a
+ $(DEPKGS)/lib/wx_dll/libwxmsw28_core.a \
+ $(DEPKGS)/lib/wx_dll/libwxbase28.a
LIBS_CATS := \
- $(LIBDIR)/libcats.a
+ $(LIBDIR)/libcats.a
LIBS_BACULA := \
- $(LIBDIR)/libbacula.a
+ $(LIBDIR)/libbacula.a
HAVES := \
- -DHAVE_WIN32 \
- -DHAVE_MINGW \
- -DHAVE_ZLIB_H \
- -DHAVE_LIBZ \
- -DHAVE_CRYPTO \
- -DHAVE_OPENSSL \
- -DHAVE_TLS
+ -DHAVE_WIN32 \
+ -DHAVE_MINGW \
+ -DHAVE_ZLIB_H \
+ -DHAVE_LIBZ \
+ -DHAVE_CRYPTO \
+ -DHAVE_OPENSSL \
+ -DHAVE_TLS