]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/lib/Makefile
Restore win32 dir from Branch-5.2 and update it
[bacula/bacula] / bacula / src / win32 / lib / Makefile
1 #
2 # Copyright (C) 2000-2018 Kern Sibbald
3 # License: BSD 2-Clause; see file LICENSE-FOSS
4 #
5 #
6 # Makefile for win32 bacula executables
7 # Using MinGW cross-compiler on GNU/Linux
8 #
9 #  Written by Robert Nelson, June 2006
10 #
11
12 include ../Makefile.inc
13
14 INCLUDES = \
15         $(INCLUDE_PTHREADS) \
16         $(INCLUDE_BACULA) \
17         $(INCLUDE_ZLIB) \
18         $(INCLUDE_OPENSSL)
19
20 DEFINES = \
21         $(HAVES)
22
23 vpath %.c $(BUILDDIR)/compat $(MAINDIR)/src/findlib $(MAINDIR)/src/lib
24 vpath %.cpp $(BUILDDIR)/compat $(MAINDIR)/src/findlib $(MAINDIR)/src/lib
25
26 ######################################################################
27
28 # Files files in src/lib
29
30 COMPAT_OBJS = \
31         $(OBJDIR)/compat.o \
32         $(OBJDIR)/print.o \
33         $(OBJDIR)/winapi.o
34
35 #       $(OBJDIR)/getopt.o \
36
37 FIND_OBJS = \
38         $(OBJDIR)/attribs.o \
39         $(OBJDIR)/bfile.o \
40         $(OBJDIR)/win32filter.o \
41         $(OBJDIR)/create_file.o \
42         $(OBJDIR)/drivetype.o \
43         $(OBJDIR)/enable_priv.o \
44         $(OBJDIR)/find.o \
45         $(OBJDIR)/find_one.o \
46         $(OBJDIR)/fstype.o \
47         $(OBJDIR)/mkpath.o \
48         $(OBJDIR)/match.o
49
50 LIB_OBJS = \
51         $(OBJDIR)/address_conf.o \
52         $(OBJDIR)/alist.o \
53         $(OBJDIR)/attr.o \
54         $(OBJDIR)/base64.o \
55         $(OBJDIR)/berrno.o \
56         $(OBJDIR)/bget_msg.o \
57         $(OBJDIR)/bnet.o \
58         $(OBJDIR)/bnet_server.o \
59         $(OBJDIR)/bpipe.o \
60         $(OBJDIR)/breg.o \
61         $(OBJDIR)/bregex.o \
62         $(OBJDIR)/bsock.o \
63         $(OBJDIR)/bsnprintf.o \
64         $(OBJDIR)/bsys.o \
65         $(OBJDIR)/btime.o \
66         $(OBJDIR)/btimers.o \
67         $(OBJDIR)/cram-md5.o \
68         $(OBJDIR)/crc32.o \
69         $(OBJDIR)/crypto.o \
70         $(OBJDIR)/daemon.o \
71         $(OBJDIR)/dlist.o \
72         $(OBJDIR)/edit.o \
73         $(OBJDIR)/fnmatch.o \
74         $(OBJDIR)/guid_to_name.o \
75         $(OBJDIR)/hmac.o \
76         $(OBJDIR)/htable.o \
77         $(OBJDIR)/jcr.o \
78         $(OBJDIR)/lex.o \
79         $(OBJDIR)/lz4.o \
80         $(OBJDIR)/md5.o \
81         $(OBJDIR)/mem_pool.o \
82         $(OBJDIR)/message.o \
83         $(OBJDIR)/openssl.o \
84         $(OBJDIR)/plugins.o \
85         $(OBJDIR)/priv.o \
86         $(OBJDIR)/queue.o \
87         $(OBJDIR)/rblist.o \
88         $(OBJDIR)/runscript.o \
89         $(OBJDIR)/rwlock.o \
90         $(OBJDIR)/scan.o \
91         $(OBJDIR)/serial.o \
92         $(OBJDIR)/sha1.o \
93         $(OBJDIR)/signal.o \
94         $(OBJDIR)/smartall.o \
95         $(OBJDIR)/tls.o \
96         $(OBJDIR)/tree.o \
97         $(OBJDIR)/util.o \
98         $(OBJDIR)/var.o \
99         $(OBJDIR)/watchdog.o \
100         $(OBJDIR)/workq.o \
101         $(OBJDIR)/binflate.o \
102         $(OBJDIR)/ini.o \
103         $(OBJDIR)/output.o \
104         $(OBJDIR)/sellist.o \
105         $(OBJDIR)/lockmgr.o \
106         $(OBJDIR)/worker.o \
107         $(OBJDIR)/flist.o
108
109 DLL_OBJS = \
110         $(COMPAT_OBJS) $(FIND_OBJS) $(LIB_OBJS)
111
112 STATIC_OBJS = \
113         $(OBJDIR)/parse_conf.o \
114         $(OBJDIR)/res.o
115
116 ALL_OBJS = \
117         $(DLL_OBJS) $(STATIC_OBJS)
118
119 LIBS_DLL = \
120         $(LIBS_SSL) \
121         $(LIBS_CRYPTO) \
122         $(LIBS_PTHREADS) \
123         $(LIBS_ZLIB) \
124         $(LIBS_NETWORK) \
125         -lole32 \
126         -loleaut32 \
127         -lws2_32 \
128         -luuid
129
130 ######################################################################
131
132 # Targets
133
134 .PHONY: all clean distclean
135
136 all: $(BINDIR)/bacula.dll $(LIBDIR)/libbacula.a
137
138 distclean: clean
139
140 clean:
141         @echo "Cleaning `pwd`"
142         $(call clean_obj,$(ALL_OBJS))
143         $(call clean_exe,$(BINDIR)/bacula.dll)
144         $(ECHO_CMD)rm -f $(OBJDIR)/bacula.a $(LIBDIR)/libbacula.a
145         $(ECHO_CMD)rm -rf $(OBJDIRS)
146
147 #
148 # Rules for generating from ../lib
149 #
150
151 $(LIBDIR)/libbacula.a: DLL_DEFINE=USING_DLL
152
153 $(LIBDIR)/libbacula.a: $(BINDIR)/bacula.dll $(STATIC_OBJS)
154         @echo "Updating archive $@"
155         $(call checkdir,$@)
156         $(ECHO_CMD)cp $(OBJDIR)/bacula.a $@
157         $(ECHO_CMD)$(AR) rsv $@ $(filter %.o,$^)
158
159 $(BINDIR)/bacula.dll: DLL_DEFINE=BUILDING_DLL
160
161 $(BINDIR)/bacula.dll: $(DLL_OBJS) bacula$(WIN_VERSION).def
162         @echo "Linking $@"
163         $(call checkdir,$@)
164         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows -Wl,--out-implib,$(OBJDIR)/bacula.a $^ $(LIBS_DLL) -o $@
165
166 bacula$(WIN_VERSION).def: $(DLL_OBJS)
167         ./make_def$(WIN_VERSION) $(DLL_OBJS) >bacula$(WIN_VERSION).def.new && \
168           mv bacula$(WIN_VERSION).def.new bacula$(WIN_VERSION).def
169
170
171 include ../Makefile.rules
172
173 $(OBJDIR)/%.o: %.c
174         @echo "Compiling $<"
175         $(call checkdir,$@)
176         $(ECHO_CMD)$(CXX) -D$(DLL_DEFINE) $(CFLAGS) -c $< -o $@
177
178 $(OBJDIR)/%.o: %.cpp
179         @echo "Compiling $<"
180         $(call checkdir,$@)
181         $(ECHO_CMD)$(CXX) -D$(DLL_DEFINE) $(CFLAGS) -c $< -o $@