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