1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
|
include /usr/share/dpkg/architecture.mk
CFLAGS := $(shell env DEB_CFLAGS_MAINT_APPEND=-pipe dpkg-buildflags --get CFLAGS; dpkg-buildflags --get CPPFLAGS)
CXXFLAGS := $(shell env DEB_CXXFLAGS_MAINT_APPEND=-pipe dpkg-buildflags --get CXXFLAGS; dpkg-buildflags --get CPPFLAGS)
LDFLAGS := $(shell env DEB_LDFLAGS_MAINT_APPEND='-Wl,--as-needed -Wl,-z,now' dpkg-buildflags --get LDFLAGS)
ifeq ($(DEB_HOST_ARCH),ppc64el)
CFLAGS := $(subst -O3,-O2,$(CFLAGS))
CXXFLAGS := $(subst -O3,-O2,$(CXXFLAGS))
endif
ifneq (,$(filter $(DEB_HOST_ARCH_CPU), i386))
CFLAGS += -ffloat-store
CXXFLAGS += -ffloat-store
endif
ifeq ($(DEB_HOST_ARCH),armel)
CMAKE_EXTRAS := -DWITH_BOOST_THREAD=1
CXXFLAGS += -std=c++11
endif
ifneq (,$(filter $(DEB_BUILD_ARCH),mips mipsel))
CXXFLAGS += --param ggc-min-expand=20
endif
ifneq ($(wildcard /usr/lib/$(DEB_HOST_MULTIARCH)/hdf5/serial/libhdf5.so),)
export CMAKE_INCLUDE_PATH=/usr/include/hdf5/serial
export CMAKE_LIBRARY_PATH=/usr/lib/$(DEB_HOST_MULTIARCH)/hdf5/serial
endif
cmake_options = \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLIB_SUFFIX="/$(DEB_HOST_MULTIARCH)/" \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DWITH_OPENEXR=ON \
-DCMAKE_C_FLAGS_RELEASE="$(CFLAGS)" \
-DCMAKE_CXX_FLAGS_RELEASE="$(CXXFLAGS)" \
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="$(LDFLAGS)" \
$(CMAKE_EXTRAS)
cmake_python_options = \
-DPYTHON_EXECUTABLE=/usr/bin/python$(1) \
-DPYTHON_INCLUDE_DIR=/usr/include/python$(1)/ \
-DPYTHON_LIBRARY=/usr/lib/$(DEB_HOST_MULTIARCH)/libpython$(1).so \
-DBoost_PYTHON_LIBRARY_RELEASE=/usr/lib/$(DEB_HOST_MULTIARCH)/libboost_python-py$(subst .,,$(1)).so
.PHONY: build
build: build-arch build-indep
.PHONY: build-indep
build-indep:
.PHONY: build-arch
build-arch:
dh_testdir
@echo DEBUGMEMSIZE ; if which free ; then free ; fi
$(MAKE) -f debian/rules obj/CMakeCache.txt
$(MAKE) -f debian/rules $(patsubst %,obj.%/CMakeCache.txt,$(shell pyversions -r))
$(MAKE) -f debian/rules obj/build-stamp
$(MAKE) -f debian/rules $(patsubst %,obj.%/build-stamp,$(shell pyversions -r))
ifeq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),)
$(MAKE) -f debian/rules obj/test-stamp
$(MAKE) -f debian/rules $(patsubst %,obj.%/test-stamp,$(shell pyversions -r))
endif
obj/CMakeCache.txt:
mkdir -p $(dir $(@))
cd $(dir $(@)) && cmake .. $(cmake_options) -DPYTHON_EXECUTABLE=/usr/bin/python -DWITH_VIGRANUMPY=0
obj.python%/CMakeCache.txt:
mkdir -p $(dir $(@))
cd $(dir $(@)) && CXXFLAGS=-fno-strict-aliasing cmake .. $(cmake_options) $(call cmake_python_options,$(*))
find $(dir $(@))/vigranumpy/ -name 'link.txt' -exec sed -i \
-e 's/ -lpython[0-9.]\+ / /g' -e '/-Wl,-soname,vigranumpycore/b' -e 's/ -Wl,-soname,[^ ]\+ / /' {} +
obj/build-stamp: obj/CMakeCache.txt
$(MAKE) -C $(dir $(@))
touch $(@)
obj.python%/build-stamp: obj.python%/CMakeCache.txt obj/build-stamp
cd obj && find . -name '*.o' -o -name '*.so' -o -name '*.so.*' | xargs cp -v --preserve=links --parents -t ../$(dir $(@))
$(MAKE) -C $(dir $(@))
touch $(@)
obj/test-stamp: obj/build-stamp
sed -i 's/exit\ 1/exit\ 0/' obj/test/multiarray/run_test_multiarray_chunked.sh
sed -i 's/-O2/-O0/' obj/test/math/CMakeFiles/test_math.dir/flags.make
sed -i 's/-O2/-O1/' obj/test/blockwisealgorithms/CMakeFiles/test_blockwiselabeling.dir/flags.make
sed -i 's/-O2/-O1/' obj/test/blockwisealgorithms/CMakeFiles/test_blockwisewatersheds.dir/flags.make
sed -i 's/-O2/-O1/' obj/test/gridgraph/CMakeFiles/test_gridgraph.dir/flags.make
sed -i 's/-O2/-O0/' obj/test/multiarray/CMakeFiles/test_multiarray.dir/flags.make
$(MAKE) check -C $(dir $(@))
touch $(@)
obj.python%/test-stamp:: obj.python%/build-stamp
$(MAKE) vigranumpytest -C $(dir $(@))
touch $(@)
.PHONY: binary
binary: binary-arch binary-indep
.PHONY: binary-arch
binary-arch: build-arch
dh_testdir
dh_testroot
$(MAKE) -f debian/rules obj/install-stamp
$(MAKE) -f debian/rules $(patsubst %,obj.%/install-stamp,$(shell pyversions -r))
dh_install -a
dh_installdocs -a
sh debian/convert-changelog.sh < docsrc/credits_changelog.dxx > doc/changelog
dh_installchangelogs -a
dh_installexamples -a
dh_lintian -a
dh_python2 -a
dh_link -a
dh_compress -a
dh_fixperms -a
dh_strip -a
dh_makeshlibs -a -V 'libvigraimpex6 (>= 1.10.0+git20160211.167be93)'
dh_shlibdeps -a
dh_numpy -p python-vigra
dh_installdeb -a
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
%/install-stamp: %/build-stamp
$(MAKE) -C $(dir $(@)) install DESTDIR=$(CURDIR)/debian/tmp/
touch $(@)
.PHONY: binary-indep
binary-indep: build-indep
dh_testdir
dh_testroot
$(MAKE) -f debian/rules doc/vigra/build-stamp
$(MAKE) -f debian/rules doc/vigranumpy/build-stamp
dh_installdocs -i -XLICENSE.txt -Xobjects.inv -Xdoctrees -X.buildinfo -Xbuild-stamp
cd debian/libvigraimpex-doc/usr/share/doc/libvigraimpex-doc/ && rm -rf html && mv vigra html && rm -f html/jquery.js && \
sed -r -i -e 's!(<a href=")LICENSE.txt(">)!\1/usr/share/doc/libvigraimpex-doc/copyright\2!g' html/index.html
cd debian/python-vigra-doc/usr/share/doc/python-vigra-doc/ && rm -rf html && mv vigranumpy html
dh_installchangelogs -i
dh_lintian -i
dh_link -i
dh_sphinxdoc -p python-vigra-doc
dh_compress -i -X.js -X_sources
dh_fixperms -i
dh_installdeb -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
doc/vigra/build-stamp: obj/build-stamp
$(MAKE) doc_cpp -C obj/
touch $(@)
doc/vigranumpy/build-stamp: obj.$(shell pyversions -d)/build-stamp doc/vigra/build-stamp
ln -sf $(CURDIR)/vigranumpy/docsrc/c_api_replaces.txt obj.$(shell pyversions -d)/vigranumpy/docsrc/
$(MAKE) doc_python -C obj.$(shell pyversions -d)/
touch $(@)
.PHONY: clean
clean:
dh_testdir
dh_clean
rm -rf obj*/
rm -rf doc/
.NOTPARALLEL:
|