#!/usr/bin/make -f # -*- makefile-gmake -*- # Uncomment this to turn on verbose mode. export DH_VERBOSE=1 DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk SOVERSION=1.5 BALL_INSTALL_PATH=build #PYTHON_VERSION=$(shell py3versions -d) #PYTHON_SITE_PATH=/lib/python3/dist-packages export DEB_BUILD_MAINT_OPTIONS = hardening=+all # Needed for a reproducible tutorial.pdf. export FORCE_SOURCE_DATE := 1 common_targets := BALL VIEW BALLView %: dh $@ --buildsystem=cmake --builddirectory=build override_dh_auto_configure: # The plugins are not installed so there is no sense to build them. # TODO: The -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON option is passed by # default in dh compat 14, so remove it when upgrading. dh_auto_configure -- -DCMAKE_INSTALL_PREFIX=./usr \ -DCMAKE_BUILD_RPATH_USE_ORIGIN=ON \ -DBALL_PATH=/usr \ -DBALL_DATA_PATH=/usr/share/BALL-$(SOVERSION)/data \ -DBALL_PYTHON_SUPPORT=OFF \ -DBALL_BUILD_BALLAXY=OFF \ -DUSE_PRESENTABALL_PLUGIN=OFF # -DSIP_LIBRARIES=/usr/lib/python3/dist-packages \ # Set BALL_DATA_PATH so that test scripts find it export BALL_DATA_PATH=$(CURDIR)/data # Make sure HOME exists (for Directory_test) export HOME=/tmp # The testsuite issues several failures # Run it, but ignore the return code for now. override_dh_auto_test: ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) dh_auto_test --no-parallel -- || true endif # Different tests are failing in different runs #The following tests FAILED: # 86 - Composite_test4 (Failed) # 87 - Composite_test5 (Failed) #Errors while running CTest #The following tests FAILED: # 112 - Fragment_test (Failed) # 113 - Chain_test (Failed) #Errors while running CTest override_dh_auto_build-arch: ## Fix upstream issue of missing UI files # uic-qt4 source/VIEW/DIALOGS/assignBondOrderConfigurationDialog.ui > include/BALL/VIEW/UIC/ui_assignBondOrderConfigurationDialog.h # uic-qt4 source/VIEW/DIALOGS/assignBondOrderResultsDialog.ui > include/BALL/VIEW/UIC/ui_assignBondOrderResultsDialog.h # uic-qt4 source/VIEW/DIALOGS/atomOverview.ui > include/BALL/VIEW/UIC/ui_atomOverview.h ## ... ## Uhmmm, seems we need to do this for all UI files mentioned in ## source/VIEW/DIALOGS/sources.cmake ## but I really hope some cmake expert might be able to find a clue ## how to trigger cmake to do it as intended by upstream. ## Somehow the code ## ADD_BALL_UIFILES("VIEW/DIALOGS" "${UI_LIST}") ## needs to be called before the build code below can be started dh_auto_build -- $(common_targets) install # Don't build the tests if they are not going to be run. ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) dh_auto_build -- build_tests endif override_dh_auto_build-indep: dh_auto_build -- $(common_targets) doc doc_tutorial install override_dh_auto_clean: [ -d source ] && cd source ; \ if [ -f Makefile ] ; \ then \ make clean ; \ cd PYTHON/EXTENSIONS; \ make clean; \ rm -rf ../lib/Linux*; \ rm -rf ../doc/doxygen/latex/*; \ rm -f $(CURDIR)/source/config.status 2>/dev/null; \ fi rm -f data/BALLView/translations/BALLView.de_DE.qm rm -f data/BALLView/translations/BALLView.zh_TW.qm rm -f doc/TUTORIAL/*.aux rm -rf $(BALL_INSTALL_PATH) find . -name "*.o" | xargs -r rm find . -type l | xargs -r rm find doc/TUTORIAL/ -name "tutorial.*" | egrep -v ".(tex|bib)$$" |xargs -r rm rm -f include/BALL/BALL.doc # find . -name "*.doc" -delete # Remove self-create UI header file rm -f include/BALL/VIEW/UIC/ui_assignBondOrderConfigurationDialog.h \ include/BALL/VIEW/UIC/ui_assignBondOrderResultsDialog.h \ include/BALL/VIEW/UIC/ui_atomOverview.h override_dh_auto_install-arch: mkdir -p debian/libball$(SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH) \ debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION) \ debian/libballview$(SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH) \ debian/ballview/usr/lib/ballview/ mkdir -p debian/ballview/usr/share/BALL-$(SOVERSION)/data/graphics cp -r $(BALL_INSTALL_PATH)/usr/share/BALL/BALLView/* debian/ballview/usr/share/doc/ballview/ cp $(BALL_INSTALL_PATH)/usr/bin/BALLView debian/ballview/usr/lib/ballview/ cp -a debian/bin/* debian/ballview/usr/bin find $(BALL_INSTALL_PATH)/usr/lib/ -name libBALL*.so.* | xargs -r cp --target-directory debian/libball$(SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH) find $(BALL_INSTALL_PATH)/usr/lib/ -name libVIEW*.so.* | xargs -r cp --target-directory debian/libballview$(SOVERSION)/usr/lib/$(DEB_HOST_MULTIARCH) # debian needs the logo in the ballview - package, not in the libball cp $(BALL_INSTALL_PATH)/usr/share/BALL/graphics/ballview*.xpm debian/ballview/usr/share/pixmaps/ # cp -r $(BALL_INSTALL_PATH)/usr/share/doc/BALL/EXAMPLES/PYTHON debian/python3-ball/usr/share/BALL-$(SOVERSION) # cp -a source/PYTHON/EXTENSIONS/* debian/python3-ball/usr/$(PYTHON_SITE_PATH) # cp $(BALL_INSTALL_PATH)/usr/lib/BALLCore.so debian/python-ball/usr/$(PYTHON_SITE_PATH) # -dev packages are arch dependent mkdir -p debian/libball$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH) \ debian/libballview$(SOVERSION)-dev/usr/include/BALL \ debian/libballview$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH) \ debian/libball$(SOVERSION)-dev/usr/include # move the cmake configuration files to their final location cp -R $(BALL_INSTALL_PATH)/usr/lib/$(DEB_HOST_MULTIARCH)/cmake/ debian/libball$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH) cp -r $(BALL_INSTALL_PATH)/usr/include/BALL debian/libball$(SOVERSION)-dev/usr/include cp -r $(BALL_INSTALL_PATH)/usr/include/BALL/VIEW debian/libballview$(SOVERSION)-dev/usr/include/BALL cp -P $(BALL_INSTALL_PATH)/usr/lib/$(DEB_HOST_MULTIARCH)/libBALL.so debian/libball$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH) cp -P $(BALL_INSTALL_PATH)/usr/lib/$(DEB_HOST_MULTIARCH)/libVIEW.so debian/libballview$(SOVERSION)-dev/usr/lib/$(DEB_HOST_MULTIARCH) # get rid of the VIEW includes in libball-dev rm -rf debian/libball$(SOVERSION)-dev/usr/include/BALL/VIEW override_dh_auto_install-indep: mkdir -p debian/libball$(SOVERSION)-doc/usr/share/doc/libball$(SOVERSION)/html \ debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/doc \ debian/libball$(SOVERSION)-doc/usr/share/doc/libball$(SOVERSION)/html/BALL cp $(BALL_INSTALL_PATH)/usr/share/doc/BALL/TUTORIAL/tutorial.pdf debian/libball$(SOVERSION)-doc/usr/share/doc/libball$(SOVERSION)/ # cp -r $(BALL_INSTALL_PATH)/usr/share/BALL/doc/classes debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/doc # cp -r $(BALL_INSTALL_PATH)/usr/share/BALL/doc/internal debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/doc # we need the BALLView documentation in the data path as well... sorry for that cp -r $(BALL_INSTALL_PATH)/usr/share/doc/BALL/EXAMPLES/PYTHON/BALLView debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/doc cp -r $(BALL_INSTALL_PATH)/usr/share/doc/BALL/html/* debian/libball$(SOVERSION)-doc/usr/share/doc/libball$(SOVERSION)/html/BALL cp -r $(BALL_INSTALL_PATH)/usr/share/BALL/* debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION) # Fix lintian W: national-encoding. iconv -f ISO-8859-1 -t UTF-8 < data/structures/test.btf \ > debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/structures/test.btf iconv -f ISO-8859-1 -t UTF-8 < data/gui-test/tutorial.btf \ > debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/gui-test/tutorial.btf iconv -f ISO-8859-1 -t UTF-8 < data/gui-test/selection.btf \ > debian/libball$(SOVERSION)-data/usr/share/BALL-$(SOVERSION)/gui-test/selection.btf override_dh_installdocs-indep: dh_installdocs -i find debian/*/usr/share -type d -empty -delete find debian/*/usr/share -name jquery.js -delete find debian/*/usr/share -name license.txt -delete mv debian/libball1.5-data/usr/share/BALL-1.5/BALLView/html debian/libball1.5-data/usr/share/doc/libball1.5-data/BALLView dh_link -p libball1.5-data usr/share/doc/libball1.5-data/BALLView usr/share/BALL-1.5/BALLView/html mv debian/libball1.5-data/usr/share/BALL-1.5/PresentaBALL debian/libball1.5-data/usr/share/doc/libball1.5-data dh_link -p libball1.5-data usr/share/doc/libball1.5-data/PresentaBALL usr/share/BALL-1.5/PresentaBALL #override_dh_install: # dh_install # dh_sip3 # if [ -d debian/python3-ball ] ; then \ # find debian/python3-ball/usr/lib/python*/dist-packages/ -name BALLPyMacros.h -delete ; \ # find debian/python3-ball -name CMakeLists.txt -delete ; \ # fi