File: rules

package info (click to toggle)
libgnatcoll 1.6gpl2014-6
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 22,760 kB
  • ctags: 10,162
  • sloc: ada: 132,013; ansic: 94,291; python: 3,762; sh: 2,781; cpp: 1,394; makefile: 342; xml: 31; sql: 6
file content (145 lines) | stat: -rwxr-xr-x 5,453 bytes parent folder | download
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
#!/usr/bin/make -f
# Build script for GNATColl in Debian.
# Copyright (c) 2014-2014 Nicolas Boulenguez <nicolas@debian.org>

# This build script is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of the
# License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
# USA

# On Debian systems, the full text of the GPL is in the file
# /usr/share/common-licenses/GPL-3.

include /usr/share/dpkg/default.mk
include /usr/share/ada/debian_packaging.mk

######################################################################
POLICY_TARGETS := binary binary-arch binary-indep build build-arch \
 build-indep clean
.PHONY: $(POLICY_TARGETS)
$(POLICY_TARGETS):
	dh $@ --with ada-library --with sphinxdoc

# Move some files out of the way to ensure that they're not used.
BACKED_UP := \
 src/gnatcoll-io-native-codec__win32.adb \
 src/gnatcoll-mmap-system__win32.adb \
 src/gnatcoll-mmap-system__win32.ads
# Build-Depends: libgnatprj-dev libgnatvsn-dev
# gnat/ must stay because configure generates sdefaults.
BACKED_UP += src/gnatcoll__copy.gpr
# Iconv is provided by libc.
BACKED_UP += src/iconv/no_iconv
# Build-Depends: libpython-dev.
BACKED_UP += src/gtk/nopython src/nopython
# Build-Depends: libc6-dev.
BACKED_UP += src/nosyslog
# libpq-dev depends on OpenSSL, which is incompatible with the GPL.
BACKED_UP += src/postgres/with_postgres
# Build-Depends: libreadline-dev.
BACKED_UP += src/readline/no_readline
# Build-Depends: libsqlite3-dev and --with-sqlite configure option
BACKED_UP += src/sqlite/amalgamation src/sqlite/no_sqlite
# We want to use libtemplates-parser, but GPL 2014 hardcodes does not
# support it yet. See gnatcoll_shared.gpr.
BACKED_UP += src/tools/templates
# This executable depends on gnatcoll-sqlite and can regenerate
# src/generated/*. See Makefile/generate-sources. The generated
# sources are short, and I cannot see a way to bootstrap.
# BACKED_UP += src/tools/gnatcoll_db2ada.adb

# Build-Depends: autotools-dev
BACKED_UP += config.guess config.sub
config.guess.backup: replace := ln -s /usr/share/misc/config.guess
config.sub.backup  : replace := ln -s /usr/share/misc/config.sub

# Build-Depends: autoconf
BACKED_UP += configure
configure.backup: replace := autoconf

# Unused, but configure insists on seeing it.
BACKED_UP += install-sh
install-sh.backup: replace := touch install-sh

# Patch version number for documentation.
BACKED_UP += configure.in
configure.backup: configure.in.backup
configure.in.backup: replace := sed -e 2s/\d\.\dw/$(DEB_VERSION_UPSTREAM)/ configure.in.backup > configure.in

# If the original file were a prerequisite, Make would update the
# backup after the original file is replaced.
$(addsuffix .backup,$(BACKED_UP)): %.backup:
	mv $* $@
	$(replace)

# aclocal.m4 insists on passing -Lfoo/lib to the linker with
# --with-sqlite=foo.  This adds a faulty path, but the linker finds
# sqlite in the default location nevertheless.
configure-stamp: $(addsuffix .backup,$(BACKED_UP))
	dh_auto_configure -- --enable-gpl --enable-shared \
          --without-postgresql \
          --with-sqlite=/usr/include
	touch $@

override_dh_auto_configure: configure-stamp

# patches/inherit_compilation_options.diff
BUILDER_OPTIONS += $(foreach v,ADAFLAGS CFLAGS CPPFLAGS LDFLAGS,"-X$(v)=$($(v))")
# patches/inherit_library_versions.diff
# This sed script constructs a -X option for every library package.
BUILDER_OPTIONS += $(shell sed debian/control -ne ' \
  /^Package: lib\([a-z-]\+\)\([0-9.]\+\(gpl[0-9]\{4\}\)\?\)$$/ { \
    s//\U\1\E_VERSION=\2/; \
    y/-/_/; \
    s/^/-X/; \
    p}')
# Makefile says:
# # Builds relocatble first so that the tools are preferably linked statically.
# all: relocatable static
# We want the contrary.
override_dh_auto_build-arch:
	$(MAKE) static relocatable 'GPRBUILD_OPTIONS=$(BUILDER_OPTIONS)'

# Upstream docs target does not generate text output.
override_dh_auto_build-indep:
	$(MAKE) -C docs html latexpdf text SPHINXOPTS=-j$(BUILDER_JOBS)

override_dh_auto_test:

override_dh_auto_install:

# Configure, so that we can assume *.backup and Makefiles exist.
override_dh_auto_clean: configure-stamp
	dh_auto_clean -- GPRCLEAN_OPTIONS=

override_dh_clean:
	dh_clean --exclude=testsuite/xref/F516-004/default.gpr.orig
 # Remove backed up directories so that mv below has the wanted effect.
	for f in $(BACKED_UP); do \
          if test -e $$f.backup; then \
            rm -fr $$f && mv $$f.backup $$f; \
          fi; \
        done

# Check dependencies across -dev packages (or generated projects)
# after any change in the structure of upstream projects.
override_dh_ada_library:
	dh_ada_library $(shell sed debian/control -ne ' \
          /^Package: lib\([a-z-]\+\)[0-9.]\+\(gpl[0-9]\{4\}\)\?-dev$$/ { \
            s~~src/\1.gpr~; \
            y/-/_/; \
            p}')

override_dh_compress:
	dh_compress --package=libgnatcoll-doc --exclude=.adb --exclude=.ads
	dh_compress --remaining-packages