summaryrefslogtreecommitdiff
path: root/debian/rules
diff options
context:
space:
mode:
authorAllen Winter <allen.winter@kdab.com>2014-05-31 17:22:41 -0400
committerAllen Winter <allen.winter@kdab.com>2014-05-31 17:22:41 -0400
commitbc831ea040913b1069e8eaf99496dc12704b94a9 (patch)
tree1502b86977c42dd5e5d202a2ff3807b08309f9ff /debian/rules
parentc1d3761c08651f469a3bd3a8130e6005b8e26136 (diff)
downloadlibical-git-bc831ea040913b1069e8eaf99496dc12704b94a9.tar.gz
Re-arrange after svn to git conversion
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules190
1 files changed, 190 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 00000000..3e78ac9e
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,190 @@
+#!/usr/bin/make -f
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+CFLAGS = -Wall -g
+EXTRA_ARGS=
+PROFILE_ARGS=
+
+# To enable debugging: export DEB_BUILD_OPTIONS="debug profiling threadoff"
+ifneq (,$(findstring profiling,$(DEB_BUILD_OPTIONS)))
+ PROFILE_ARGS= --with-gprof
+endif
+
+ifneq (,$(findstring backtrace,$(DEB_BUILD_OPTIONS)))
+ EXTRA_ARGS=--with-backtrace
+ BTCFLAGS=-rdynamic
+endif
+
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0 -ggdb -D_GNU_SOURCE -MD -MP -Wl,--as-needed -Wall -ansi
+else
+ CFLAGS += -O2
+endif
+
+# shared library versions, option 1
+version=2.0.5
+major=2
+# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
+#version=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
+#major=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
+
+PYVERS=$(shell pyversions -vr)
+
+build: build-c $(PYVERS:%=build-python%/build-stamp)
+install: build install-c $(PYVERS:%=install-python%)
+clean: clean-c $(PYVERS:%=clean-python%)
+
+### Python libraries build rules ###
+build-python%/configure-stamp:
+ dh_testdir
+
+ mkdir build-python$*
+ cd build-python$* && \
+ PYTHON=/usr/bin/python$* CFLAGS="$(BTCFLAGS) $(CFLAGS)" ../configure \
+ --host=$(DEB_HOST_GNU_TYPE) \
+ --build=$(DEB_BUILD_GNU_TYPE) \
+ --srcdir=.. \
+ --prefix=/usr \
+ --includedir="/usr/include" \
+ --mandir="/usr/share/man" \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ $(EXTRA_ARGS) $(PROFILE_ARGS) \
+ --libexecdir="/usr/lib/libical" \
+ --enable-python
+ touch $@
+
+build-python%/build-stamp: build-c build-python%/configure-stamp
+ dh_testdir
+
+ # Trick into using already built build-c libs so we don't end up
+ # building the same ical lib more than once.
+ find "build-python$*/src" -maxdepth 1 -mindepth 1 | grep -v python$$ | xargs -r -t rm -rf
+ find "build-c/src" -maxdepth 1 -mindepth 1 | grep -v python$$ | xargs -r -t -I{} ln -s "../../{}" "build-python$*/src"
+
+ $(MAKE) -C build-python$*/src/python pyexecdir=/usr/lib/pymodules/python$*
+
+ touch $@
+
+install-python%: build-python%/build-stamp
+ dh_testdir
+ dh_testroot
+# dh_clean -k
+ dh_installdirs
+
+ # install with hack to move installed python libs to pymodule dir
+ $(MAKE) -C build-python$*/src/python install pyexecdir=/usr/lib/pymodules/python$* DESTDIR=$(CURDIR)/debian/tmp && \
+ mv -i $(CURDIR)/debian/tmp/usr/lib/python$*/*/* $(CURDIR)/debian/tmp/usr/lib/pymodules/python$*/
+
+clean-python%:
+# mkdir -p build-python$* && cd build-python$*
+ dh_testdir
+# dh_testroot
+ rm -rf build-python$*
+ dh_prep
+
+### C libraries build rules ###
+build-c/configure-stamp: configure
+#config.status: configure
+ dh_testdir
+
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+ cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+ cp -f /usr/share/misc/config.guess config.guess
+endif
+
+ mkdir build-c
+ cd build-c && \
+ CFLAGS="$(BTCFLAGS) $(CFLAGS)" ../configure \
+ --host=$(DEB_HOST_GNU_TYPE) \
+ --build=$(DEB_BUILD_GNU_TYPE) \
+ --prefix=/usr \
+ --includedir="/usr/include" \
+ --mandir="/usr/share/man" \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ $(EXTRA_ARGS) $(PROFILE_ARGS) \
+ --libexecdir="/usr/lib/libical"
+
+ touch $@
+
+build-c: build-c/build-stamp
+build-c/build-stamp: build-c/configure-stamp
+ dh_testdir
+
+# $(MAKE) clean
+ $(MAKE) -C build-c
+
+ touch $@
+
+clean-c:
+ dh_testdir
+ dh_testroot
+
+ rm -rf build-c
+
+ dh_prep
+
+install-c: build-c
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ $(MAKE) -C build-c DESTDIR=$(CURDIR)/debian/tmp install
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs ChangeLog
+ dh_installdocs
+ dh_installexamples
+ dh_install -s --sourcedir=debian/tmp
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+# dh_perl
+ dh_pysupport
+# dh_makeshlibs
+ dh_installdeb
+# dh_shlibdeps
+ # We need to exclude dependency resolving for the python extension
+ # module because if libical0 is installed but libical-dev is not
+ # we get build errors. The lib in /usr/lib will be found first
+ # but no .la will exist to get the dependency info from. Is there
+ # a way to tell dh_shlibdeps to find the lib first in debian/tmp?
+ dh_shlibdeps -XLibicalWrap
+# dh_shlibdeps -l$(CURDIR)/debian/tmp/usr/lib -- -v
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install