# Copyright 2019 Andreas Beckmann <anbe@debian.org>
# Copyright 1994,1995 Ian Jackson
# Copyright 2004-2005 Jérôme Marant <jerome@debian.org>
-# Copyright 1998-2020, 2022 Rob Browning <rlb@defaultvalue.org>
+# Copyright 1998-2020, 2022-2023 Rob Browning <rlb@defaultvalue.org>
# Originally copied from the GNU Hello Debian rules file (1.3).
# Modified for emacs by Mark Eichin <eichin@kitten.gen.ma.us>.
joblimit := 1
endif
+# Separate alternatives into variant (flavor) specific and common.
+# For now, we only handle /usr/bin.
+var_alternatives := emacsclient
+common_alternatives := ctags ebrowse etags
+
# Info files that are going to show up in the main dir.
main_dir_info_files := efaq.info
-e "s|\@MENU_VERSION\@|$(menu_ver)|go;" \
-e "s|\@X_SUPPORT\@|$(xsupport)|go;" \
-e "s|\@BIN_PRIORITY\@|$(bin_priority)|go;" \
+ -e "s|\@DEB_VAR_ALTERNATIVES\@|$(var_alternatives)|go;" \
+ -e "s|\@DEB_COMMON_ALTERNATIVES\@|$(common_alternatives)|go;" \
< $(1) > $(2)
endef
# args: (1) srcdir (2) pkgdir (3) pkgname (4) bin-suffix
install -d $(2)/usr/bin/
- test -f $(1)/usr/bin/emacs-*
- cp -a $(1)/usr/bin/emacs-* $(2)/usr/bin/emacs-$(4)
+ cp -a $(1)/usr/bin/emacs-$(upstream_ver) $(2)/usr/bin/emacs-$(4)
+ set -x; for f in $(var_alternatives); do \
+ cp -a "$(1)/usr/bin/$$f" "$(2)/usr/bin/$$f.emacs"; \
+ done
test -f $(1)/$(libexec_dir_emacs)/emacs-*.pdmp
install -d $(2)/$(libexec_dir_emacs)
##################################################
# emacs-bin-common
ifneq (,$(findstring emacs-bin-common, $(shell dh_listpackages)))
- # Move common binaries to emacs-bin-common.
- # We take them from pgtk because that build's emacsclient
- # can handle connections to all flavours, while the other
- # builds' emacsclients cannot connect to pgtk under Wayland.
- install -d $(pkgdir_bin_common)/usr
- cp -a $(install_dir_pgtk)/usr/bin $(pkgdir_bin_common)/usr
- cp -a $(install_dir_pgtk)/usr/libexec $(pkgdir_bin_common)/usr
+ # Move common binaries to emacs-bin-common. For now, just
+ # take them from pgtk.
+
+ ## usr/bin
+ install -d $(pkgdir_bin_common)/usr/bin
+ cp -a $(install_dir_pgtk)/usr/bin $(pkgdir_bin_common)/usr/bin/debtmp
+
+ set -x; \
+ cd $(pkgdir_bin_common)/usr/bin; \
+ for f in $(common_alternatives); do mv "debtmp/$$f" "$$f.emacs"; done
+
+ set -x; \
+ cd $(pkgdir_bin_common)/usr/bin/debtmp; \
+ for f in $(var_alternatives); do rm "$$f"; done
+
+ # Now there should ony be emacs and emacs-VER
+ cd $(pkgdir_bin_common)/usr/bin/debtmp \
+ && rm emacs emacs-$(upstream_ver)
+
+ # Failure here should indicate something new upstream that
+ # needs to be in var_alternatives or common_alternatives.
- # Make sure there's just one.
- test -f $(pkgdir_bin_common)/usr/bin/emacs-*
- rm $(pkgdir_bin_common)/usr/bin/{emacs,emacs-*}
- # The pdmp files are flavor-specific
+
+ ls -A $(pkgdir_bin_common)/usr/bin/debtmp
+
+
+
+ rmdir $(pkgdir_bin_common)/usr/bin/debtmp
+
+ ## libexec
+ cp -a $(install_dir_pgtk)/usr/libexec $(pkgdir_bin_common)/usr
+ # pdmp files are flavor-specific
+ test -f $(pkgdir_bin_common)/$(libexec_dir_emacs)/emacs-*.pdmp
rm $(pkgdir_bin_common)/$(libexec_dir_emacs)/emacs-*.pdmp
- # Set up alternatives.
- alternatives=$$(ls $(pkgdir_bin_common)/usr/bin) \
- && set -x \
- && paths=($$(echo debian/emacs-bin-common.*)) \
- && for f in "$${paths[@]%.in}"; \
- do \
- perl -pwi -e "s|\@ALTERNATIVES\@|$${alternatives}|go" "$$f" ; \
- done
-
- for f in `ls $(pkgdir_bin_common)/usr/bin`; \
- do \
- mv $(pkgdir_bin_common)/usr/bin/$$f \
- $(pkgdir_bin_common)/usr/bin/$$f.emacs ; \
- done
endif
##################################################
# emacs-gtk
ifneq (,$(findstring emacs-gtk, $(shell dh_listpackages)))
$(call emacs_inst,build-gtk,$(install_dir_gtk))
- $(call install_common_binpkg_bits,\
- $(install_dir_gtk),$(pkgdir_gtk),emacs-gtk,gtk)
+ $(call install_common_binpkg_bits,$(install_dir_gtk),$(pkgdir_gtk),emacs-gtk,gtk)
# install desktop entries
install -d $(pkgdir_gtk)/usr/share/applications
##################################################
# emacs-pgtk
ifneq (,$(findstring emacs, $(shell dh_listpackages)))
- $(call install_common_binpkg_bits,\
- $(install_dir_pgtk),$(pkgdir_pgtk),emacs-pgtk,pgtk)
+ $(call install_common_binpkg_bits,$(install_dir_pgtk),$(pkgdir_pgtk),emacs-pgtk,pgtk)
# install desktop entries
install -d $(pkgdir_pgtk)/usr/share/applications
# emacs-nox
ifneq (,$(findstring emacs-nox, $(shell dh_listpackages)))
$(call emacs_inst,build-nox,$(install_dir_nox))
- $(call install_common_binpkg_bits,\
- $(install_dir_nox),$(pkgdir_nox),emacs-nox,nox)
+ $(call install_common_binpkg_bits,$(install_dir_nox),$(pkgdir_nox),emacs-nox,nox)
# install desktop entry
install -d $(pkgdir_gtk)/usr/share/applications
install -m 0644 \
# emacs-lucid
ifneq (,$(findstring emacs-lucid, $(shell dh_listpackages)))
$(call emacs_inst,build-lucid,$(install_dir_lucid))
- $(call install_common_binpkg_bits,\
- $(install_dir_lucid),$(pkgdir_lucid),emacs-lucid,lucid)
+ $(call install_common_binpkg_bits,$(install_dir_lucid),$(pkgdir_lucid),emacs-lucid,lucid)
# install desktop entries
install -d $(pkgdir_lucid)/usr/share/applications