POPHOME=/usr/pop
OWNER=nobody
GROUP=none
SHELL=/bin/bash -e -o pipefail

WHAT= \
	acct.postfaecher \
	acctdiff \
	arbeitszeit4tickets \
	arbeitszeit-acct \
	beendete_kunden \
	check.accounting_up-to-dateness \
	check_db_chars \
	check.dns-zones \
	check_domain_expiries.ch_li \
	check_domain_expiries_by_whois \
	check_rt-tickets \
	check_rtticket_freshness \
	check_rtticket_freshness \
	collect_rt-queue_stats \
	db_seqnum \
	dbdiff dbdiffreport \
	dbping \
	dbstatus \
	dbtree \
	delete_old_acct \
	diff.hardware \
	dispatch.win-sec-ssc \
	domainliste \
	domainlose_webspaces \
	domainlose_webspaces \
	export.personen4ldap \
	extract_networks_from_bgp-table \
	find_descr \
	find_missing_domains \
	find_overlaps \
	finde_0 \
	finde_kunden_mit_mehreren_volumentarifen \
	fnbatcher \
	geburtstage \
	geistertraffic \
	gen.ablauf \
	gen.adressplan \
	gen.assoz \
	gen.descr \
	gen.dhcpconf \
	gen.domain \
	gen.eximconf \
	gen.fdzliste \
	gen.ip \
	gen.hostlist \
	gen.hostlist4standorte \
	gen.kunden_ohne_tarife_ausser \
	gen.kundedomains \
	gen.kundenliste \
	gen.mailusers \
	gen.nagioscontactgroups \
	gen.nagiosservices4leitungen \
	gen.oxconf \
	gen.radius \
	gen.testrechnungsdiff \
	gen.user \
	gen.virtualhosts \
	gen.vmps \
	gen.wice_liste \
	get.domainkosten \
	get.umsatz4kunde \
	get_backup_volume \
	get_domainlist_from_partnergate \
	get_domainlist_from_switch \
	get_tickets \
	hardwareliste \
	hotline-einsaetze \
	idndig \
	ipacct \
	ipcalc \
	iplog \
	logserver \
	lohnbuchen2 \
	look4rt-tickets \
	kunden_nach_vertrieblichen_ansprechpartnern \
	maile.neue_hardware \
	maile.rt-billing2ap \
	maile.stunden \
	makedomains \
	manage.mysql-databases \
	mda.dsl-tt \
	mig.2dienst \
	mig.ablauf \
	mig.strings \
	mig.testsystem \
	mig.update_stunden \
	nsset \
	obsolete_FQDNs \
	print-all \
	pruefe_ustids \
	rech \
	remind_hardware_standorte \
	remind_pending_tts \
	rt-eskalation \
	set_ds_keyword \
	show_domains \
	sshpipe \
	stunden-statistik \
	suche_reminder-ticket \
	ticketgen \
	trans.kunde \
	ueberpruefe_mailrules \
	ueberstunden \
	urlaubsstand \
	umsatzliste \
	umsatzplanung \
	update.domains.partnergate \
	wakeup \
	wice2pop.kprios \
	zeitstatistik \

override CFLAGS := $(CFLAGS) -Wall -D_GNU_SOURCE
LDLIBS=-L../obj -L$(POPHOME)/lib -Wl,-rpath,$(POPHOME)/lib 

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM)

ifeq ($(DEB_HOST_ARCH),i386)
OBINS=../obj/ripe2cidr64 ../obj/logsplit64
build_64_target = x86_64-$(DEB_HOST_GNU_SYSTEM)
endif
ifeq ($(DEB_HOST_ARCH),amd64)
OBINS=../obj/ripe2cidr32 ../obj/logsplit32
build_32_target = i486-$(DEB_HOST_GNU_SYSTEM)
endif

all:  ../obj/ripe2cidr ../obj/logsplit $(OBINS)
all_p: ../obj/sql_diff

V=$(shell cd ..; dpkg-parsechangelog | sed -ne 's/^Version:\s*//p')

man:
	mkdir -p $(DESTDIR)/usr/share/man/man1
	grep -l '^#!/usr/bin/perl' * | xargs grep -l ^=head | while read a ; do \
		iconv -f utf8 -t latin1 $$a | pod2man -c Kunde -s 1 -q "''" -r $V -v | gzip -9 > $(DESTDIR)/usr/share/man/man1/$$a.1.gz ; \
	done

clean:
	rm -f ../obj/ripe2cidr ../obj/logsplit ../obj/*.o

../obj/logsplit: ../obj/logsplit.o
	$(CC) -g -o $@ $(filter-out %.a %.so,$^) $(LDLIBS)

../obj/ripe2cidr: ../obj/ripe2cidr.o
	$(CC) -g -o $@ $(filter-out %.a %.so,$^)

../obj/logsplit64: ../obj/logsplit64.o
	$(CC) -m64 -g -o $@ $(filter-out %.a %.so,$^) $(LDLIBS)

../obj/ripe2cidr64: ../obj/ripe2cidr64.o
	$(CC) -m64 -g -o $@ $(filter-out %.a %.so,$^)

../obj/logsplit32: ../obj/logsplit32.o
	$(CC) -m32 -g -o $@ $(filter-out %.a %.so,$^) $(LDLIBS)

../obj/ripe2cidr32: ../obj/ripe2cidr32.o
	$(CC) -m32 -g -o $@ $(filter-out %.a %.so,$^)

../obj/%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $^

../obj/%32.o: %.c
	$(CC) -m32 $(CFLAGS) -c -o $@ $^

../obj/%64.o: %.c
	$(CC) -m64 $(CFLAGS) -c -o $@ $^

../obj/sql_diff: sql_diff.g
	yapps $^ $@ || cp sql_diff.not $@
	chmod +x $@

install:
	install -o $(OWNER) -g $(GROUP) -m 755 -d $(DESTDIR)$(POPHOME)/bin
	install -o $(OWNER) -g $(GROUP) -m 755 -d $(DESTDIR)$(POPHOME)/lib
	install -o $(OWNER) -g $(GROUP) -m 755 ../obj/ripe2cidr $(DESTDIR)$(POPHOME)/bin
	install -o $(OWNER) -g $(GROUP) -m 755 ../obj/logsplit $(DESTDIR)$(POPHOME)/bin
ifneq ($(OBINS),)
	install -o $(OWNER) -g $(GROUP) -m 755 $(OBINS) $(DESTDIR)$(POPHOME)/bin
endif
	install -o root -g root -m 755 -d $(DESTDIR)/usr/sbin
	install -o root -g root -m 755 -d $(DESTDIR)/usr/bin

	fn=/tmp/inst.$$$$; \
	for i in $(WHAT) ; do \
		perl -p ../obj/varsubst <$$i >$$fn; \
		install -o $(OWNER) -g $(GROUP) -m 755 $$fn $(DESTDIR)$(POPHOME)/bin/$$i ; \
	done; \
	perl -p ../obj/varsubst <logclient >$$fn; \
	install -o root -g root -m 755 $$fn $(DESTDIR)/usr/sbin/logclient; \
	rm -f $$fn

install_p: all_p
	install -o root -g root -m 755 -d $(DESTDIR)/usr/bin
	install -o root -g root -m 755 ../obj/sql_diff $(DESTDIR)$(POPHOME)/bin

diff:
	for i in $(WHAT) ; do \
		echo Index: $(TOPDIR)/$$i; \
		perl -p ../obj/varsubst <$$i | diff -bu - $(POPHOME)/bin/$$i || true ; \
	done

.PHONY: all all_p install install_p diff
