]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/dll/Makefile
Complete port to Windows
[bacula/bacula] / bacula / src / win32 / dll / Makefile
1 #
2 # Makefile for win32 bacula executables
3 # Using MinGW cross-compiler on GNU/Linux
4 #
5 #  Written by Robert Nelson, June 2006
6 #
7
8 include ../Makefile.inc
9
10 INCLUDES = \
11         $(INCLUDE_PTHREADS) \
12         $(INCLUDE_BACULA) \
13         $(INCLUDE_ZLIB) \
14         $(INCLUDE_OPENSSL) \
15         $(INCLUDE_MYSQL)
16
17 DEFINES = \
18         $(HAVES)
19
20 VPATH = ../../cats ../compat ../../findlib ../../lib
21
22 ######################################################################
23
24 # Files files in src/lib
25
26 CATS_OBJS = \
27         $(OBJDIR)/bdb.o \
28         $(OBJDIR)/bdb_create.o \
29         $(OBJDIR)/bdb_delete.o \
30         $(OBJDIR)/bdb_find.o \
31         $(OBJDIR)/bdb_get.o \
32         $(OBJDIR)/bdb_list.o \
33         $(OBJDIR)/bdb_update.o \
34         $(OBJDIR)/mysql.o \
35         $(OBJDIR)/postgresql.o \
36         $(OBJDIR)/sql.o \
37         $(OBJDIR)/sql_create.o \
38         $(OBJDIR)/sql_delete.o \
39         $(OBJDIR)/sql_find.o \
40         $(OBJDIR)/sql_get.o \
41         $(OBJDIR)/sql_list.o \
42         $(OBJDIR)/sql_update.o \
43         $(OBJDIR)/sqlite.o
44
45 COMPAT_OBJS = \
46         $(OBJDIR)/compat.o \
47         $(OBJDIR)/print.o \
48         $(OBJDIR)/winapi.o
49
50 #       $(OBJDIR)/getopt.o \
51
52 FIND_OBJS = \
53         $(OBJDIR)/attribs.o \
54         $(OBJDIR)/bfile.o \
55         $(OBJDIR)/create_file.o \
56         $(OBJDIR)/drivetype.o \
57         $(OBJDIR)/enable_priv.o \
58         $(OBJDIR)/find.o \
59         $(OBJDIR)/find_one.o \
60         $(OBJDIR)/fstype.o \
61         $(OBJDIR)/makepath.o \
62         $(OBJDIR)/match.o \
63         $(OBJDIR)/save-cwd.o
64
65 LIB_OBJS = \
66         $(OBJDIR)/address_conf.o \
67         $(OBJDIR)/alist.o \
68         $(OBJDIR)/alloc.o \
69         $(OBJDIR)/attr.o \
70         $(OBJDIR)/base64.o \
71         $(OBJDIR)/berrno.o \
72         $(OBJDIR)/bget_msg.o \
73         $(OBJDIR)/bnet.o \
74         $(OBJDIR)/bnet_server.o \
75         $(OBJDIR)/bpipe.o \
76         $(OBJDIR)/bregex.o \
77         $(OBJDIR)/bsnprintf.o \
78         $(OBJDIR)/bsys.o \
79         $(OBJDIR)/btime.o \
80         $(OBJDIR)/btimers.o \
81         $(OBJDIR)/btree.o \
82         $(OBJDIR)/cram-md5.o \
83         $(OBJDIR)/crc32.o \
84         $(OBJDIR)/crypto.o \
85         $(OBJDIR)/daemon.o \
86         $(OBJDIR)/dlist.o \
87         $(OBJDIR)/edit.o \
88         $(OBJDIR)/enh_fnmatch.o \
89         $(OBJDIR)/fnmatch.o \
90         $(OBJDIR)/hmac.o \
91         $(OBJDIR)/htable.o \
92         $(OBJDIR)/idcache.o \
93         $(OBJDIR)/jcr.o \
94         $(OBJDIR)/lex.o \
95         $(OBJDIR)/md5.o \
96         $(OBJDIR)/mem_pool.o \
97         $(OBJDIR)/message.o \
98         $(OBJDIR)/openssl.o \
99         $(OBJDIR)/pythonlib.o \
100         $(OBJDIR)/queue.o \
101         $(OBJDIR)/runscript.o \
102         $(OBJDIR)/rwlock.o \
103         $(OBJDIR)/scan.o \
104         $(OBJDIR)/semlock.o \
105         $(OBJDIR)/serial.o \
106         $(OBJDIR)/sha1.o \
107         $(OBJDIR)/signal.o \
108         $(OBJDIR)/smartall.o \
109         $(OBJDIR)/tls.o \
110         $(OBJDIR)/tree.o \
111         $(OBJDIR)/util.o \
112         $(OBJDIR)/var.o \
113         $(OBJDIR)/watchdog.o \
114         $(OBJDIR)/workq.o
115
116 DLL_OBJS = \
117         $(CATS_OBJS) $(COMPAT_OBJS) $(FIND_OBJS) $(LIB_OBJS)
118
119 STATIC_OBJS = \
120         $(OBJDIR)/parse_conf.o \
121         $(OBJDIR)/res.o
122
123 ALL_OBJS = \
124         $(DLL_OBJS) $(STATIC_OBJS)
125
126 LIBS_DLL = \
127         $(LIBS_SSL) \
128         $(LIBS_CRYPTO) \
129         $(LIBS_SQL) \
130         $(LIBS_PTHREADS) \
131         $(LIBS_ZLIB) \
132         -lwsock32 \
133         -lole32 \
134         -loleaut32 \
135         -luuid
136
137 ######################################################################
138
139 # Targets
140
141 .PHONY: all clean
142
143 all: $(BINDIR)/bacula.dll $(LIBDIR)/libbacula.a
144
145 clean:
146         @echo "Cleaning `pwd`"
147         $(call clean_obj,$(ALL_OBJS))
148         $(call clean_exe,$(BINDIR)/bacula.dll)
149         $(ECHO_CMD)rm -f $(OBJDIR)/bacula.a $(LIBDIR)/libbacula.a
150
151 #
152 # Rules for generating from ../lib
153 #
154
155 $(LIBDIR)/libbacula.a: DLL_DEFINE=USING_DLL
156
157 $(LIBDIR)/libbacula.a: $(BINDIR)/bacula.dll $(STATIC_OBJS)
158         @echo "Updating archive $@"
159         $(call checkdir,$@)
160         $(ECHO_CMD)cp $(OBJDIR)/bacula.a $@
161         $(ECHO_CMD)$(AR) rsv $@ $(filter %.o,$^)
162
163 $(BINDIR)/bacula.dll: DLL_DEFINE=BUILDING_DLL
164
165 $(BINDIR)/bacula.dll: $(COMPAT_OBJS) $(DLL_OBJS) bacula.def
166         @echo "Linking $@"
167         $(call checkdir,$@)
168         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows -Wl,--out-implib,$(OBJDIR)/bacula.a $^ $(LIBS_DLL) -o $@
169         $(makedbg)
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 $@