]> git.sur5r.net Git - bacula/bacula/blob - bacula/src/win32/cats/Makefile
Restore win32 dir from Branch-5.2 and update it
[bacula/bacula] / bacula / src / win32 / cats / Makefile
1 #
2 # Makefile for win32 bacula executables
3 # Using MinGW cross-compiler on GNU/Linux
4 #
5 #
6 # Author: Robert Nelson
7 # License: BSD 2-Clause; see file LICENSE-FOSS
8 #
9 #  Written by Robert Nelson, June 2006
10 #
11
12 include ../Makefile.inc
13
14 INCLUDES = \
15         $(INCLUDE_PTHREADS) \
16         $(INCLUDE_BACULA) \
17         $(INCLUDE_ZLIB) \
18         $(INCLUDE_OPENSSL) \
19         $(INCLUDE_MYSQL)
20
21 DEFINES = \
22         $(HAVES)
23
24 vpath %.c $(MAINDIR)/src/cats
25 vpath %.cpp $(MAINDIR)/src/cats
26
27 ######################################################################
28
29 # Files files in src/lib
30
31 SQL_OBJS = \
32         sql.o \
33         sql_cmds.o \
34         sql_create.o \
35         sql_delete.o \
36         sql_find.o \
37         sql_get.o \
38         sql_glue.o \
39         sql_list.o \
40         sql_update.o \
41         cats.o \
42         bvfs.o
43
44 LIBS_DLL = \
45         $(LIBS_BACULA)
46
47 ######################################################################
48
49 # Targets
50
51 .PHONY: all clean
52
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
55
56 clean:
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)
66
67 $(LIBDIR)/libcats.a $(OBJDIR)/libcats.exp: bacula_cats.def
68         $(call checkdir,$@)
69         @mkdir -p $(OBJDIRS)
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 $^
71
72 $(BINDIR)/cats_mysql.dll: $(addprefix $(OBJDIR)/cats_mysql/,mysql.o $(SQL_OBJS)) $(OBJDIR)/libcats.exp
73         @echo "Linking $@"
74         $(call checkdir,$@)
75         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows $^ $(LIBS_MYSQL) $(LIBS_DLL) -o $@
76
77 $(BINDIR)/cats_postgresql.dll: $(addprefix $(OBJDIR)/cats_postgresql/,postgresql.o $(SQL_OBJS)) $(OBJDIR)/libcats.exp
78         @echo "Linking $@"
79         $(call checkdir,$@)
80         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows $^ $(LIBS_POSTGRESQL) $(LIBS_DLL) -o $@
81
82 $(BINDIR)/cats_sqlite3.dll: $(addprefix $(OBJDIR)/cats_sqlite3/,sqlite.o $(SQL_OBJS)) $(OBJDIR)/libcats.exp
83         @echo "Linking $@"
84         $(call checkdir,$@)
85         $(ECHO_CMD)$(CXX) $(LDFLAGS) -mdll -mwindows $^ $(LIBS_SQLITE) $(LIBS_DLL) -o $@
86
87 #
88 # Rules for generating from ../cats
89 #
90
91 include ../Makefile.rules
92
93 define Link_Dll
94 $(OBJDIR)/$(1)/%.o: %.c
95         @echo "Compiling $$<"
96         $$(call checkdir,$$@)
97         $(ECHO_CMD)$(CXX) -D_BDB_PRIV_INTERFACE_ -DBUILDING_CATS -DUSING_DLL -DHAVE_$(2) $(CFLAGS) -c $$< -o $$@
98
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 $$@
103
104 endef
105
106 $(eval $(call Link_Dll,cats_mysql,MYSQL))
107
108 $(eval $(call Link_Dll,cats_postgresql,POSTGRESQL))
109
110 $(eval $(call Link_Dll,cats_sqlite3,SQLITE3))