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
|
#!/usr/bin/make -f
# DH_VERBOSE := 1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
# CamiTK version from d/changelog)
include /usr/share/dpkg/pkg-info.mk
FULL_VERSION := $(shell echo '$(DEB_VERSION)' | sed -e 's/^[[:digit:]]*://' -e 's/[~-].*//')
VER_MAJOR := $(shell echo '$(FULL_VERSION)' | cut -f1 -d".")
VER_MINOR := $(shell echo '$(FULL_VERSION)' | cut -f2 -d".")
VER_SHORT=$(VER_MAJOR).$(VER_MINOR)
# package aliases (see d/control)
pkg_lib = libcamitk$(VER_MAJOR)
pkg_qpb = libqtpropertybrowser$(VER_MAJOR)
pkg_cfg = camitk-config
pkg_dev = libcamitk-dev
pkg_qpb_dev = libqtpropertybrowser-dev
pkg_data = libcamitk$(VER_MAJOR)-data
pkg_doc = libcamitk$(VER_MAJOR)-doc
pkg_imp = camitk-imp
pkg_asm = camitk-actionstatemachine
# multi-arch support
include /usr/share/dpkg/architecture.mk
# dpkg-shlibdeps needs to know about camitk extension directories to manage inner-dependencies
# between extensions (i.e., mml component extension depends on physicalmodel component extensions)
PKG_LIB_DIR := $(CURDIR)/debian/${pkg_lib}/usr/lib/camitk-${VER_SHORT}
# for component extensions:
LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(PKG_LIB_DIR)/components/
# for action extensions:
LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(PKG_LIB_DIR)/actions/
# for private libraries:
LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(PKG_LIB_DIR)/
# during test, the build dir path is also needed
LIB_BUILD_DIR := $(CURDIR)/camitk-build/lib
PRIVATE_LIB_BUILD_DIR := $(LIB_BUILD_DIR)/camitk-${VER_SHORT}
LD_LIBRARY_PATH := $(LD_LIBRARY_PATH):$(LIB_BUILD_DIR):$(PRIVATE_LIB_BUILD_DIR)/components/:$(PRIVATE_LIB_BUILD_DIR)/actions/:$(PRIVATE_LIB_BUILD_DIR)/
# export for all d/rules subshell (test and dpkg-shlibdeps included)
export LD_LIBRARY_PATH
# CMake flags are of two types:
# - generic (to tell cmake to build proper binaries)
# - CamiTK specific options
# Notes:
# - if you would like a more verbose camitk at run-time,
# you can add -DCAMITK_LOG_LEVEL=2
CMAKE_EXTRA_FLAGS = \
-DCMAKE_SKIP_RPATH:BOOL=TRUE \
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=FALSE \
-DCMAKE_BUILD_TYPE:STRING=None \
\
-DCEP_IMAGING:BOOL=TRUE \
-DCEP_MODELING:BOOL=TRUE \
-DCEP_TUTORIALS:BOOL=TRUE \
\
-DAPIDOC_SDK:BOOL=TRUE
%:
dh $@ --builddirectory=camitk-build
override_dh_auto_configure:
dh_auto_configure -- $(CMAKE_EXTRA_FLAGS)
# let's be smart with doc
override_dh_auto_build-indep:
$(MAKE) -C camitk-build camitk-ce-api-doc
# remove the javascript search field
rm -f camitk-build/share/camitk-$(VER_SHORT)/apidoc/html/jquery.js
# No tests needed for docs
override_dh_auto_test-indep:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
echo "No tests availaible just for the docs"
endif
# run all the available tests (only for Archictecture: any
# as tests can only be run if and once the framework is build)
override_dh_auto_test-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
# Use the CamiTK test suite
# Note: all tests require an X server, xvfb-run is needed to have a virtual one
# Another way: xvfb-run --auto-servernum $(MAKE) -C camitk-build ARGS="-V" test
# e.g. to test config: (cd camitk-build && xvfb-run --auto-servernum --server-args="-screen 0 1024x768x24" ctest -VV --timeout 1800 -R application-config)
(cd camitk-build && xvfb-run --auto-servernum --server-args="-screen 0 1024x768x24" ctest -V --timeout 1800)
endif
# make packages
override_dh_install:
# $(CURDIR) is the current source dir
# camitk dynamic library
dh_install -p$(pkg_lib) --autodest debian/tmp/usr/lib/libcamitkcore.so.*
dh_install -p$(pkg_lib) --autodest debian/tmp/usr/lib/libmonitoring.so.*
dh_install -p$(pkg_lib) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/actions/lib*.so.*
dh_install -p$(pkg_lib) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/components/lib*.so.*
# camitk-config package contains only the app, man page and icon
dh_install -p$(pkg_cfg) --autodest debian/tmp/usr/bin/camitk-config
dh_install -p$(pkg_cfg) --autodest debian/tmp/usr/share/pixmaps/camitk-config.xpm
dh_installman -p$(pkg_cfg) debian/tmp/usr/share/man/man1/camitk-config.1
# separate packaging for qtpropertybrowser (can be used independently from camitk)
dh_install -p$(pkg_qpb) --autodest debian/tmp/usr/lib/libqtpropertybrowser.so.*
# camitk developer package
# camitk so and headers and static libs
dh_install -p$(pkg_dev) debian/tmp/usr/lib/libcamitkcore.so usr/lib
dh_install -p$(pkg_dev) debian/tmp/usr/lib/libmonitoring.so usr/lib
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/actions/lib*.so
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/components/lib*.so
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/lib/camitk-$(VER_SHORT)/lib*.a
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/camitkcore
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/cepcoreschema
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/cepgenerator
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/actions
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/components
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/pmlschema
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/pml
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/lmlschema
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/lml
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/mmlschema
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/monitoring
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/monitoringgui
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/*.cmake
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/macros/*.cmake
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/macros/camitk/*.cmake
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/macros/camitk/manifest/*.cmake
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/macros/camitk/packaging/*.cmake
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/macros/camitk/test/*.cmake
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/cmake/macros/camitk/test/level/*.cmake
# wizard
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/bin/camitk-wizard
dh_installman -p$(pkg_dev) debian/tmp/usr/share/man/man1/camitk-wizard.1
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/applications/camitk-wizard.desktop
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/share/pixmaps/camitk-wizard.xpm
# cepgenerator
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/bin/camitk-cepgenerator
dh_installman -p$(pkg_dev) debian/tmp/usr/share/man/man1/camitk-cepgenerator.1
# test programs
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/bin/camitk-testactions
dh_installman -p$(pkg_dev) debian/tmp/usr/share/man/man1/camitk-testactions.1
dh_install -p$(pkg_dev) --autodest debian/tmp/usr/bin/camitk-testcomponents
dh_installman -p$(pkg_dev) debian/tmp/usr/share/man/man1/camitk-testcomponents.1
# qtpropertybrowser so and headers (includes are put directly in usr/include as package should be generic/independant from CamiTK)
dh_install -p$(pkg_qpb_dev) debian/tmp/usr/lib/libqtpropertybrowser.so usr/lib
dh_install -p$(pkg_qpb_dev) debian/tmp/usr/include/camitk-${VER_SHORT}/libraries/qtpropertybrowser usr/include
# api doc
dh_install -p$(pkg_doc) --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/apidoc
# all test data excluding extra licence files (everything is already specified in d/c)
dh_install -p$(pkg_data) --exclude=LICENSE --autodest debian/tmp/usr/share/camitk-$(VER_SHORT)/testdata
# imp
dh_install -p$(pkg_imp) --autodest debian/tmp/usr/bin/camitk-imp
dh_install -p$(pkg_imp) --autodest debian/tmp/usr/share/applications/camitk-imp.desktop
dh_install -p$(pkg_imp) --autodest debian/tmp/usr/share/pixmaps/camitk-imp.xpm
dh_installman -p$(pkg_imp) debian/tmp/usr/share/man/man1/camitk-imp.1
# asm
dh_install -p$(pkg_asm) --autodest debian/tmp/usr/bin/camitk-actionstatemachine
dh_install -p$(pkg_asm) --autodest debian/tmp/usr/share/pixmaps/camitk-actionstatemachine.xpm
dh_installman -p$(pkg_asm) debian/tmp/usr/share/man/man1/camitk-actionstatemachine.1
# see http://lists.debian.org/debian-mentors/2012/07/msg00124.html
get-orig-source:
mkdir -p ../tarballs
PERL_LWP_SSL_VERIFY_HOSTNAME=0 uscan --rename --verbose --force-download --destdir=../tarballs
|