summaryrefslogtreecommitdiff
path: root/debian/README.Debian
blob: 4680080bdc0b2e2fa3702fb6e23c793973272808 (plain)
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
pkg-kde-tools for Debian
------------------------

 These snippets (/usr/share/pkg-kde-tools/makefiles/1) should be universally
 usable:
  - If your package uses CDBS, you should be able to just include the
    cdbs/kde.mk file.
  - If you use other tools, include the variables.mk file and run cmake with
    $(DEB_CMAKE_KDE4_FLAGS) to get the kde4 default variables.
  - If you want to use Debhelper dh(1) command sequencer, you will find section
    "Using with Debhelper Command Sequencer `dh`" below interesting. Please
    note that /usr/share/pkg-kde-tools/makefiles/1/debhelper/kde.mk has been
    dropped in pkg-kde-tools 0.7.0.

 In order to link with --as-needed (disabled by default), you could set
 DEB_KDE_LINK_WITH_AS_NEEDED to 'yes' before the include. However, please note
 that enabling DEB_KDE_LINK_WITH_AS_NEEDED implicitly links with --no-undefined
 as well unless DEB_KDE_LINK_WITH_NO_UNDEFINED is set to `no`.

Using with Debhelper Command Sequencer `dh`
------------------------------------------

pkg-kde-tools provides a couple of additions to dh(1) and its toolset.

* Debhelper build system 'kde'. It is based on the debhelper build system
  'cmake'. The only difference is that in addition it passes KDE 4 specific
  flags to cmake by default. In order to use it, pass --buildsystem=kde when
  running dh_auto_*. Debhelper 7.3.0 or later is required to use this build
  system.
* dh sequence addon 'kde'. It will tweak default dh sequences to be best
  suitable for building KDE applications. For example, that includes passing of
  --buildsystem=kde to all dh_auto_* commands by default and other
  enhancements. Debhelper 7.3.16 or later is required to use this addon.

In order to build a simple KDE package, all you need to do is to pass `--with
kde` option to dh(1). More advanced usage (e.g. to pass additional flags to
cmake) may require overriding of some debhelper commands (e.g.
dh_auto_configure). See examples below for more details.

In order to kde dh sequence addon, you must depend on debhelper (>= 7.3.16) and
pkg-kde-tools (>= 0.5). What's more, pkg-kde-tools (>= 0.6.2) has more
interesting changes like dh_movelibkdeinit and docbook exclusion from
dh_compress.

Examples
--------

* A CDBS using package.

-------> debian/rules <-------
#!/usr/bin/make -f

include /usr/share/pkg-kde-tools/makefiles/1/cdbs/kde.mk
include /usr/share/cdbs/1/rules/debhelper.mk
------------------------------

* A non CDBS using package could start with something like the following
  and end up like any other cmake using package.

-------> debian/rules <-------
#!/usr/bin/make -f

include /usr/share/pkg-kde-tools/makefiles/1/variables.mk

builddir/Makefile:
	dh_testdir

	mkdir -p builddir
	cd builddir && cmake .. \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_C_FLAGS="$(CPPFLAGS) $(CFLAGS)" \
		-DCMAKE_LD_FLAGS="$(LDFLAGS) -Wl,-z,defs" \
		-DCMAKE_CXX_FLAGS="$(CPPFLAGS) $(CXXFLAGS)" \
		-DCMAKE_SKIP_RPATH=ON \
		-DCMAKE_VERBOSE_MAKEFILE=ON \
		$(DEB_CMAKE_KDE4_FLAGS)

build: build-stamp
build-stamp: builddir/Makefile
	dh_testdir

	$(MAKE) -C builddir

	touch $@
------------------------------

* A very simple KDE package using dh.

-------> debian/rules <-------
#!/usr/bin/make -f

%:
	dh $@ --with kde
------------------------------

* A more complicated KDE package using dh. Additional -DSOME_FLAG is passed to
  cmake and quilt addon is used for managing patches.

-------> debian/rules <-------
#!/usr/bin/make -f

override_dh_auto_configure:
	dh_auto_configure --buildsystem=kde -- -DSOME_FLAG=some_value

%:
	dh $@ --with quilt,kde
------------------------------