]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/cats/Makefile
Backport changes for Windows compiling
[bacula/bacula] / bacula / src / win32 / cats / 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 %.c $(MAINDIR)/src/cats
21 vpath %.cpp $(MAINDIR)/src/cats
22
23 ######################################################################
24
25 # Files files in src/lib
26
27 SQL_OBJS = \
28         sql.o \
29         sql_cmds.o \
30         sql_create.o \
31         sql_delete.o \
32         sql_find.o \
33         sql_get.o \
34         sql_glue.o \
35         sql_list.o \
36         sql_update.o \
37         bvfs.o
38
39 LIBS_DLL = \
40         $(LIBS_BACULA)
41
42 ######################################################################
43
44 # Targets
45
46 .PHONY: all clean
47
48 all: $(LIBDIR)/libcats.a $(BINDIR)/cats_mysql.dll $(BINDIR)/cats_postgresql.dll $(BINDIR)/cats_sqlite3.dll
49
50 clean:
51         @echo "Cleaning `pwd`"
52         $(call clean_obj,$(addprefix $(OBJDIR)/cats_mysql/,mysql.o $(SQL_OBJS)))
53         $(call clean_obj,$(addprefix $(OBJDIR)/cats_postgresql/,postgresql.o $(SQL_OBJS)))
54         $(call clean_obj,$(addprefix $(OBJDIR)/cats_sqlite3/,sqlite.o $(SQL_OBJS)))
55         $(call clean_exe,$(BINDIR)/cats_mysql.dll)
56         $(call clean_exe,$(BINDIR)/cats_postgresql.dll)
57         $(call clean_exe,$(BINDIR)/cats_sqlite3.dll)
58         $(ECHO_CMD)rm -f $(OBJDIR)/libcats.exp $(LIBDIR)/libcats.a
59         $(ECHO_CMD)rm -rf $(OBJDIRS)
60
61 $(LIBDIR)/libcats.a $(OBJDIR)/libcats.exp: bacula_cats.def
62         $(call checkdir,$@)
63         @mkdir -p $(OBJDIRS)
64         $(DLLTOOL) --dllname bacula_cats.dll --no-export-all-symbols --input-def bacula_cats.def --output-exp $(OBJDIR)/libcats.exp --output-lib $(LIBDIR)/libcats.a $^
65
66 $(BINDIR)/cats_mysql.dll: $(addprefix $(OBJDIR)/cats_mysql/,mysql.o $(SQL_OBJS)) $(OBJDIR)/libcats.exp
67         @echo "Linking $@"
68         $(call checkdir,$@)
69         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows $^ $(LIBS_MYSQL) $(LIBS_DLL) -o $@
70
71 $(BINDIR)/cats_postgresql.dll: $(addprefix $(OBJDIR)/cats_postgresql/,postgresql.o $(SQL_OBJS)) $(OBJDIR)/libcats.exp
72         @echo "Linking $@"
73         $(call checkdir,$@)
74         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows $^ $(LIBS_POSTGRESQL) $(LIBS_DLL) -o $@
75
76 $(BINDIR)/cats_sqlite3.dll: $(addprefix $(OBJDIR)/cats_sqlite3/,sqlite.o $(SQL_OBJS)) $(OBJDIR)/libcats.exp
77         @echo "Linking $@"
78         $(call checkdir,$@)
79         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows $^ $(LIBS_SQLITE) $(LIBS_DLL) -o $@
80
81 #
82 # Rules for generating from ../cats
83 #
84
85 include ../Makefile.rules
86
87 define Link_Dll
88 $(OBJDIR)/$(1)/%.o: %.c
89         @echo "Compiling $$<"
90         $$(call checkdir,$$@)
91         $(ECHO_CMD)$(CXX) -DBUILDING_CATS -DUSING_DLL -DHAVE_$(2) $(CFLAGS) -c $$< -o $$@
92
93 $(OBJDIR)/$(1)/%.o: %.cpp
94         @echo "Compiling $$<"
95         $$(call checkdir,$$@)
96         $(ECHO_CMD)$(CXX) -DBUILDING_CATS -DUSING_DLL -DHAVE_$(2) $(CFLAGS) -c $$< -o $$@
97
98 endef
99
100 $(eval $(call Link_Dll,cats_mysql,MYSQL))
101
102 $(eval $(call Link_Dll,cats_postgresql,POSTGRESQL))
103
104 $(eval $(call Link_Dll,cats_sqlite3,SQLITE3))