#
# Bacula Makefile for the File daemon
#
#  Version $Id: Makefile.mingw,v 1.1 2004/04/19 19:26:55 nboichat Exp $
#


# autoconf/Make.common.in	 -*- Makefile -*-
# release date (man), LSM date, version number/name, current maintainer
DATE="15 Apr 2004"
LSMDATE=15Apr04
VERSION=1.35.0
VERNAME=bacula-$(VERSION)#
MAINT=Kern Sibbald#
MAINTEMAIL=<kern@sibbald.com>#
WEBMAINT=#
WEBMAINTEMAIL=#
WEBPAGE=#
FTPSITENAME=#
FTPSITEDIR=#
#-------------------------------------------------------------------------

SHELL = /bin/sh

# Installation target directories & other installation stuff
prefix = 
exec_prefix = 
binprefix =
manprefix =
sbindir = /sbin
sysconfdir = /etc/bacula
scriptdir = /etc/bacula
mandir = ${prefix}/man/man1
manext = 1

# Tools & program stuff
CC = gcc
CPP = gcc -E
CXX = g++
MV = /usr/bin/mv
RM = /usr/bin/rm
RMF = /usr/bin/rm -f
CP = /usr/bin/cp
SED = /usr/bin/sed
AWK = /usr/bin/awk
ECHO = /usr/bin/echo
CMP = /usr/bin/cmp
TBL = /usr/bin/tbl
AR = /usr/bin/ar
RANLIB = /usr/bin/ranlib
INSTALL = /usr/bin/install -c
# add the -s to the following in PRODUCTION mode
INSTALL_PROGRAM = /usr/bin/install -c -m 754
INSTALL_DATA = /usr/bin/install -c -m 644
INSTALL_SCRIPT = /usr/bin/install -c -m 754
INSTALL_CONFIG = /usr/bin/install -c -m 640

# Flags & libs
CFLAGS = -g -O2 
CPPFLAGS = 
LDFLAGS = -O
TTOOL_LDFLAGS = 
DEFS = -DHAVE_WIN32 -DHAVE_MINGW
LIBS = -lpthreadGC -lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool \
       -lwinmm -lshell32 -lcomctl32 -lctl3d32 -ladvapi32 -lwsock32 \
       -lmsvcrt
DINCLUDE = 
DLIB = 
DB_LIBS = 

# Windows (cygwin) flags 
WCFLAGS = -mwindows
WLDFLAGS = -mwindows -Wl,--subsystem,windows -mthreads

# X Include directory
#XINC =  @XPM_CFLAGS@

# extra libraries needed by X on some systems, X library location
#XLIB =  @XPM_LIBS@ -lX11 

# End of common section of the Makefile
#-------------------------------------------------------------------------

srcdir =	.
VPATH = 	.
.PATH:		.

# one up
basedir = ..
# top dir
topdir = ../..
# this dir relative to top dir
thisdir = src/filed

DEBUG=

first_rule: all
dummy:

#
SVRSRCS = filed.c authenticate.c backup.c estimate.c \
	  filed_conf.c heartbeat.c job.c \
	  restore.c status.c verify.c verify_vol.c
SVROBJS = filed.o authenticate.o backup.o estimate.o \
	  filed_conf.o heartbeat.o job.o \
	  restore.o status.o verify.o verify_vol.o

# these are the objects that are changed by the .configure process
EXTRAOBJS = 

FDLIBS = -lz		  # extra libs for File daemon

# extra items for linking on Win32
WIN32OBJS = win32/winmain.o win32/winlib.a win32/winres.res
win32 = $(WIN32OBJS)

WIN32LIBS = $(win32)

.SUFFIXES:	.c .o
.PHONY:
.DONTCARE:

# inference rules
.c.o:
	$(CXX) $(DEFS) $(DEBUG) -c $(WCFLAGS) $(CPPFLAGS) -I$(srcdir) -I$(basedir) -I../win32/compat $(DINCLUDE) $(CFLAGS) $<
#-------------------------------------------------------------------------
all: win32 bacula-fd 
	@echo "==== Make of filed is good ===="
	@echo " "

win32/winlib.a:
	(cd win32; $(MAKE) -f Makefile.mingw DESTDIR=$(DESTDIR))
	@rm -f bacula-fd.exe

win32/winmain.o:
	(cd win32; $(MAKE) -f Makefile.mingw DESTDIR=$(DESTDIR))
	@rm -f bacula-fd.exe

