2 # Copyright (C) 2000-2018 Kern Sibbald
3 # License: BSD 2-Clause; see file LICENSE-FOSS
6 # Makefile for win32 bacula executables
7 # Using MinGW cross-compiler on GNU/Linux
9 # Written by Robert Nelson, June 2006
12 include ../Makefile.inc
23 vpath %.c $(BUILDDIR)/compat $(MAINDIR)/src/findlib $(MAINDIR)/src/lib
24 vpath %.cpp $(BUILDDIR)/compat $(MAINDIR)/src/findlib $(MAINDIR)/src/lib
26 ######################################################################
28 # Files files in src/lib
35 # $(OBJDIR)/getopt.o \
40 $(OBJDIR)/win32filter.o \
41 $(OBJDIR)/create_file.o \
42 $(OBJDIR)/drivetype.o \
43 $(OBJDIR)/enable_priv.o \
45 $(OBJDIR)/find_one.o \
51 $(OBJDIR)/address_conf.o \
56 $(OBJDIR)/bget_msg.o \
58 $(OBJDIR)/bnet_server.o \
63 $(OBJDIR)/bsnprintf.o \
67 $(OBJDIR)/cram-md5.o \
74 $(OBJDIR)/guid_to_name.o \
81 $(OBJDIR)/mem_pool.o \
88 $(OBJDIR)/runscript.o \
94 $(OBJDIR)/smartall.o \
99 $(OBJDIR)/watchdog.o \
101 $(OBJDIR)/binflate.o \
104 $(OBJDIR)/sellist.o \
105 $(OBJDIR)/lockmgr.o \
110 $(COMPAT_OBJS) $(FIND_OBJS) $(LIB_OBJS)
113 $(OBJDIR)/parse_conf.o \
117 $(DLL_OBJS) $(STATIC_OBJS)
130 ######################################################################
134 .PHONY: all clean distclean
136 all: $(BINDIR)/bacula.dll $(LIBDIR)/libbacula.a
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)
148 # Rules for generating from ../lib
151 $(LIBDIR)/libbacula.a: DLL_DEFINE=USING_DLL
153 $(LIBDIR)/libbacula.a: $(BINDIR)/bacula.dll $(STATIC_OBJS)
154 @echo "Updating archive $@"
156 $(ECHO_CMD)cp $(OBJDIR)/bacula.a $@
157 $(ECHO_CMD)$(AR) rsv $@ $(filter %.o,$^)
159 $(BINDIR)/bacula.dll: DLL_DEFINE=BUILDING_DLL
161 $(BINDIR)/bacula.dll: $(DLL_OBJS) bacula$(WIN_VERSION).def
164 $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows -Wl,--out-implib,$(OBJDIR)/bacula.a $^ $(LIBS_DLL) -o $@
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
171 include ../Makefile.rules
176 $(ECHO_CMD)$(CXX) -D$(DLL_DEFINE) $(CFLAGS) -c $< -o $@
181 $(ECHO_CMD)$(CXX) -D$(DLL_DEFINE) $(CFLAGS) -c $< -o $@