264 lines
8.3 KiB
Makefile
264 lines
8.3 KiB
Makefile
ifeq ($(with_libgnat),yes)
|
|
# During native builds, gnat-BV Depends:
|
|
# * libgnat because of the development symlink.
|
|
# During cross builds, gnat1 is linked statically. Only the latter remains.
|
|
$(lib_binaries) += libgnat
|
|
endif
|
|
|
|
arch_binaries := $(arch_binaries) ada-nat ada-host
|
|
ifeq ($(unprefixed_names),yes)
|
|
arch_binaries := $(arch_binaries) ada
|
|
indep_binaries := $(indep_binaries) ada-build
|
|
endif
|
|
ifneq ($(DEB_CROSS),yes)
|
|
ifneq ($(GFDL_INVARIANT_FREE),yes)
|
|
indep_binaries := $(indep_binaries) ada-doc
|
|
endif
|
|
endif
|
|
|
|
p_gbase = $(p_xbase)
|
|
p_glbase = $(p_lbase)
|
|
|
|
p_gnat_n = gnat-$(GNAT_VERSION)-$(subst _,-,$(TARGET_ALIAS))
|
|
p_gnat_h = gnat-$(GNAT_VERSION)-for-host
|
|
p_gnat_b = gnat-$(GNAT_VERSION)-for-build
|
|
p_gnat = gnat-$(GNAT_VERSION)
|
|
p_gnatsjlj= gnat-$(GNAT_VERSION)-sjlj$(cross_bin_arch)
|
|
p_lgnat = libgnat-$(GNAT_VERSION)$(cross_lib_arch)
|
|
p_lgnat_dbg = libgnat-$(GNAT_VERSION)-dbg$(cross_lib_arch)
|
|
p_gnatd = $(p_gnat)-doc
|
|
|
|
d_gbase = debian/$(p_gbase)
|
|
d_gnat_n = debian/$(p_gnat_n)
|
|
d_gnat_h = debian/$(p_gnat_h)
|
|
d_gnat_b = debian/$(p_gnat_b)
|
|
d_gnat = debian/$(p_gnat)
|
|
d_gnatsjlj = debian/$(p_gnatsjlj)
|
|
d_lgnat = debian/$(p_lgnat)
|
|
d_gnatd = debian/$(p_gnatd)
|
|
|
|
GNAT_TOOLS = gnat gnatbind gnatchop gnatclean gnatkr gnatlink \
|
|
gnatls gnatmake gnatname gnatprep gnathtml
|
|
|
|
dirs_gnat_n = \
|
|
$(docdir)/$(p_gbase) \
|
|
$(PF)/bin \
|
|
$(PF)/share/man/man1 \
|
|
$(gcc_lib_dir)/{adalib,adainclude} \
|
|
$(gcc_lexec_dir) \
|
|
usr/share/lintian/overrides
|
|
|
|
dirs_gnat = \
|
|
$(docdir)/$(p_gbase)/ada \
|
|
$(PF)/bin \
|
|
$(PF)/share/man/man1 \
|
|
usr/share/lintian/overrides
|
|
|
|
files_gnat_n = \
|
|
$(gcc_lexec_dir)/gnat1 \
|
|
$(gcc_lib_dir)/ada_target_properties \
|
|
$(gcc_lib_dir)/adainclude/*.ad[bs] \
|
|
$(gcc_lib_dir)/adainclude/*.h \
|
|
$(gcc_lib_dir)/adalib/*.ali \
|
|
$(gcc_lib_dir)/adalib/lib*.a \
|
|
$(foreach i,$(GNAT_TOOLS),$(PF)/bin/$(cmd_prefix)$(i)$(pkg_ver))
|
|
|
|
# Strip unreproducible -f*-prefix-map= options from installed .ali
|
|
# files until the proper solution BUILD_PATH_PREFIX_MAP is accepted.
|
|
sed_ali_strip_prefix_map := sed -i '/^A -f[a-z]+-prefix-map=/d'
|
|
|
|
$(binary_stamp)-libgnat: $(install_stamp)
|
|
dh_testdir
|
|
dh_testroot
|
|
mv $(install_stamp) $(install_stamp)-tmp
|
|
|
|
: # libgnat
|
|
rm -rf $(d_lgnat)
|
|
|
|
dh_install -p$(p_lgnat) $(gcc_lib_dir)/adalib/libgna{t,rl}-$(GNAT_SONAME).so $(usr_lib)
|
|
|
|
debian/dh_doclink -p$(p_lgnat) $(p_glbase)
|
|
|
|
debian/dh_rmemptydirs -p$(p_lgnat)
|
|
|
|
b=libgnat; \
|
|
v=$(GNAT_VERSION); \
|
|
for ext in preinst postinst prerm postrm; do \
|
|
for t in '' -dev -dbg; do \
|
|
if [ -f debian/$$b$$t.$$ext ]; then \
|
|
cp -pf debian/$$b$$t.$$ext debian/$$b$$v$$t.$$ext; \
|
|
fi; \
|
|
done; \
|
|
done
|
|
$(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_lgnat) \
|
|
-V '$(p_lgnat) (>= $(shell echo $(DEB_VERSION) | sed 's/-.*//'))'
|
|
$(call cross_mangle_shlibs,$(p_lgnat))
|
|
|
|
ifneq (,$(filter $(build_type), build-native cross-build-native))
|
|
mkdir -p $(d_lgnat)/usr/share/lintian/overrides
|
|
echo package-name-doesnt-match-sonames > \
|
|
$(d_lgnat)/usr/share/lintian/overrides/$(p_lgnat)
|
|
endif
|
|
|
|
# The subst Make command below could be simplified, but ensures
|
|
# consistency with libraries building non-default multilib packages.
|
|
$(call do_strip_lib_dbg, $(p_lgnat), $(p_lgnat_dbg), $(v_dbg),,)
|
|
$(cross_shlibdeps) dh_shlibdeps -p$(p_lgnat) \
|
|
$(call shlibdirs_to_search, \
|
|
$(subst gnat-$(GNAT_SONAME),gcc-s$(GCC_SONAME),$(p_lgnat)) \
|
|
$(subst gnat-$(GNAT_SONAME),atomic$(ATOMIC_SONAME),$(p_lgnat)) \
|
|
,) \
|
|
$(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common)
|
|
$(call cross_mangle_substvars,$(p_lgnat))
|
|
|
|
ifeq ($(with_dbg),yes)
|
|
: # $(p_lgnat_dbg)
|
|
debian/dh_doclink -p$(p_lgnat_dbg) $(p_glbase)
|
|
endif
|
|
echo $(p_lgnat) $(if $(with_dbg), $(p_lgnat_dbg)) >> debian/$(lib_binaries)
|
|
|
|
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
|
|
|
|
$(binary_stamp)-ada-nat: $(install_stamp)
|
|
dh_testdir
|
|
dh_testroot
|
|
mv $(install_stamp) $(install_stamp)-tmp
|
|
: # $(p_gnat_n)
|
|
rm -rf $(d_gnat_n)
|
|
dh_installdirs -p$(p_gnat_n) $(dirs_gnat_n)
|
|
: # Upstream does not install gnathtml.
|
|
cp src/gcc/ada/gnathtml.pl debian/tmp/$(PF)/bin/$(cmd_prefix)gnathtml$(pkg_ver)
|
|
chmod 755 debian/tmp/$(PF)/bin/$(cmd_prefix)gnathtml$(pkg_ver)
|
|
$(dh_compat2) dh_movefiles -p$(p_gnat_n) $(files_gnat_n)
|
|
|
|
ifeq ($(with_libgnat),yes)
|
|
# Similar links specific to Debian. FIXME: what is their purpose?
|
|
dh_link -p$(p_gnat_n) $(foreach lib,libgnat libgnarl,\
|
|
$(usr_lib)/$(lib)-$(GNAT_SONAME).so $(gcc_lib_dir)/adalib/$(lib).so)
|
|
endif
|
|
debian/dh_doclink -p$(p_gnat_n) $(p_gbase)
|
|
for i in $(GNAT_TOOLS); do \
|
|
case "$$i" in \
|
|
gnat) cp -p debian/gnat.1 $(d_gnat_n)/$(PF)/share/man/man1/$(cmd_prefix)gnat$(pkg_ver).1 ;; \
|
|
*) ln -sf $(cmd_prefix)gnat$(pkg_ver).1 $(d_gnat_n)/$(PF)/share/man/man1/$(cmd_prefix)$$i$(pkg_ver).1; \
|
|
esac; \
|
|
done
|
|
|
|
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS)))
|
|
$(DWZ) \
|
|
$(d_gnat_n)/$(gcc_lexec_dir)/gnat1
|
|
endif
|
|
dh_strip -p$(p_gnat_n)
|
|
find $(d_gnat_n) -name '*.ali' | xargs $(sed_ali_strip_prefix_map)
|
|
find $(d_gnat_n) -name '*.ali' | xargs chmod 444
|
|
dh_shlibdeps -p$(p_gnat_n)
|
|
( \
|
|
echo '$(p_gnat_n) binary: hardening-no-pie'; \
|
|
echo '$(p_gnat_n) binary: non-standard-file-perm' \
|
|
) > $(d_gnat_n)/usr/share/lintian/overrides/$(p_gnat_n)
|
|
ifeq ($(GFDL_INVARIANT_FREE),yes)
|
|
echo '$(p_gnat_n) binary: binary-without-manpage' \
|
|
>> $(d_gnat_n)/usr/share/lintian/overrides/$(p_gnat_n)
|
|
endif
|
|
|
|
debian/dh_rmemptydirs -p$(p_gnat_n)
|
|
|
|
echo $(p_gnat_n) >> debian/arch_binaries
|
|
|
|
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
|
|
|
|
$(binary_stamp)-ada-host: $(install_stamp)
|
|
dh_testdir
|
|
dh_testroot
|
|
mv $(install_stamp) $(install_stamp)-tmp
|
|
rm -rf $(d_gnat_h)
|
|
debian/dh_doclink -p$(p_gnat_h) $(p_xbase)
|
|
echo $(p_gnat_h) >> debian/arch_binaries
|
|
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
|
|
|
|
$(binary_stamp)-ada-build: $(install_stamp)
|
|
dh_testdir
|
|
dh_testroot
|
|
mv $(install_stamp) $(install_stamp)-tmp
|
|
rm -rf $(d_gnat_b)
|
|
debian/dh_doclink -p$(p_gnat_b) $(p_cpp_b)
|
|
echo $(p_gnat_b) >> debian/indep_binaries
|
|
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
|
|
|
|
$(binary_stamp)-ada: $(install_stamp)
|
|
dh_testdir
|
|
dh_testroot
|
|
mv $(install_stamp) $(install_stamp)-tmp
|
|
: # $(p_gnat)
|
|
rm -rf $(d_gnat)
|
|
dh_installdirs -p$(p_gnat) $(dirs_gnat)
|
|
|
|
ifeq ($(with_gnatsjlj),yes)
|
|
dh_installdirs -p$(p_gnatsjlj) $(gcc_lib_dir)
|
|
$(dh_compat2) dh_movefiles -p$(p_gnatsjlj) $(gcc_lib_dir)/rts-sjlj/adalib $(gcc_lib_dir)/rts-sjlj/adainclude
|
|
endif
|
|
|
|
debian/dh_doclink -p$(p_gnat) $(p_gbase)
|
|
ifeq ($(with_gnatsjlj),yes)
|
|
debian/dh_doclink -p$(p_gnatsjlj) $(p_gbase)
|
|
endif
|
|
cp -p src/gcc/ada/ChangeLog $(d_gnat)/$(docdir)/$(p_gbase)/ada/.
|
|
cp -p debian/ada/README.gnat $(d_gnat)/$(docdir)/$(p_gbase)/ada/.
|
|
|
|
ifneq (,$(filter $(build_type), build-native cross-build-native))
|
|
: # ship the versioned prefixed names in the gnat package.
|
|
for i in $(GNAT_TOOLS); do \
|
|
ln -sf $(cmd_prefix)$$i$(pkg_ver) \
|
|
$(d_gnat)/$(PF)/bin/$$i$(pkg_ver); \
|
|
ln -sf $(cmd_prefix)gnat$(pkg_ver).1.gz \
|
|
$(d_gnat)/$(PF)/share/man/man1/$$i$(pkg_ver).1.gz; \
|
|
done
|
|
endif
|
|
|
|
ifeq ($(GFDL_INVARIANT_FREE),yes)
|
|
echo '$(p_gnat) binary: binary-without-manpage' \
|
|
>> $(d_gnat)/usr/share/lintian/overrides/$(p_gnat)
|
|
endif
|
|
|
|
debian/dh_rmemptydirs -p$(p_gnat)
|
|
|
|
echo $(p_gnat) >> debian/arch_binaries
|
|
|
|
ifeq ($(with_gnatsjlj),yes)
|
|
dh_strip -p$(p_gnatsjlj)
|
|
find $(d_gnatsjlj) -name '*.ali' | xargs $(sed_ali_strip_prefix_map)
|
|
find $(d_gnatsjlj) -name '*.ali' | xargs chmod 444
|
|
dh_shlibdeps -p$(p_gnatsjlj)
|
|
echo $(p_gnatsjlj) >> debian/arch_binaries
|
|
endif
|
|
|
|
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
|
|
|
|
|
|
$(build_gnatdoc_stamp): $(build_stamp)
|
|
mkdir -p html
|
|
rm -f html/*.info
|
|
echo -n gnat_ugn gnat_rm gnat-style | xargs -d ' ' -L 1 -P $(USE_CPUS) -I{} \
|
|
sh -c 'cd html && \
|
|
echo "generating {}-$(GNAT_VERSION).info"; \
|
|
makeinfo -I $(srcdir)/gcc/doc/include -I $(srcdir)/gcc/ada \
|
|
-I $(builddir)/gcc \
|
|
-o {}-$(GNAT_VERSION).info \
|
|
$(srcdir)/gcc/ada/{}.texi'
|
|
touch $@
|
|
|
|
$(binary_stamp)-ada-doc: $(build_html_stamp) $(build_gnatdoc_stamp)
|
|
dh_testdir
|
|
dh_testroot
|
|
mv $(install_stamp) $(install_stamp)-tmp
|
|
|
|
rm -rf $(d_gnatd)
|
|
dh_installdirs -p$(p_gnatd) \
|
|
$(PF)/share/info
|
|
cp -p html/gnat*info* $(d_gnatd)/$(PF)/share/info/.
|
|
dh_installdocs -p$(p_gnatd) \
|
|
html/gnat_ugn.html html/gnat_rm.html html/gnat-style.html
|
|
echo $(p_gnatd) >> debian/indep_binaries
|
|
|
|
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
|