CC		= gcc
CFLAGS		= -g -O2 -I/usr/include -I/usr/include/et -I/usr/include/postgresql
CPPFLAGS	=  -I/usr/include
LDFLAGS		= -L/usr/lib -L/usr/lib/mysql -L/usr/lib64 -L/usr/lib64/mysql
LDSHFLAGS	= -shared
INSTALLCMD	= /usr/bin/ginstall -c
SAMBA_SOURCE	= ./3.0.28a
SHLIBEXT	= so
OBJEXT		= o 
SRCEXT          = c
FLAGS		=  $(CFLAGS) -Iinclude -I$(SAMBA_SOURCE)/include \
-I$(SAMBA_SOURCE)/tdb/include -I$(SAMBA_SOURCE)/lib/replace -I$(SAMBA_SOURCE)/librpc \
-I. $(CPPFLAGS) -I$(SAMBA_SOURCE) -fPIC
SMB_AUDIT_PREF  = my
SMB_AUDIT_NAME  = audit
SMB_AUDIT_MYSQL = __MYSQL__AUDIT__

prefix		= /usr/lib/samba
libdir		= /usr/lib
prefix64	= /usr/lib64/samba
libdir64	= /usr/lib64

VFS_LIBDIR	= $(prefix)/vfs
VFS_LIBDIR64	= $(prefix64)/vfs

# Auto target
#default: $(patsubst %.c,%.$(SHLIBEXT),$(wildcard *.c))
default: all

# Pattern rules

%.$(SHLIBEXT): %.$(OBJEXT)
	@echo "Linking $@"
	@$(CC) $(LDSHFLAGS) $(LDFLAGS) -o $@ $<

%.$(OBJEXT): %.c
	@echo "Compiling $<"
	@$(CC) $(FLAGS) -c $<

all: mysql pgsql

mysql:
	@echo "Building MySQL backend..."
	@echo "Compiling $(SMB_AUDIT_PREF)_$(SMB_AUDIT_NAME).$(SRCEXT)"
	@$(CC) $(FLAGS) -D$(SMB_AUDIT_MYSQL) -c $(SMB_AUDIT_PREF)_$(SMB_AUDIT_NAME).$(SRCEXT)
	@echo "Linking $@_$(SMB_AUDIT_NAME).$(SHLIBEXT)"
	@$(CC) $(LDSHFLAGS) $(LDFLAGS) -lmysqlclient -o $@_$(SMB_AUDIT_NAME).$(SHLIBEXT) $(SMB_AUDIT_PREF)_$(SMB_AUDIT_NAME).$(OBJEXT)
	@rm -f $(SMB_AUDIT_PREF)_$(SMB_AUDIT_NAME).$(OBJEXT)

pgsql:
	@echo "Building PostgreSQL backend..."
	@echo "Compiling $(SMB_AUDIT_PREF)_$(SMB_AUDIT_NAME).$(SRCEXT)"
	@$(CC) $(FLAGS) -c $(SMB_AUDIT_PREF)_$(SMB_AUDIT_NAME).$(SRCEXT)
	@echo "Linking $@_$(SMB_AUDIT_NAME).$(SHLIBEXT)"
	@$(CC) $(LDSHFLAGS) $(LDFLAGS) -lpq -o $@_$(SMB_AUDIT_NAME).$(SHLIBEXT) $(SMB_AUDIT_PREF)_$(SMB_AUDIT_NAME).$(OBJEXT)
	@rm -f $(SMB_AUDIT_PREF)_$(SMB_AUDIT_NAME).$(OBJEXT)

install: default
	$(INSTALLCMD) -d $(VFS_LIBDIR)
	$(INSTALLCMD) -m 755 *.$(SHLIBEXT) $(VFS_LIBDIR)
	$(INSTALLCMD) -d $(VFS_LIBDIR64)
	$(INSTALLCMD) -m 755 *.$(SHLIBEXT) $(VFS_LIBDIR64)

# Misc targets
clean:
	rm -rf .libs
	rm -f core *~ *% *.bak *.o *.$(SHLIBEXT)

distclean: clean
	rm config.* Makefile

