]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/lib/Makefile
Second plugin patch
[bacula/bacula] / bacula / src / win32 / lib / 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
16 DEFINES = \
17         $(HAVES)
18
19 vpath %.c $(BUILDDIR)/compat $(MAINDIR)/src/findlib $(MAINDIR)/src/lib
20 vpath %.cpp $(BUILDDIR)/compat $(MAINDIR)/src/findlib $(MAINDIR)/src/lib
21
22 ######################################################################
23
24 # Files files in src/lib
25
26 COMPAT_OBJS = \
27         $(OBJDIR)/compat.o \
28         $(OBJDIR)/print.o \
29         $(OBJDIR)/winapi.o
30
31 #       $(OBJDIR)/getopt.o \
32
33 FIND_OBJS = \
34         $(OBJDIR)/attribs.o \
35         $(OBJDIR)/bfile.o \
36         $(OBJDIR)/create_file.o \
37         $(OBJDIR)/drivetype.o \
38         $(OBJDIR)/enable_priv.o \
39         $(OBJDIR)/find.o \
40         $(OBJDIR)/find_one.o \
41         $(OBJDIR)/fstype.o \
42         $(OBJDIR)/mkpath.o \
43         $(OBJDIR)/match.o
44
45 LIB_OBJS = \
46         $(OBJDIR)/address_conf.o \
47         $(OBJDIR)/alist.o \
48         $(OBJDIR)/attr.o \
49         $(OBJDIR)/base64.o \
50         $(OBJDIR)/berrno.o \
51         $(OBJDIR)/bget_msg.o \
52         $(OBJDIR)/bnet.o \
53         $(OBJDIR)/bnet_server.o \
54         $(OBJDIR)/bpipe.o \
55         $(OBJDIR)/breg.o \
56         $(OBJDIR)/bregex.o \
57         $(OBJDIR)/bsock.o \
58         $(OBJDIR)/bsnprintf.o \
59         $(OBJDIR)/bsys.o \
60         $(OBJDIR)/btime.o \
61         $(OBJDIR)/btimers.o \
62         $(OBJDIR)/cram-md5.o \
63         $(OBJDIR)/crc32.o \
64         $(OBJDIR)/crypto.o \
65         $(OBJDIR)/daemon.o \
66         $(OBJDIR)/dlist.o \
67         $(OBJDIR)/edit.o \
68         $(OBJDIR)/fnmatch.o \
69         $(OBJDIR)/guid_to_name.o \
70         $(OBJDIR)/hmac.o \
71         $(OBJDIR)/htable.o \
72         $(OBJDIR)/jcr.o \
73         $(OBJDIR)/lex.o \
74         $(OBJDIR)/md5.o \
75         $(OBJDIR)/mem_pool.o \
76         $(OBJDIR)/message.o \
77         $(OBJDIR)/openssl.o \
78         $(OBJDIR)/plugins.o \
79         $(OBJDIR)/priv.o \
80         $(OBJDIR)/pythonlib.o \
81         $(OBJDIR)/queue.o \
82         $(OBJDIR)/rblist.o \
83         $(OBJDIR)/runscript.o \
84         $(OBJDIR)/rwlock.o \
85         $(OBJDIR)/scan.o \
86         $(OBJDIR)/serial.o \
87         $(OBJDIR)/sha1.o \
88         $(OBJDIR)/signal.o \
89         $(OBJDIR)/smartall.o \
90         $(OBJDIR)/tls.o \
91         $(OBJDIR)/tree.o \
92         $(OBJDIR)/util.o \
93         $(OBJDIR)/var.o \
94         $(OBJDIR)/watchdog.o \
95         $(OBJDIR)/workq.o \
96         $(OBJDIR)/lockmgr.o
97
98 DLL_OBJS = \
99         $(COMPAT_OBJS) $(FIND_OBJS) $(LIB_OBJS)
100
101 STATIC_OBJS = \
102         $(OBJDIR)/parse_conf.o \
103         $(OBJDIR)/res.o
104
105 ALL_OBJS = \
106         $(DLL_OBJS) $(STATIC_OBJS)
107
108 LIBS_DLL = \
109         $(LIBS_SSL) \
110         $(LIBS_CRYPTO) \
111         $(LIBS_PTHREADS) \
112         $(LIBS_ZLIB) \
113         $(LIBS_NETWORK) \
114         -lole32 \
115         -loleaut32 \
116         -luuid
117
118 ######################################################################
119
120 # Targets
121
122 .PHONY: all clean
123
124 all: $(BINDIR)/bacula.dll $(LIBDIR)/libbacula.a
125
126 clean:
127         @echo "Cleaning `pwd`"
128         $(call clean_obj,$(ALL_OBJS))
129         $(call clean_exe,$(BINDIR)/bacula.dll)
130         $(ECHO_CMD)rm -f $(OBJDIR)/bacula.a $(LIBDIR)/libbacula.a
131         $(ECHO_CMD)rm -rf $(OBJDIRS)
132
133 #
134 # Rules for generating from ../lib
135 #
136
137 $(LIBDIR)/libbacula.a: DLL_DEFINE=USING_DLL
138
139 $(LIBDIR)/libbacula.a: $(BINDIR)/bacula.dll $(STATIC_OBJS)
140         @echo "Updating archive $@"
141         $(call checkdir,$@)
142         $(ECHO_CMD)cp $(OBJDIR)/bacula.a $@
143         $(ECHO_CMD)$(AR) rsv $@ $(filter %.o,$^)
144
145 $(BINDIR)/bacula.dll: DLL_DEFINE=BUILDING_DLL
146
147 $(BINDIR)/bacula.dll: $(DLL_OBJS) bacula$(WIN_VERSION).def
148         @echo "Linking $@"
149         $(call checkdir,$@)
150         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows -Wl,--out-implib,$(OBJDIR)/bacula.a $^ $(LIBS_DLL) -o $@
151
152 #bacula$(WIN_VERSION).def: $(DLL_OBJS)
153 #        ./make_def $(DLL_OBJS) >bacula$(WIN_VERSION).def.new && \
154 #        mv bacula$(WIN_VERSION).def.new bacula$(WIN_VERSION).def
155
156
157 include ../Makefile.rules
158
159 $(OBJDIR)/%.o: %.c
160         @echo "Compiling $<"
161         $(call checkdir,$@)
162         $(ECHO_CMD)$(CXX) -D$(DLL_DEFINE) $(CFLAGS) -c $< -o $@
163
164 $(OBJDIR)/%.o: %.cpp
165         @echo "Compiling $<"
166         $(call checkdir,$@)
167         $(ECHO_CMD)$(CXX) -D$(DLL_DEFINE) $(CFLAGS) -c $< -o $@