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
|
#! /usr/bin/make -rf
# Debian build script for asis - Copyright (c) 2003-2009 Ludovic Brenta
# This build script is free software; you can redistribute it and/or
# modify it under terms of the GNU General Public License as published
# by the Free Software Foundation; either version 2, or (at your
# option) any later version. This build script 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
# distributed with this build script; see file
# /usr/share/common-licenses/GPL. If not, write to the Free Software
# Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# This has to be exported to make some magic below work.
export DH_OPTIONS
aliversion := 2010
soversion := 2010
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
OS = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
N_ASIS_UL_TOOLS := asistant gnatcheck gnatelim gnatstub
ASIS_UL_TOOLS := gnatmetric gnatpp gnatsync
TOOLS := $(N_ASIS_UL_TOOLS) $(ASIS_UL_TOOLS)
LIBASIS := libasis.so.$(soversion)
CPUS := $(shell getconf _NPROCESSORS_ONLN)
mtnbase := base_debian.db
mtnversion := af45f0024c1a910bdd57055a7b2a1834380c9aa8
branch := com.adacore.asis.debian
orig_dir := asis_$(aliversion).orig
orig_tgz := asis_$(aliversion).orig.tar.gz
DOC_FORMATS := html info pdf txt
include /usr/share/quilt/quilt.make
clean: unpatch
dh_testdir
-rm -f *-stamp
-rm -rf obj-shared obj-static $(addprefix obj-,$(TOOLS)) $(TOOLS)
-rm -f $(addprefix documentation/,*.aux *.cp *.cps *.dvi *.fn *.ky *.log *.pg *.toc *.tp *.vr)
-rm -f $(addprefix documentation/*.,$(DOC_FORMATS))
-rm -f $(addprefix documentation/,gnatcheck_rm.texi gnatcheck_rules.texi)
-rm -f debian/*.lintian-overrides # we generate them below
dh_clean
get-orig-source:
if [ ! -e ../$(mtnbase) ]; then \
mtn -d../$(mtnbase) db init; \
fi; \
mtn -d../$(mtnbase) -k "" pull www.ada-france.org '$(branch)'; \
cd .. && \
mtn -d$(mtnbase) co -r$(mtnversion) -b$(branch) $(orig_dir) && \
rm -rf $(orig_dir)/_MTN $(orig_dir)/.*ignore&& \
tar czf $(orig_tgz) $(orig_dir) && \
rm -r $(orig_dir)
build-arch: patch obj-static/libasis.a obj-shared/libasis.so $(TOOLS)
build-indep: patch build-doc
obj-static/libasis.a: obj=$(dir $@)
obj-static/libasis.a: library_kind=static
obj-static/libasis.a: asis/*
obj-shared/libasis.so: obj=$(dir $@)
obj-shared/libasis.so: library_kind=dynamic
obj-shared/libasis.so: asis/*
obj-static/libasis.a obj-shared/libasis.so:
: # Build the $(library_kind) library
gnatmake -p -j$(CPUS) -Pdebian/install_asis \
-Xobject_dir=../$(obj) -XLibrary_Kind=$(library_kind) -Xsoversion=$(soversion)
chmod a-w $(obj)/*.ali
obj-tools:
-mkdir $@
$(N_ASIS_UL_TOOLS)::
: # Build the tools, link dynamically against libasis.so
gnatmake -p -j$(CPUS) -Pdebian/tools.gpr -Xobject_dir=../obj-shared \
-XLibrary_Kind=$(library_kind) -Xsoversion=$(soversion) \
-XExternally_Built=true -XTarget=$@ $@-driver
$(ASIS_UL_TOOLS)::
: # Build the tools, link dynamically against libasis.so
gnatmake -p -j$(CPUS) -Pdebian/tools.gpr -Xobject_dir=../obj-shared \
-XLibrary_Kind=$(library_kind) -Xsoversion=$(soversion) \
-XExternally_Built=true -XTarget=$@ asis_ul-several_files_driver
$(TOOLS)::
: # Emit lintian overrides for each tool; Ada is intrinsically hardened.
echo "asis-programs: hardening-no-relro usr/bin/$@" >> debian/asis-programs.lintian-overrides
echo "asis-programs: hardening-no-fortify-functions usr/bin/$@" >> debian/asis-programs.lintian-overrides
binary: checks binary-arch binary-indep
binary-arch: patch libasis$(soversion) libasis$(aliversion)-dev asis-programs
dh_compress -a
dh_fixperms -a
dh_lintian -a
dh_installdeb -a
dh_gencontrol -a
dh_md5sums -a
dh_builddeb -a
checks: patch
dh_testdir
dh_testroot
dh_prep
libasis$(aliversion)-dev: obj-static/libasis.a
-find debian -name '*.vms' -exec rm -f {} \;
dh_installdocs -p$@
dh_installchangelogs -p$@
dh_link -p$@ usr/lib/$(DEB_HOST_MULTIARCH)/$(LIBASIS) usr/lib/$(DEB_HOST_MULTIARCH)/libasis.so
dh_install -p$@ asis/*.ad[bs] usr/share/ada/adainclude/asis
dh_install -p$@ obj-shared/*.ali usr/lib/ada/adalib/asis
dh_install -p$@ obj-static/libasis.a usr/lib/$(DEB_HOST_MULTIARCH)
dh_install -p$@ debian/asis.gpr usr/share/ada/adainclude
libasis$(soversion): obj-shared/libasis.so
dh_installdocs -p$@
dh_installchangelogs -p$@
dh_install -p$@ obj-shared/$(LIBASIS) usr/lib/$(DEB_HOST_MULTIARCH)
dh_makeshlibs -p$@
dh_shlibdeps -p$@
: # Emit lintian overrides for each tool; Ada is intrinsically hardened.
echo "$@: hardening-no-relro usr/lib/*/$(LIBASIS)" >> debian/$@.lintian-overrides
echo "$@: hardening-no-fortify-functions usr/lib/*/$(LIBASIS)" >> debian/$@.lintian-overrides
dh_strip -p$@ --dbg-package=$@-dbg
dh_installdocs -p$@-dbg
dh_installchangelogs -p$@-dbg
asis-programs: $(TOOLS)
dh_installdirs -p$@ usr/share/doc/$@
dh_installdocs -p$@ README
dh_installchangelogs -p$@
dh_install -p$@ $(TOOLS) usr/bin
dh_strip -p$@
dh_shlibdeps -p$@ \
-L libasis$(soversion) \
-l debian/libasis$(soversion)/usr/lib/$(DEB_HOST_MULTIARCH) \
usr/bin/*
cp tutorial/using_asistant/README \
debian/$@/usr/share/doc/$@/README.asistant
cp tutorial/using_templates/style_checker/README \
debian/$@/usr/share/doc/$@/README.gnatcheck
cp tools/gnatmetric/README \
debian/$@/usr/share/doc/$@/README.gnatmetric
cp tools/gnatpp/README \
debian/$@/usr/share/doc/$@/README.gnatpp
cp tools/gnatsync/README \
debian/$@/usr/share/doc/$@/README.gnatsync
dh_installman -p$@ $(foreach t,$(TOOLS),debian/$(t).1)
binary-indep: patch asis-doc
dh_installchangelogs -i
dh_fixperms -i
dh_compress -i -X.pdf
dh_installdeb -i
dh_gencontrol -i
dh_md5sums -i
dh_builddeb -i
build-doc:
$(MAKE) -C documentation
extensions := html txt pdf
asis-doc: build-doc
dh_installdocs -p$@ README tutorial *.txt asis-2005-transition.txt features-asis*
dh_installexamples -p$@ templates
dh_installdocs -p$@ $(foreach e,$(extensions),documentation/*.$(e))
dh_installinfo -p$@ documentation/*.info
.PHONY: build clean binary-indep binary-arch binary install checks
.PHONY: libasis$(soversion) libasis$(aliversion)-dev asis-programs
|