]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/Makefile.inc.in
Restore win32 dir from Branch-5.2 and update it
[bacula/bacula] / bacula / src / win32 / Makefile.inc.in
1 #
2 # Makefile for win32 bacula executables
3 # Using MinGW cross-compiler on GNU/Linux
4 #
5 # Author: Robert Nelson
6 # Copyright (C), Kern Sibbald 2006-2018
7 # License: BSD 2-Clause; see file LICENSE-FOSS
8 #
9 #  Written by Robert Nelson, June 2006
10 #
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.
17 #
18
19 # Global Configuration
20
21 ECHO_CMD = @
22
23 # Main Bacula source dir
24 MAINDIR := @WIN32MAINDIR@
25 #
26 # Build dir -- i.e. normally  src/win32
27 BUILDDIR := @WIN32BUILDDIR@
28 #
29 # Dir above Bacula where we find depkgs
30 TOPDIR := @WIN32TOPDIR@
31 #
32 # where we find depkgs
33 DEPKGS32 := $(TOPDIR)/@WIN32DEPKGS32@
34
35 DOCDIR := $(TOPDIR)/docs
36
37 MINGW_BASE := @MINGWBASE@
38
39 MINGW_BIN := @WIN32BINDIR@
40 MINGW_INCLUDE := @WIN32INCDIR@
41 MINGW_DLLDIR := @WIN32DLLDIR@
42
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
46
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
55
56 WIN64=@WIN64@
57
58 ifeq ($(WIN64),yes)
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
62    WIN_VERSION := 64
63    BINDIR := $(BUILDDIR)/release64
64    LIBDIR := $(BUILDDIR)/release64
65    OBJDIR := obj64
66 else
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
71    WIN_VERSION := 32
72    BINDIR := $(BUILDDIR)/release32
73    LIBDIR := $(BUILDDIR)/release32
74    OBJDIR := obj32
75 endif
76
77 LDFLAGS := -g -Wall 
78
79 ifeq ($(MINGW_BASE),i686-w64-mingw32)
80    CFLAGS += -DHAVE_MINGW_W64
81    WINDRESFLAGS := -DHAVE_MINGW_W64
82    LIBS_PTHREADS := $(DEPKGS)/lib/libpthreadGCE2.a
83
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
88
89 else 
90    # old mingw
91    LIBS_PTHREADS := $(DEPKGS)/lib/libpthreadGCE.a
92    LDFLAGS += -mno-cygwin -Wl,--disable-auto-import
93 endif
94
95 bat=@BAT@
96
97 ifeq ($(bat),no)
98    BUILD_BAT=no
99 else
100    BUILD_BAT=yes
101 endif
102
103 OBJDIRS := obj32 obj64
104
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
115
116 LIBS_DB := \
117         $(DEPKGS)/lib/libdb.a
118
119 LIBS_RSYNC := $(DEPKGS)/lib/librsync.a
120
121 LIBS_ZLIB := \
122         $(DEPKGS)/lib/libz.a
123
124 LIBS_LZO := \
125         $(DEPKGS)/lib/liblzo2.a
126
127 LIBS_MYSQL := \
128         $(DEPKGS)/lib/libmysql.a
129
130 LIBS_POSTGRESQL := \
131         $(DEPKGS)/lib/libpq.a
132
133 LIBS_SQLITE := \
134         $(DEPKGS)/lib/libsqlite3.a
135
136 LIBS_SSL := \
137         $(DEPKGS)/lib/libssl.dll.a
138
139 LIBS_CRYPTO := \
140         $(DEPKGS)/lib/libcrypto.dll.a
141
142 LIBS_WX := \
143         $(DEPKGS)/lib/wx_dll/libwxmsw28_core.a \
144         $(DEPKGS)/lib/wx_dll/libwxbase28.a
145
146 LIBS_CATS := \
147         $(LIBDIR)/libcats.a
148
149 LIBS_BACULA := \
150         $(LIBDIR)/libbacula.a
151
152 HAVES := \
153         -DHAVE_WIN32 \
154         -DHAVE_MINGW \
155         -DHAVE_ZLIB_H \
156         -DHAVE_LZO \
157         -DHAVE_LIBZ \
158         -DHAVE_CRYPTO \
159         -DHAVE_OPENSSL \
160         -DHAVE_TLS \
161         $(HAVES)