2 # Makefile for win32 bacula executables
3 # Using MinGW cross-compiler on GNU/Linux
5 # Author: Robert Nelson
6 # Copyright (C), Kern Sibbald 2006-2018
7 # License: BSD 2-Clause; see file LICENSE-FOSS
9 # Written by Robert Nelson, June 2006
11 # Absolute paths used in place of relative paths
12 # Kern Sibbald, October 2008
13 # Split Win32 and Win64 objects and binaries. However
14 # the clean is a significant kludge -- hard coded.
15 # The object directories are deleted during make clean,
16 # so don't point them to any source directory.
19 # Global Configuration
23 # Main Bacula source dir
24 MAINDIR := @WIN32MAINDIR@
26 # Build dir -- i.e. normally src/win32
27 BUILDDIR := @WIN32BUILDDIR@
29 # Dir above Bacula where we find depkgs
30 TOPDIR := @WIN32TOPDIR@
32 # where we find depkgs
33 DEPKGS32 := $(TOPDIR)/@WIN32DEPKGS32@
35 DOCDIR := $(TOPDIR)/docs
37 MINGW_BASE := @MINGWBASE@
39 MINGW_BIN := @WIN32BINDIR@
40 MINGW_INCLUDE := @WIN32INCDIR@
41 MINGW_DLLDIR := @WIN32DLLDIR@
43 # Point only to GCC (CC is already used for g++...)
44 # Used to compile libobk for windows (just need simple gcc)
45 GCC = $(MINGW_BIN)$(MINGW_BASE)-gcc
47 CC = $(MINGW_BIN)$(MINGW_BASE)-g++ $(DEFINES) $(INCLUDES)
48 CXX = $(MINGW_BIN)$(MINGW_BASE)-g++ $(DEFINES) $(INCLUDES)
49 AR := $(MINGW_BIN)$(MINGW_BASE)-ar
50 RANLIB := $(MINGW_BIN)$(MINGW_BASE)-ranlib
51 WINDRES := $(MINGW_BIN)$(MINGW_BASE)-windres
52 DLLTOOL := $(MINGW_BIN)$(MINGW_BASE)-dlltool
53 OBJCPY := $(MINGW_BIN)-objcopy
54 STAB2CV := $(DEPKGS32)/tools/bin/stab2cv
59 DEPKGS := $(TOPDIR)/@WIN32DEPKGS@
60 CFLAGS := -g -Wall -mthreads -O3 -fno-strict-aliasing -DHAVE_VSS64 -Wno-unknown-pragmas -Wno-builtin-macro-redefined
61 LIBS_NETWORK := -lws2_32
63 BINDIR := $(BUILDDIR)/release64
64 LIBDIR := $(BUILDDIR)/release64
67 DEPKGS := $(TOPDIR)/@WIN32DEPKGS32@
68 # CFLAGS := -g -Wall -mno-cygwin -m32 -mwin32 -mthreads -O3 -fno-strict-aliasing -Wno-unknown-pragmas
69 CFLAGS := -g -Wall -m32 -mwin32 -mthreads -O3 -fno-strict-aliasing -Wno-unknown-pragmas -Wno-builtin-macro-redefined
70 LIBS_NETWORK := -lwsock32
72 BINDIR := $(BUILDDIR)/release32
73 LIBDIR := $(BUILDDIR)/release32
79 ifeq ($(MINGW_BASE),i686-w64-mingw32)
80 CFLAGS += -DHAVE_MINGW_W64
81 WINDRESFLAGS := -DHAVE_MINGW_W64
82 LIBS_PTHREADS := $(DEPKGS)/lib/libpthreadGCE2.a
84 else ifeq ($(MINGW_BASE),x86_64-w64-mingw32)
85 CFLAGS += -DHAVE_MINGW_W64
86 WINDRESFLAGS := -DHAVE_MINGW_W64
87 LIBS_PTHREADS := $(DEPKGS)/lib/libpthreadGCE2.a
91 LIBS_PTHREADS := $(DEPKGS)/lib/libpthreadGCE.a
92 LDFLAGS += -mno-cygwin -Wl,--disable-auto-import
103 OBJDIRS := obj32 obj64
105 INCLUDE_DDK := -I$(MINGW_INCLUDE)/ddk
106 INCLUDE_BACULA := -I$(MAINDIR)/src -I$(BUILDDIR)/compat
107 INCLUDE_PTHREADS := -I$(DEPKGS)/include/pthreads
108 INCLUDE_ZLIB := -I$(DEPKGS)/include
109 INCLUDE_VSS := -I$(DEPKGS)/vss
110 INCLUDE_ICONS := -I../libwin32
111 INCLUDE_OPENSSL := -I$(DEPKGS)/include
112 INCLUDE_WX := -I$(DEPKGS)/lib/wx_dll/msw -I$(DEPKGS)/include
113 INCLUDE_MYSQL := -I$(DEPKGS)/include/mysql
114 INCLUDE_RSYNC := -I$(DEPKGS)/include
117 $(DEPKGS)/lib/libdb.a
119 LIBS_RSYNC := $(DEPKGS)/lib/librsync.a
125 $(DEPKGS)/lib/liblzo2.a
128 $(DEPKGS)/lib/libmysql.a
131 $(DEPKGS)/lib/libpq.a
134 $(DEPKGS)/lib/libsqlite3.a
137 $(DEPKGS)/lib/libssl.dll.a
140 $(DEPKGS)/lib/libcrypto.dll.a
143 $(DEPKGS)/lib/wx_dll/libwxmsw28_core.a \
144 $(DEPKGS)/lib/wx_dll/libwxbase28.a
150 $(LIBDIR)/libbacula.a