#!/usr/bin/make -f

CC = gcc
CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -Wall
CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
STRIP = strip
SO = $(shell IFS=: read v r a <LIBVERSION && echo $$(($$v-$$a)))

ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
  STRIP = : nostrip
endif

DIR = $(shell pwd)/debian/libbg$(SO)

build-arch: build

build-indep: build

build: deb-checkdir build-stamp

build-stamp:
	-'$(CC)' -v
	echo /usr/bin > conf-bin
	echo '$(CC) $(CFLAGS) $(CPPFLAGS)' > conf-cc
	echo '$(CC) $(LDFLAGS)' > conf-ld
	echo /usr/include/bglibs > conf-include
	echo /usr/lib/bglibs > conf-lib
	echo /usr/share/man > conf-man
	$(MAKE)
	touch build-stamp

clean: deb-checkdir deb-checkuid
	$(MAKE) clean
	rm -rf .libs */.libs
	rm -f conf-bin conf-cc conf-ld conf-include conf-lib conf-man
	rm -f build-stamp
	rm -rf '$(DIR)' '$(DIR)'-dev '$(DIR)'-doc
	rm -f debian/libbg'$(SO)'.shlibs debian/files debian/substvars changelog

install: install-indep install-arch

install-indep: deb-checkdir deb-checkuid
	rm -rf '$(DIR)'-doc
	install -d -m0755 '$(DIR)'-doc/usr/share/doc/libbg'$(SO)'-doc/html
	install -d -m0755 '$(DIR)'-doc/usr/share/doc/libbg'$(SO)'-doc/latex
	install -m0644 doc/html/* \
	  '$(DIR)'-doc/usr/share/doc/libbg'$(SO)'-doc/html/
	install -m0644 doc/latex/* \
	  '$(DIR)'-doc/usr/share/doc/libbg'$(SO)'-doc/latex/
	test -r changelog || ln -s ChangeLog changelog

install-arch: deb-checkdir deb-checkuid build-stamp
	# libbg-dev
	rm -rf '$(DIR)' '$(DIR)'-dev
	$(MAKE) install install_prefix='$(DIR)'-dev/
	gzip -f -9n '$(DIR)'-dev/usr/share/man/man1/*.1
	rm -f '$(DIR)'-dev/usr/lib/bglibs/*.la
	ln -s . '$(DIR)'-dev/usr/lib/bglibs/lib
	ln -s ../../include/bglibs '$(DIR)'-dev/usr/lib/bglibs/include
	$(STRIP) --strip-debug '$(DIR)'-dev/usr/lib/bglibs/*.a
	for i in '$(DIR)'-dev/usr/bin/*; do \
	  test "`head -c2 $$i`" = '#!' || $(STRIP) -R .comment -R .note $$i; \
	done
	for i in '$(DIR)'-dev/usr/lib/bglibs/*.so; do \
	  mv $$i '$(DIR)'-dev/usr/lib/ && \
	    ln -s ../$${i##*/} '$(DIR)'-dev/usr/lib/bglibs/ || exit 1; \
	done
	# libbg
	install -d -m0755 '$(DIR)'/usr/lib
	for i in '$(DIR)'-dev/usr/lib/bglibs/*.so.*; do \
	  mv $$i '$(DIR)'/usr/lib/ && \
	    ln -s ../$${i##*/} '$(DIR)'-dev/usr/lib/bglibs/ || exit 1; \
	done
	chmod 0644 '$(DIR)'/usr/lib/*
	$(STRIP) -R .note -R .comment --strip-unneeded \
	  '$(DIR)'/usr/lib/*.so.?.?.?
	echo 'libbg $(SO) libbg$(SO)' >debian/libbg'$(SO)'.shlibs
	echo 'libbg-sysdeps $(SO) libbg$(SO)' >>debian/libbg'$(SO)'.shlibs
	# changelog
	test -r changelog || ln -s ChangeLog changelog

binary: binary-indep binary-arch

binary-indep: install-indep libbg'$(SO)'-doc.deb
	dpkg-gencontrol -plibbg'$(SO)'-doc -P'$(DIR)'-doc
	chmod -R u+w,go=rX '$(DIR)'-doc
	dpkg -b '$(DIR)'-doc ..

binary-arch: install-arch libbg'$(SO)'-dev.deb libbg'$(SO)'.deb
	# libbg-dev
	rm -f debian/substvars
	dpkg-shlibdeps '$(DIR)'-dev/usr/bin/*
	dpkg-gencontrol -plibbg'$(SO)'-dev -P'$(DIR)'-dev
	chmod -R u+w,go=rX '$(DIR)'-dev
	dpkg -b '$(DIR)'-dev ..
	# libbg
	rm -f debian/substvars
	dpkg-shlibdeps '$(DIR)'/usr/lib/*.so.?.?.?
	dpkg-gencontrol -plibbg'$(SO)' -P'$(DIR)'
	chmod -R u+w,go=rX '$(DIR)'
	dpkg -b '$(DIR)' ..

.PHONY: build build-arch build-indep clean binary-indep binary-arch binary install-indep \
	  install-arch install

include debian/implicit
