1
0
Files
gcc-14/debian/rules.d/binary-d.mk
Konstantin Demin c2c1923c7b initial import from Debian
version: 14.3.0-5
commit: bee30ab0fff2fd6af94c62376c8aa4221bb831e0
2025-08-11 15:00:09 +03:00

315 lines
8.3 KiB
Makefile

ifneq ($(DEB_STAGE),rtlibs)
ifneq (,$(filter yes, $(biarch64) $(biarch32) $(biarchn32)))
arch_binaries := $(arch_binaries) gdc-multi
endif
arch_binaries := $(arch_binaries) gdc-nat gdc-host
ifeq ($(unprefixed_names),yes)
arch_binaries := $(arch_binaries) gdc
indep_binaries := $(indep_binaries) gdc-build
endif
ifeq ($(with_libphobosdev),yes)
$(lib_binaries) += libphobos-dev
endif
ifeq ($(with_libphobos),yes)
$(lib_binaries) += libphobos
endif
ifeq ($(with_lib64phobosdev),yes)
$(lib_binaries) += lib64phobos-dev
endif
ifeq ($(with_lib32phobosdev),yes)
$(lib_binaries) += lib32phobos-dev
endif
ifeq ($(with_libn32phobosdev),yes)
$(lib_binaries) += libn32phobos-dev
endif
ifeq ($(with_libx32phobosdev),yes)
$(lib_binaries) += libx32phobos-dev
endif
ifeq ($(with_lib64phobos),yes)
$(lib_binaries) += lib64phobos
endif
ifeq ($(with_lib32phobos),yes)
$(lib_binaries) += lib32phobos
endif
ifeq ($(with_libn32phobos),yes)
$(lib_binaries) += libn32phobos
endif
ifeq ($(with_libx32phobos),yes)
$(lib_binaries) += libx32phobos
endif
endif
p_gdc_n = gdc$(pkg_ver)-$(subst _,-,$(TARGET_ALIAS))
p_gdc_h = gdc$(pkg_ver)-for-host
p_gdc_b = gdc$(pkg_ver)-for-build
p_gdc = gdc$(pkg_ver)
p_gdc_m = gdc$(pkg_ver)-multilib$(cross_bin_arch)
p_libphobos = libgphobos$(GPHOBOS_SONAME)
p_libphobosdev = libgphobos$(pkg_ver)-dev
d_gdc_n = debian/$(p_gdc_n)
d_gdc_h = debian/$(p_gdc_h)
d_gdc_b = debian/$(p_gdc_b)
d_gdc = debian/$(p_gdc)
d_gdc_m = debian/$(p_gdc_m)
d_libphobos = debian/$(p_libphobos)
d_libphobosdev = debian/$(p_libphobosdev)
ifeq ($(DEB_CROSS),yes)
gdc_include_dir := $(gcc_lib_dir)/include/d
else
gdc_include_dir := $(PF)/include/d/$(BASE_VERSION)
endif
# FIXME: always here?
gdc_include_dir := $(gcc_lib_dir)/include/d
dirs_gdc_n = \
$(PF)/bin \
$(PF)/share/man/man1 \
$(gcc_lib_dir) \
$(gcc_lexec_dir) \
usr/share/lintian/overrides
dirs_gdc = \
$(PF)/bin \
$(PF)/share/man/man1
ifneq ($(DEB_CROSS),yes)
dirs_gdc_n += \
$(gdc_include_dir)
endif
files_gdc_n = \
$(PF)/bin/$(cmd_prefix)gdc$(pkg_ver) \
$(gcc_lexec_dir)/d21
ifneq ($(GFDL_INVARIANT_FREE),yes-now-pure-gfdl)
files_gdc_n += \
$(PF)/share/man/man1/$(cmd_prefix)gdc$(pkg_ver).1
endif
dirs_libphobos = \
$(PF)/lib \
$(gdc_include_dir) \
$(gcc_lib_dir)
$(binary_stamp)-gdc-nat: $(install_stamp)
dh_testdir
dh_testroot
mv $(install_stamp) $(install_stamp)-tmp
rm -rf $(d_gdc_n)
dh_installdirs -p$(p_gdc_n) $(dirs_gdc_n)
debian/dh_doclink -p$(p_gdc_n) $(p_xbase)
$(dh_compat2) dh_movefiles -p$(p_gdc_n) -X/zlib/ $(files_gdc_n)
ifeq ($(with_phobos),yes)
mv $(d)/$(usr_lib)/libgphobos.spec $(d_gdc_n)/$(gcc_lib_dir)/
endif
# FIXME: __entrypoint.di needs to go into a libgdc-dev Multi-Arch: same package
## # Always needed by gdc.
## mkdir -p $(d_gdc_n)/$(gdc_include_dir)
## cp $(srcdir)/libphobos/libdruntime/__entrypoint.di \
## $(d_gdc_n)/$(gdc_include_dir)/.
#ifneq ($(DEB_CROSS),yes)
# dh_link -p$(p_gdc_n) \
# /$(gdc_include_dir) \
# /$(dir $(gdc_include_dir))/$(GCC_VERSION)
#endif
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTONS)))
$(DWZ) \
$(d_gdc_n)/$(gcc_lexec_dir)/d21
endif
dh_strip -p$(p_gdc_n) \
$(if $(unstripped_exe),-X/d21)
dh_shlibdeps -p$(p_gdc_n)
echo '$(p_gdc_n) binary: hardening-no-pie' \
> $(d_gdc_n)/usr/share/lintian/overrides/$(p_gdc_n)
echo $(p_gdc_n) >> debian/arch_binaries
find $(d_gdc_n) -type d -empty -delete
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
$(binary_stamp)-gdc-host: $(install_stamp)
dh_testdir
dh_testroot
mv $(install_stamp) $(install_stamp)-tmp
rm -rf $(d_gdc_h)
debian/dh_doclink -p$(p_gdc_h) $(p_xbase)
echo $(p_gdc_h) >> debian/arch_binaries
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
$(binary_stamp)-gdc-build: $(install_stamp)
dh_testdir
dh_testroot
mv $(install_stamp) $(install_stamp)-tmp
rm -rf $(d_gdc_b)
debian/dh_doclink -p$(p_gdc_b) $(p_cpp_b)
echo $(p_gdc_b) >> debian/indep_binaries
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
$(binary_stamp)-gdc: $(install_stamp)
dh_testdir
dh_testroot
mv $(install_stamp) $(install_stamp)-tmp
rm -rf $(d_gdc)
dh_installdirs -p$(p_gdc) $(dirs_gdc)
dh_installdocs -p$(p_gdc)
dh_installchangelogs -p$(p_gdc) src/gcc/d/ChangeLog
ln -sf $(cmd_prefix)gdc$(pkg_ver) \
$(d_gdc)/$(PF)/bin/gdc$(pkg_ver)
ifneq ($(GFDL_INVARIANT_FREE),yes-now-pure-gfdl)
ln -sf $(cmd_prefix)gdc$(pkg_ver).1.gz \
$(d_gdc)/$(PF)/share/man/man1/gdc$(pkg_ver).1.gz
endif
dh_link -p$(p_gdc) \
/$(docdir)/$(p_xbase)/README.Bugs \
/$(docdir)/$(p_gdc)/README.Bugs
echo $(p_gdc) >> debian/arch_binaries
find $(d_gdc) -type d -empty -delete
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
$(binary_stamp)-gdc-multi: $(install_stamp)
dh_testdir
dh_testroot
mv $(install_stamp) $(install_stamp)-tmp
rm -rf $(d_gdc_m)
dh_installdirs -p$(p_gdc_m) $(docdir)
debian/dh_doclink -p$(p_gdc_m) $(p_xbase)
dh_strip -p$(p_gdc_m)
dh_shlibdeps -p$(p_gdc_m)
echo $(p_gdc_m) >> debian/arch_binaries
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
define __do_libphobos
dh_testdir
dh_testroot
mv $(install_stamp) $(install_stamp)-tmp
rm -rf $(d_l) $(d_d)
dh_installdirs -p$(p_l) \
$(usr_lib$(2))
$(dh_compat2) dh_movefiles -p$(p_l) \
$(usr_lib$(2))/libgphobos.so.* \
$(usr_lib$(2))/libgdruntime.so.*
debian/dh_doclink -p$(p_l) $(p_lbase)
$(if $(with_dbg),debian/dh_doclink -p$(p_d) $(p_lbase))
$(call do_strip_lib_dbg, $(p_l), $(p_d), $(v_dbg),,)
ln -sf libgphobos.symbols debian/$(p_l).symbols
$(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) \
-- -a$(call mlib_to_arch,$(2)) || echo XXXXXXXXXXX ERROR $(p_l)
rm -f debian/$(p_l).symbols
$(call cross_mangle_shlibs,$(p_l))
$(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \
$(call shlibdirs_to_search, \
$(subst gphobos$(GPHOBOS_SONAME),gcc-s$(GCC_SONAME),$(p_l)) \
,$(2)) \
$(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2))
$(call cross_mangle_substvars,$(p_l))
mkdir -p $(d_l)/usr/share/lintian/overrides; \
$(if $(filter $(DEB_TARGET_ARCH), amd64),
$(if $(2),
echo "$(p_l) binary: symbols-file-contains-current-version-with-debian-revision" \
>> $(d_l)/usr/share/lintian/overrides/$(p_l)
)
,
echo "$(p_l) binary: symbols-file-contains-current-version-with-debian-revision" \
>> $(d_l)/usr/share/lintian/overrides/$(p_l)
)
$(if $(2),
echo "$(p_l) binary: embedded-library" \
>> $(d_l)/usr/share/lintian/overrides/$(p_l)
)
dh_lintian -p$(p_l)
echo $(p_l) $(if $(with_dbg), $(p_d)) >> debian/$(lib_binaries)
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
endef
define __do_libphobos_dev
dh_testdir
dh_testroot
mv $(install_stamp) $(install_stamp)-tmp
rm -rf $(d_l)
dh_installdirs -p$(p_l) \
$(gcc_lib_dir$(2))
$(call install_gcc_lib,libgdruntime,$(GDRUNTIME_SONAME),$(2),$(p_l))
$(call install_gcc_lib,libgphobos,$(GPHOBOS_SONAME),$(2),$(p_l))
$(if $(2),,
$(dh_compat2) dh_movefiles -p$(p_l) \
$(gdc_include_dir)
)
## : # included in gdc package
## rm -f $(d_l)/$(gdc_include_dir)/__entrypoint.di
debian/dh_doclink -p$(p_l) $(p_lbase)
echo $(p_l) >> debian/$(lib_binaries)
trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp)
endef
# don't put this as a comment within define/endef
# $(call install_gcc_lib,libphobos,$(PHOBOS_SONAME),$(2),$(p_l))
do_libphobos = $(call __do_libphobos,lib$(1)gphobos$(GPHOBOS_SONAME),$(1))
do_libphobos_dev = $(call __do_libphobos_dev,lib$(1)gphobos-$(BASE_VERSION)-dev,$(1))
$(binary_stamp)-libphobos: $(install_stamp)
$(call do_libphobos,)
$(binary_stamp)-lib64phobos: $(install_stamp)
$(call do_libphobos,64)
$(binary_stamp)-lib32phobos: $(install_stamp)
$(call do_libphobos,32)
$(binary_stamp)-libn32phobos: $(install_stamp)
$(call do_libphobos,n32)
$(binary_stamp)-libx32phobos: $(install_stamp)
$(call do_libphobos,x32)
$(binary_stamp)-libphobos-dev: $(install_stamp)
$(call do_libphobos_dev,)
$(binary_stamp)-lib64phobos-dev: $(install_stamp)
$(call do_libphobos_dev,64)
$(binary_stamp)-lib32phobos-dev: $(install_stamp)
$(call do_libphobos_dev,32)
$(binary_stamp)-libx32phobos-dev: $(install_stamp)
$(call do_libphobos_dev,x32)
$(binary_stamp)-libn32phobos-dev: $(install_stamp)
$(call do_libphobos_dev,n32)