]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/filed/plugins/Makefile
First cut Share Point plugin
[bacula/bacula] / bacula / src / win32 / filed / plugins / Makefile
1 #
2 # Makefile for win32 bacula executables
3 # Using MinGW cross-compiler on GNU/Linux
4 #
5 #  Written by James Harper, October 2008
6 #     Patterned after a Makefile by Robert Nelson, June 2006
7 #
8
9 #
10 # Change the following depending on where this directory is located
11 #  in the Bacula tree.  It should point to the src/win32 directory.
12 BUILDDIR = ../..
13
14 include $(BUILDDIR)/Makefile.inc
15
16 INCLUDES = \
17         $(INCLUDE_PTHREADS) \
18         $(INCLUDE_BACULA) \
19         $(INCLUDE_ZLIB) \
20         $(INCLUDE_OPENSSL) \
21         $(INCLUDE_VSS) \
22         -I$(MAINDIR)/src \
23         -I$(MAINDIR)/src/filed \
24         -I$(MAINDIR)/src/win32/filed
25
26 DEFINES = \
27         $(HAVES)
28
29 #vpath %.c $(BUILDDIR)/compat $(MAINDIR)/src/findlib $(MAINDIR)/src/lib
30 #vpath %.cpp $(BUILDDIR)/compat $(MAINDIR)/src/findlib $(MAINDIR)/src/lib
31
32 ######################################################################
33
34 # Files files in src/win32/filed/plugins
35
36 EXCHANGE_OBJS = \
37         $(OBJDIR)/exchange-fd.o \
38         $(OBJDIR)/api.o \
39         $(OBJDIR)/node.o \
40         $(OBJDIR)/root_node.o \
41         $(OBJDIR)/service_node.o \
42         $(OBJDIR)/storage_group_node.o \
43         $(OBJDIR)/store_node.o \
44         $(OBJDIR)/dbi_node.o \
45         $(OBJDIR)/file_node.o
46
47 VSS_BASE_OBJS = \
48         $(OBJDIR)/vss_plugin_wrapper.o \
49         $(OBJDIR)/vss_base.o \
50         $(OBJDIR)/vss_node.o \
51         $(OBJDIR)/vss_root_node.o \
52         $(OBJDIR)/vss_writer_node.o \
53         $(OBJDIR)/vss_component_node.o \
54         $(OBJDIR)/vss_file_node.o \
55         $(OBJDIR)/find_filespec.o
56
57 SYSTEMSTATE_OBJS = \
58         $(VSS_BASE_OBJS) \
59         $(OBJDIR)/systemstate-fd.o \
60         $(OBJDIR)/systemstate_registry.o \
61         $(OBJDIR)/systemstate_frs.o \
62         $(OBJDIR)/systemstate_dfsr.o \
63         $(OBJDIR)/systemstate_complusregdb.o
64
65 SHAREPOINT_OBJS = \
66         $(VSS_BASE_OBJS) \
67         $(OBJDIR)/sharepoint-fd.o
68
69 BPIPE_OBJS = \
70         $(OBJDIR)/bpipe-fd.o
71
72 LIBS_DLL = \
73         $(LIBS_SSL) \
74         $(LIBS_CRYPTO) \
75         $(LIBS_PTHREADS) \
76         $(LIBS_ZLIB) \
77         $(LIBS_NETWORK) \
78         -lole32 \
79         -loleaut32 \
80         -luuid
81
82 ######################################################################
83
84 # Targets
85
86 .PHONY: all clean
87
88 all: $(BINDIR)/exchange-fd.dll $(BINDIR)/systemstate-fd.dll $(BINDIR)/sharepoint-fd.dll $(BINDIR)/bpipe-fd.dll
89
90 clean:
91         @echo "Cleaning `pwd`"
92         $(call clean_obj,$(EXCHANGE_OBJS))
93         $(call clean_exe,$(BINDIR)/exchange-fd.dll)
94         $(ECHO_CMD)rm -f $(OBJDIR)/exchange-fd.a $(LIBDIR)/libexchange-fd.a
95         $(call clean_obj,$(SYSTEMSTATE_OBJS))
96         $(call clean_exe,$(BINDIR)/systemstate-fd.dll)
97         $(ECHO_CMD)rm -f $(OBJDIR)/systemstate-fd.a $(LIBDIR)/libsystemstate-fd.a
98         $(call clean_obj,$(SHAREPOINT_OBJS))
99         $(call clean_exe,$(BINDIR)/sharepoint-fd.dll)
100         $(ECHO_CMD)rm -f $(OBJDIR)/sharepoint-fd.a $(LIBDIR)/libsharepoint-fd.a
101         $(ECHO_CMD)rm -rf $(OBJDIRS)
102
103 #
104 # Rules for generating from ../lib
105 #
106
107 #$(LIBDIR)/libexchange-fd.a: DLL_DEFINE=USING_DLL
108
109 #$(LIBDIR)/libexchange-fd.a: $(BINDIR)/exchange-fd.dll $(STATIC_OBJS)
110 #       @echo "Updating archive $@"
111 #       $(call checkdir,$@)
112 #       $(ECHO_CMD)cp $(OBJDIR)/exchange-fd.a $@
113 #       $(ECHO_CMD)$(AR) rsv $@ $(filter %.o,$^)
114
115 $(BINDIR)/exchange-fd.dll: DLL_DEFINE=BUILDING_DLL
116
117 $(BINDIR)/exchange-fd.dll: $(EXCHANGE_OBJS) exchange-fd.def
118         @echo "Linking $@"
119         $(call checkdir,$@)
120         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows -Wl,--out-implib,$(OBJDIR)/exchange-fd.a $^ $(LIBS_DLL) -o $@
121
122 $(BINDIR)/systemstate-fd.dll: DLL_DEFINE=BUILDING_DLL
123
124 $(BINDIR)/systemstate-fd.dll: $(SYSTEMSTATE_OBJS) systemstate-fd.def $(LIBS_BACULA)
125         @echo "Linking $@"
126         $(call checkdir,$@)
127         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows -Wl,--out-implib,$(OBJDIR)/systemstate-fd.a $^ $(LIBS_DLL) -o $@
128
129 $(BINDIR)/sharepoint-fd.dll: DLL_DEFINE=BUILDING_DLL
130
131 $(BINDIR)/sharepoint-fd.dll: $(SHAREPOINT_OBJS) sharepoint-fd.def $(LIBS_BACULA)
132         @echo "Linking $@"
133         $(call checkdir,$@)
134         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows -Wl,--out-implib,$(OBJDIR)/sharepoint-fd.a $^ $(LIBS_DLL) -o $@
135
136 $(BINDIR)/bpipe-fd.dll: DLL_DEFINE=BUILDING_DLL
137
138 $(BINDIR)/bpipe-fd.dll: $(BPIPE_OBJS) bpipe-fd.def $(LIBS_BACULA)
139         @echo "Linking $@"
140         $(call checkdir,$@)
141         $(ECHO_CMD)$(CXX) $(CFLAGS) $(LDFLAGS) -mdll -mwindows -Wl,--out-implib,$(OBJDIR)/bpipe-fd.a $^ $(LIBS_DLL) -o $@
142
143
144 include $(BUILDDIR)/Makefile.rules
145
146 $(OBJDIR)/%.o: %.c
147         @echo "Compiling $<"
148         $(call checkdir,$@)
149         $(ECHO_CMD)$(CXX) -D$(DLL_DEFINE) $(CFLAGS) -c $< -o $@
150
151 $(OBJDIR)/%.o: %.cpp
152         @echo "Compiling $<"
153         $(call checkdir,$@)
154         $(ECHO_CMD)$(CXX) -D$(DLL_DEFINE) $(CFLAGS) -c $< -o $@