#!/usr/bin/make -f
STAMPDIR=tgz2build/stamps
DOCDIR=$(PREFIX)/doc

CC:=gcc
CONFIGURE_OPTS := --prefix $(ZBS_PREFIX) --enable-ssl --enable-dynamic-linking --enable-sql \
	--enable-spoof-source --enable-pcre --disable-tcp-wrapper --with-ld-library-path=$(ZBS_PREFIX)/lib \
	--with-pidfile-dir=$(ZBS_PREFIX)/var/run \
	--with-module-dir=$(ZBS_PREFIX)/lib

INSTALL:=./install-sh
RPATH=-Wl,-R/opt/syslog-ng/lib

ifneq (,$(findstring debug,$(TGZ_BUILD_OPTS)))
  CONFIGURE_OPTS += --enable-debug
endif

ifneq (,$(findstring aix,$(ZBS_DIST)))
  # add -Wl,-bnoquiet for ld debugging
  RPATH=-Wl,-bnolibpath,-blibpath:/opt/syslog-ng/lib:/usr/lib:/lib
endif

ifneq (,$(findstring hpux,$(ZBS_DIST)))
  RPATH=-Wl,+b/opt/syslog-ng/lib
endif

ifneq (,$(findstring tru64,$(ZBS_DIST)))
  RPATH=-Wl,-rpath,/opt/syslog-ng/lib
endif

ifneq (,$(findstring linux-glibc2.1.3,$(ZBS_DIST)))
  CONFIGURE_OPTS+=--disable-ipv6
  # syslog-ng needs a C99 standtard compliant C compiler. GCC 2.95 is not compliant so we have to use a home built GCC 3.3 for this.
  CC=gcc-3.3
endif

all: binary

binary: $(STAMPDIR)/stamp-setup $(STAMPDIR)/stamp-configure $(STAMPDIR)/stamp-build $(STAMPDIR)/stamp-install

setup: $(STAMPDIR)/stamp-setup
$(STAMPDIR)/stamp-setup:
	mkdir tgz2build/stamps || true
	touch $@

configure: $(STAMPDIR)/stamp-configure
$(STAMPDIR)/stamp-configure: $(STAMPDIR)/stamp-setup
	CC=$(CC) CFLAGS="-g $(CFLAGS)" LDFLAGS="$(RPATH) $(LDFLAGS)" ./configure $(CONFIGURE_OPTS)
	touch $@


build: $(STAMPDIR)/stamp-build
$(STAMPDIR)/stamp-build: $(STAMPDIR)/stamp-configure
	$(MAKE)
	$(MAKE) check || $(MAKE) check || $(MAKE) check
	touch $@


install:  $(STAMPDIR)/stamp-install
$(STAMPDIR)/stamp-install: $(STAMPDIR)/stamp-build
	rm -rf $(ZBS_STAGE_DIR)
	$(MAKE) install DESTDIR=$(ZBS_STAGE_DIR)
	$(INSTALL) -d -m 755 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/etc
	
	# Store syslog-ng version
	VER=`syslog-ng/syslog-ng -V | \
		head -1 | cut -d ' ' -f 2` ; (echo "VERSION=$$VER"; echo "EDITION=ose"; echo "BUILD_ARCH=$(ZBS_ARCH)"; echo "BUILD_DIST=$(ZBS_DIST)") > \
		$(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/etc/install.dat
	    
	$(INSTALL) -d -m 755 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/doc

	#Store syslog-ng build options
	syslog-ng/syslog-ng -V \
		| grep 'Enable' > $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/doc/buildopts

	$(INSTALL) -d -m 755 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/lib
	$(INSTALL) -m 644 -c README $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/doc 
	$(INSTALL) -m 644 -c COPYING $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/doc
	$(INSTALL) -m 644 -c AUTHORS $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/doc
	$(INSTALL) -m 644 -c NEWS $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/doc
	$(INSTALL) -d -m 755 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/man
	$(INSTALL) -d -m 755 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/man/man1
	$(INSTALL) -d -m 755 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/man/man5
	$(INSTALL) -d -m 755 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/man/man8
	$(INSTALL) -m 644 -c doc/man/pdbtool.1 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/man/man1
	$(INSTALL) -m 644 -c doc/man/syslog-ng.8 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/man/man8
	$(INSTALL) -m 644 -c doc/man/syslog-ng.conf.5 $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/man/man5

	$(INSTALL) -m 644 $(ZBS_SOURCE_DIR)/contrib/balabit-initscripts/init-functions $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/lib

	cd $(ZBS_SOURCE_DIR)/contrib && cp -R solaris-packaging balabit-initscripts/ && \
	tar cvf - balabit-initscripts selinux apparmor | (cd $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/doc/ && tar xf -)
	cd $(ZBS_SOURCE_DIR)
	rm -rf $(ZBS_STAGE_DIR)/$(ZBS_PREFIX)/share/doc/contrib/Makefile*
 
	touch $@ 

clean:
	rm -rf tgz2build/stamps || true
	rm -rf tgz2build/syslog-ng || true
	rm -rf tgz2build/staging || true
	$(MAKE) clean


