11 # this dir relative to top dir
14 DEFS += -D_BDB_PRIV_INTERFACE_
15 #CPPFLAGS += @DBI_DBD_DRIVERDIR@
18 MKDIR=$(topdir)/autoconf/mkinstalldirs
24 # include files installed when using libtool
26 INCLUDE_FILES = cats.h protos.h sql_cmds.h
28 MYSQL_INCLUDE = @MYSQL_INCLUDE@
29 MYSQL_LIBS = @MYSQL_LIBS@
31 MYSQL_OBJS = $(MYSQL_SRCS:.c=.o)
32 MYSQL_LOBJS = $(MYSQL_SRCS:.c=.lo)
34 POSTGRESQL_INCLUDE = @POSTGRESQL_INCLUDE@
35 POSTGRESQL_LIBS = @POSTGRESQL_LIBS@
36 POSTGRESQL_SRCS = postgresql.c
37 POSTGRESQL_OBJS = $(POSTGRESQL_SRCS:.c=.o)
38 POSTGRESQL_LOBJS = $(POSTGRESQL_SRCS:.c=.lo)
40 SQLITE_INCLUDE = @SQLITE_INCLUDE@
41 SQLITE_LIBS = @SQLITE_LIBS@
42 SQLITE_SRCS = sqlite.c
43 SQLITE_OBJS = $(SQLITE_SRCS:.c=.o)
44 SQLITE_LOBJS = $(SQLITE_SRCS:.c=.lo)
46 #INGRES_INCLUDE = @INGRES_INCLUDE@
47 #INGRES_LIBS = @INGRES_LIBS@
48 #INGRES_SRCS = ingres.c myingres.c
49 #INGRES_OBJS = $(INGRES_SRCS:.c=.o)
50 #INGRES_LOBJS = $(INGRES_SRCS:.c=.lo)
52 #DBI_INCLUDE = @DBI_INCLUDE@
53 #DBI_LIBS = @DBI_LIBS@
55 #DBI_OBJS = $(DBI_SRCS:.c=.o)
56 #DBI_LOBJS = $(DBI_SRCS:.c=.lo)
60 CATS_SRCS = mysql.c postgresql.c sqlite.c
61 LIBBACSQL_SRCS = bvfs.c cats.c sql.c sql_cmds.c sql_create.c sql_delete.c \
62 sql_find.c sql_get.c sql_glue.c sql_list.c sql_update.c
63 LIBBACSQL_OBJS = $(LIBBACSQL_SRCS:.c=.o)
64 LIBBACCATS_OBJS = $(CATS_SRCS:.c=.o)
65 LIBBACSQL_LOBJS = $(LIBBACSQL_SRCS:.c=.lo)
67 LIBBACSQL_LT_RELEASE = @LIBBACSQL_LT_RELEASE@
68 LIBBACCATS_LT_RELEASE = @LIBBACCATS_LT_RELEASE@
77 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
81 $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DINCLUDE) $(CFLAGS) $<
84 @echo "Compiling $(@:.lo=.c)"
85 $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(MYSQL_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.lo=.c)
88 @echo "Compiling $(@:.lo=.c)"
89 $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(POSTGRESQL_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.lo=.c)
92 @echo "Compiling $(@:.lo=.c)"
93 $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(SQLITE_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.lo=.c)
96 # @echo "Compiling $(@:.lo=.c)"
97 # $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DBI_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.lo=.c)
100 # @echo "Compiling $(@:.lo=.c)"
101 # $(NO_ECHO)$(LIBTOOL_COMPILE) $(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(INGRES_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.lo=.c)
104 @echo "Compiling $(@:.o=.c)"
105 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(MYSQL_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.o=.c)
108 @echo "Compiling $(@:.o=.c)"
109 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(POSTGRESQL_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.o=.c)
112 @echo "Compiling $(@:.o=.c)"
113 $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(SQLITE_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.o=.c)
116 # @echo "Compiling $(@:.o=.c)"
117 # $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(INGRES_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.o=.c)
120 # @echo "Compiling $(@:.o=.c)"
121 # $(NO_ECHO)$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) $(DBI_INCLUDE) $(DINCLUDE) $(CFLAGS) $(@:.o=.c)
122 #-------------------------------------------------------------------------
123 all: Makefile libbacsql$(DEFAULT_ARCHIVE_TYPE) libbaccats$(DEFAULT_ARCHIVE_TYPE) @SHARED_CATALOG_TARGETS@
124 @echo "==== Make of sqllibs is good ===="
128 # @echo "Generating myingres.c from myingres.sc"
129 # $(NO_ECHO)$(II_SYSTEM)/ingres/bin/esqlcc -multi -extension=c myingres.sc
130 # @echo "Generating myingres.h from myingres.sh"
131 # $(NO_ECHO)$(II_SYSTEM)/ingres/bin/esqlcc -extension=h myingres.sh
133 libbacsql.a: $(LIBBACSQL_OBJS)
134 @echo "Making $@ ..."
135 $(AR) rc $@ $(LIBBACSQL_OBJS)
138 libbaccats.a: $(LIBBACCATS_OBJS)
139 @echo "Making $@ ..."
140 $(AR) rc $@ $(LIBBACCATS_OBJS)
143 libbacsql.la: Makefile $(LIBBACSQL_LOBJS)
144 @echo "Making $@ ..."
145 $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(LIBBACSQL_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACSQL_LT_RELEASE) $(DB_LIBS)
147 libbaccats.la: Makefile cats_dummy.lo
148 @echo "Making $@ ..."
149 $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ cats_dummy.lo -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE)
151 libbaccats-mysql.la: Makefile $(MYSQL_LOBJS)
152 @echo "Making $@ ..."
153 $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(MYSQL_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
154 -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(MYSQL_LIBS)
156 libbaccats-postgresql.la: Makefile $(POSTGRESQL_LOBJS)
157 @echo "Making $@ ..."
158 $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(POSTGRESQL_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
159 -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(POSTGRESQL_LIBS)
161 libbaccats-sqlite3.la: Makefile $(SQLITE_LOBJS)
162 @echo "Making $@ ..."
163 $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(SQLITE_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
164 -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(SQLITE_LIBS)
166 #libbaccats-ingres.la: Makefile $(INGRES_LOBJS)
167 # @echo "Making $@ ..."
168 # $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(INGRES_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
169 # -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(INGRES_LIBS)
171 #libbaccats-dbi.la: Makefile $(DBI_LOBJS)
172 # @echo "Making $@ ..."
173 # $(LIBTOOL_LINK) $(CXX) $(DEFS) $(DEBUG) $(LDFLAGS) -o $@ $(DBI_LOBJS) -export-dynamic -rpath $(libdir) -release $(LIBBACCATS_LT_RELEASE) \
174 # -soname libbaccats-$(LIBBACCATS_LT_RELEASE).so $(DBI_LIBS)
176 Makefile: $(srcdir)/Makefile.in $(topdir)/config.status
178 && CONFIG_FILES=$(thisdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
181 @find . -name '*.lo' -print | xargs $(LIBTOOL_CLEAN) $(RMF)
183 @$(RMF) -r .libs _libs
186 @$(RMF) core a.out *.o *.bak *~ *.intpro *.extpro 1 2 3
191 $(RMF) create_bacula_database update_bacula_tables make_bacula_tables
192 $(RMF) grant_bacula_privileges drop_bacula_tables drop_bacula_database
194 $(RMF) create_mysql_database update_mysql_tables make_mysql_tables
195 $(RMF) grant_mysql_privileges drop_mysql_tables drop_mysql_database
197 $(RMF) create_postgresql_database update_postgresql_tables make_postgresql_tables
198 $(RMF) grant_postgresql_privileges drop_postgresql_tables drop_postgresql_database
200 $(RMF) create_ingres_database update_ingres_tables make_ingres_tables
201 $(RMF) grant_ingres_privileges drop_ingres_tables drop_ingres_database
203 $(RMF) create_sqlite_database update_sqlite_tables make_sqlite_tables
204 $(RMF) grant_sqlite_privileges drop_sqlite_tables drop_sqlite_database
206 $(RMF) create_sqlite3_database update_sqlite3_tables make_sqlite3_tables
207 $(RMF) grant_sqlite3_privileges drop_sqlite3_tables drop_sqlite3_database
209 $(RMF) mysql sqlite postgresql ingres
210 $(RMF) make_catalog_backup make_catalog_backup.pl delete_catalog_backup
213 if test $(srcdir) = .; then $(MAKE) realclean; fi
214 (cd $(srcdir); $(RMF) Makefile)
217 if test $(srcdir) = .; then $(MAKE) realclean; fi
218 (cd $(srcdir); $(RMF) Makefile)
221 $(MKDIR) $(DESTDIR)/$(includedir)/bacula/sql
222 for I in $(INCLUDE_FILES); do \
223 $(INSTALL_DATA) $$I $(DESTDIR)$(includedir)/bacula/sql/`basename $$I`; \
227 for I in $(INCLUDE_FILES); do \
228 $(RMF) $(DESTDIR)$(includedir)/bacula/sql/`basename $$I`; \
232 $(MKDIR) $(DESTDIR)$(libdir)
233 $(LIBTOOL_INSTALL_FINISH) $(INSTALL_LIB) libbacsql.la $(DESTDIR)$(libdir)
234 $(LIBTOOL_INSTALL_FINISH) $(INSTALL_LIB) libbaccats.la $(DESTDIR)$(libdir)
235 for db_type in @DB_BACKENDS@; do \
236 $(LIBTOOL_INSTALL_FINISH) $(INSTALL_LIB) libbaccats-$${db_type}.la $(DESTDIR)$(libdir); \
238 ./install-default-backend @DEFAULT_DB_TYPE@ $(LIBBACCATS_LT_RELEASE) $(DESTDIR)$(libdir)
241 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbacsql.la
242 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbaccats.la
243 for db_type in @DB_BACKENDS@; do \
244 $(LIBTOOL_UNINSTALL) $(RMF) $(DESTDIR)$(libdir)/libbacsql-$${db_type}.la; \
247 install: @LIBTOOL_INSTALL_TARGET@ @INCLUDE_INSTALL_TARGET@
248 for db_type in @DB_BACKENDS@; do \
249 if [ -f create_$${db_type}_database ]; then \
250 $(INSTALL_SCRIPT) create_$${db_type}_database $(DESTDIR)$(scriptdir)/create_$${db_type}_database; \
251 $(INSTALL_SCRIPT) update_$${db_type}_tables $(DESTDIR)$(scriptdir)/update_$${db_type}_tables; \
252 $(INSTALL_SCRIPT) make_$${db_type}_tables $(DESTDIR)$(scriptdir)/make_$${db_type}_tables; \
253 $(INSTALL_SCRIPT) grant_$${db_type}_privileges $(DESTDIR)$(scriptdir)/grant_$${db_type}_privileges; \
254 $(INSTALL_SCRIPT) drop_$${db_type}_tables $(DESTDIR)$(scriptdir)/drop_$${db_type}_tables; \
255 $(INSTALL_SCRIPT) drop_$${db_type}_database $(DESTDIR)$(scriptdir)/drop_$${db_type}_database; \
259 $(INSTALL_SCRIPT) create_bacula_database $(DESTDIR)$(scriptdir)/create_bacula_database
260 $(INSTALL_SCRIPT) update_bacula_tables $(DESTDIR)$(scriptdir)/update_bacula_tables
261 $(INSTALL_SCRIPT) make_bacula_tables $(DESTDIR)$(scriptdir)/make_bacula_tables
262 $(INSTALL_SCRIPT) grant_bacula_privileges $(DESTDIR)$(scriptdir)/grant_bacula_privileges
263 $(INSTALL_SCRIPT) drop_bacula_tables $(DESTDIR)$(scriptdir)/drop_bacula_tables
264 $(INSTALL_SCRIPT) drop_bacula_database $(DESTDIR)$(scriptdir)/drop_bacula_database
266 @filename=make_catalog_backup.pl; \
267 if test -f $(DESTDIR)$(scriptdir)/$$filename; then \
268 destname=$$filename.new; \
269 echo " ==> Found existing $$filename, installing new file as $$destname"; \
271 destname=$$filename; \
273 echo "$(INSTALL_SCRIPT) $$filename $(DESTDIR)$(scriptdir)/$$destname"; \
274 $(INSTALL_SCRIPT) $$filename $(DESTDIR)$(scriptdir)/$$destname
275 @filename=make_catalog_backup; \
276 if test -f $(DESTDIR)$(scriptdir)/$$filename; then \
277 destname=$$filename.new; \
278 echo " ==> Found existing $$filename, installing new file as $$destname"; \
280 destname=$$filename; \
282 echo "$(INSTALL_SCRIPT) $$filename $(DESTDIR)$(scriptdir)/$$destname"; \
283 $(INSTALL_SCRIPT) $$filename $(DESTDIR)$(scriptdir)/$$destname
284 @filename=delete_catalog_backup; \
285 if test -f $(DESTDIR)$(scriptdir)/$$filename; then \
286 destname=$$filename.new; \
287 echo " ==> Found existing $$filename, installing new file as $$destname"; \
289 destname=$$filename; \
291 echo "$(INSTALL_SCRIPT) $$filename $(DESTDIR)$(scriptdir)/$$destname"; \
292 $(INSTALL_SCRIPT) $$filename $(DESTDIR)$(scriptdir)/$$destname
294 uninstall: @LIBTOOL_UNINSTALL_TARGET@ @INCLUDE_UNINSTALL_TARGET@
295 @for db_type in @DB_BACKENDS@; do \
296 (cd $(DESTDIR)$(scriptdir); $(RMF) create_$${db_type}_database); \
297 (cd $(DESTDIR)$(scriptdir); $(RMF) update_$${db_type}_tables); \
298 (cd $(DESTDIR)$(scriptdir); $(RMF) make_$${db_type}_tables); \
299 (cd $(DESTDIR)$(scriptdir); $(RMF) grant_$${db_type}_privileges); \
300 (cd $(DESTDIR)$(scriptdir); $(RMF) drop_$${db_type}_tables); \
301 (cd $(DESTDIR)$(scriptdir); $(RMF) drop_$${db_type}_database); \
304 (cd $(DESTDIR)$(scriptdir); $(RMF) create_bacula_database)
305 (cd $(DESTDIR)$(scriptdir); $(RMF) update_bacula_tables)
306 (cd $(DESTDIR)$(scriptdir); $(RMF) make_bacula_tables)
307 (cd $(DESTDIR)$(scriptdir); $(RMF) grant_bacula_privileges)
308 (cd $(DESTDIR)$(scriptdir); $(RMF) drop_bacula_tables)
309 (cd $(DESTDIR)$(scriptdir); $(RMF) drop_bacula_database)
311 (cd $(DESTDIR)$(scriptdir); $(RMF) make_catalog_backup)
312 (cd $(DESTDIR)$(scriptdir); $(RMF) make_catalog_backup.pl)
313 (cd $(DESTDIR)$(scriptdir); $(RMF) delete_catalog_backup)
315 # Semi-automatic generation of dependencies:
316 # Use gcc -M because X11 `makedepend' doesn't work on all systems
317 # and it also includes system headers.
318 # `semi'-automatic since dependencies are generated at distribution time.
320 #depend: esql <- SRE: if generating from 'real' ingres source
322 @$(MV) Makefile Makefile.bak
323 @$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile
324 @$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile
325 @for src in $(LIBBACSQL_SRCS); do \
326 $(CXX) -S -M -MT `basename $$src .c`$(DEFAULT_OBJECT_TYPE) $(CPPFLAGS) $(XINC) $(DEFS) -I$(srcdir) -I$(basedir) $$src >> Makefile; \
328 @for src in $(MYSQL_SRCS); do \
329 $(CXX) -S -M -MT `basename $$src .c`$(DEFAULT_OBJECT_TYPE) $(CPPFLAGS) $(XINC) $(DEFS) -I$(srcdir) -I$(basedir) $(MYSQL_INCLUDE) $$src >> Makefile; \
331 @for src in $(POSTGRESQL_SRCS); do \
332 $(CXX) -S -M -MT `basename $$src .c`$(DEFAULT_OBJECT_TYPE) $(CPPFLAGS) $(XINC) $(DEFS) -I$(srcdir) -I$(basedir) $(POSTGRESQL_INCLUDE) $$src >> Makefile; \
334 @for src in $(SQLITE_SRCS); do \
335 $(CXX) -S -M -MT `basename $$src .c`$(DEFAULT_OBJECT_TYPE) $(CPPFLAGS) $(XINC) $(DEFS) -I$(srcdir) -I$(basedir) $(SQLITE_INCLUDE) $$src >> Makefile; \
337 # @for src in $(DBI_SRCS); do \
338 # $(CXX) -S -M -MT `basename $$src .c`$(DEFAULT_OBJECT_TYPE) $(CPPFLAGS) $(XINC) $(DEFS) -I$(srcdir) -I$(basedir) $(DBI_INCLUDE) $$src >> Makefile; \
340 @if test -f Makefile ; then \
341 $(RMF) Makefile.bak; \
343 $(MV) Makefile.bak Makefile; \
344 echo " ===== Something went wrong in make depend ====="; \
347 # -----------------------------------------------------------------------
348 # DO NOT DELETE: nice dependency list follows