2 # Makefile for win32 bacula executables
3 # Using MinGW cross-compiler on GNU/Linux
6 # Author: Robert Nelson
7 # License: BSD 2-Clause; see file LICENSE-FOSS
9 # Written by Robert Nelson, June 2006
12 include ../Makefile.inc
24 vpath %.c $(MAINDIR)/src/cats
25 vpath %.cpp $(MAINDIR)/src/cats
27 ######################################################################
29 # Files files in src/lib
47 ######################################################################
53 #all: $(LIBDIR)/libcats.a $(BINDIR)/cats_mysql.dll $(BINDIR)/cats_postgresql.dll $(BINDIR)/cats_sqlite3.dll
54 all: $(LIBDIR)/libcats.a $(BINDIR)/cats_postgresql.dll
57 @echo "Cleaning `pwd`"
58 $(call clean_obj,$(addprefix $(OBJDIR)/cats_mysql/,mysql.o $(SQL_OBJS)))
59 $(call clean_obj,$(addprefix $(OBJDIR)/cats_postgresql/,postgresql.o $(SQL_OBJS)))
60 $(call clean_obj,$(addprefix $(OBJDIR)/cats_sqlite3/,sqlite.o $(SQL_OBJS)))
61 $(call clean_exe,$(BINDIR)/cats_mysql.dll)
62 $(call clean_exe,$(BINDIR)/cats_postgresql.dll)
63 $(call clean_exe,$(BINDIR)/cats_sqlite3.dll)
64 $(ECHO_CMD)rm -f $(OBJDIR)/libcats.exp $(LIBDIR)/libcats.a
65 $(ECHO_CMD)rm -rf $(OBJDIRS)
67 $(LIBDIR)/libcats.a $(OBJDIR)/libcats.exp: bacula_cats.def
70 $(DLLTOOL) --dllname bacula_cats.dll --no-export-all-symbols --input-def bacula_cats.def --output-exp $(OBJDIR)/libcats.exp --output-lib $(LIBDIR)/libcats.a $^
72 $(BINDIR)/cats_mysql.dll: $(addprefix $(OBJDIR)/cats_mysql/,mysql.o $(SQL_OBJS)) $(OBJDIR)/libcats.exp
75 $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows $^ $(LIBS_MYSQL) $(LIBS_DLL) -o $@
77 $(BINDIR)/cats_postgresql.dll: $(addprefix $(OBJDIR)/cats_postgresql/,postgresql.o $(SQL_OBJS)) $(OBJDIR)/libcats.exp
80 $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows $^ $(LIBS_POSTGRESQL) $(LIBS_DLL) -o $@
82 $(BINDIR)/cats_sqlite3.dll: $(addprefix $(OBJDIR)/cats_sqlite3/,sqlite.o $(SQL_OBJS)) $(OBJDIR)/libcats.exp
85 $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows $^ $(LIBS_SQLITE) $(LIBS_DLL) -o $@
88 # Rules for generating from ../cats
91 include ../Makefile.rules
94 $(OBJDIR)/$(1)/%.o: %.c
97 $(ECHO_CMD)$(CXX) -D_BDB_PRIV_INTERFACE_ -DBUILDING_CATS -DUSING_DLL -DHAVE_$(2) $(CFLAGS) -c $$< -o $$@
99 $(OBJDIR)/$(1)/%.o: %.cpp
100 @echo "Compiling $$<"
101 $$(call checkdir,$$@)
102 $(ECHO_CMD)$(CXX) -D_BDB_PRIV_INTERFACE_ -DBUILDING_CATS -DUSING_DLL -DHAVE_$(2) $(CFLAGS) -c $$< -o $$@
106 $(eval $(call Link_Dll,cats_mysql,MYSQL))
108 $(eval $(call Link_Dll,cats_postgresql,POSTGRESQL))
110 $(eval $(call Link_Dll,cats_sqlite3,SQLITE3))