win32/winres.res:
	(cd win32; $(MAKE) -f Makefile.mingw DESTDIR=$(DESTDIR))
	@rm -f bacula-fd.exe

# win32 libraries if needed
win32:	$(WIN32OBJS)
	(cd win32; $(MAKE) -f Makefile.mingw DESTDIR=$(DESTDIR))
	@rm -f bacula-fd.exe

bacula-fd:  $(SVROBJS) ../findlib/libfind.a ../lib/libbac.a win32
	$(CXX) $(WLDFLAGS) $(LDFLAGS) -L../lib -L../findlib -o $@ $(SVROBJS) \
	  $(WIN32LIBS) $(FDLIBS) -lfind -lbac -lm $(LIBS) $(DLIB)

static-bacula-fd:  $(SVROBJS) ../findlib/libfind.a ../lib/libbac.a win32
	$(CXX) $(WLDFLAGS) $(LDFLAGS) -static -L../lib -L../findlib -o $@ $(SVROBJS) \
	   $(WIN32LIBS) $(FDLIBS) -lfind -lbac -lm $(LIBS) $(DLIB)
	strip $@

../findlib/libfind.a: ../findlib/*.c
	(cd ../findlib/; $(MAKE) -f Makefile.mingw DESTDIR=$(DESTDIR))
	@rm -f bacula-fd.exe

../lib/libbac.a: ../lib/*.c*
	(cd ../lib/; $(MAKE) -f Makefile.mingw DESTDIR=$(DESTDIR))
	@rm -f bacula-fd.exe

clean:
	@$(RMF) bacula-fd filed core core.* a.out *.o *.bak *~ *.intpro *.extpro 1 2 3
	@$(RMF) static-bacula-fd
	if test -f win32/Makefile; then \
	   (cd win32; $(MAKE) clean); \
	fi

realclean: clean
	@$(RMF) tags bacula-fd.conf

distclean: realclean
	if test $(srcdir) = .; then $(MAKE) realclean; fi
	(cd $(srcdir); $(RMF) Makefile; $(RMF) -r CVS)
	if test -f win32/Makefile; then \
	   (cd win32; $(MAKE) distclean); \
	fi

devclean: realclean
	if test $(srcdir) = .; then $(MAKE) realclean; fi
	(cd $(srcdir); $(RMF) Makefile)
	if test -f win32/Makefile; then \
	   (cd win32; $(MAKE) devclean); \
	fi

install: all
	$(INSTALL_PROGRAM) bacula-fd $(DESTDIR)$(sbindir)/bacula-fd 
	@srcconf=bacula-fd.conf; \
	if  test -f ${DESTDIR}${sysconfdir}/$$srcconf; then \
	   destconf=$$srcconf.new; \
	   echo "  ==> Found existing $$srcconf, installing new conf file as $$destconf"; \
	else \
	   destconf=$$srcconf; \
	fi; \
	echo "${INSTALL_CONFIG} $$srcconf ${DESTDIR}${sysconfdir}/$$destconf"; \
	${INSTALL_CONFIG} $$srcconf ${DESTDIR}${sysconfdir}/$$destconf
	@if test -f static-bacula-fd; then \
	   $(INSTALL_PROGRAM) static-bacula-fd $(DESTDIR)$(sbindir)/static-bacula-fd; \
	fi



uninstall:
	(cd $(DESTDIR)$(sbindir); $(RMF) bacula-fd)
	(cd $(DESTDIR)$(sbindir); $(RMF) bacula-fd.conf)
	(cd $(DESTDIR)$(sbindir); $(RMF) bacula-fd.conf.new)



# Semi-automatic generation of dependencies:
# Use gcc -MM because X11 `makedepend' doesn't work on all systems
# and it also includes system headers.
# `semi'-automatic since dependencies are generated at distribution time.

depend:
	@$(MV) Makefile Makefile.bak
	@$(SED) "/^# DO NOT DELETE:/,$$ d" Makefile.bak > Makefile
	@$(ECHO) "# DO NOT DELETE: nice dependency list follows" >> Makefile
	@$(CC) -S -M $(CPPFLAGS) $(XINC) -I$(srcdir) -I$(basedir) $(SQL_INC) *.c >> Makefile
	@if test -f Makefile ; then \
	    $(RMF) Makefile.bak; \
	else \
	   $(MV) Makefile.bak Makefile; \
	   echo -e "Something went wrong\n\a"; \
	fi

# -----------------------------------------------------------------------
# DO NOT DELETE: nice dependency list follows
