Upstream-Status: Inappropriate [OE-Specific] When building emacs, it builds some tools for the HOST that are then used to build for target, such as make-fingerprint and make-docfile and bootstrap-emacs, this needs to be adapted to be used by bitbake, otherwise the compiled executables arent compatible with the HOST. We also need to be able to use emacs env variables to control how bootstrap-emacs is used when cross-compiling. Use the above mentioned tools provided by the native version of the recipe instead. Signed-off-by: Alejandro Enedino Hernandez Samaniego Index: emacs-29.1/src/Makefile.in =================================================================== --- emacs-29.1.orig/src/Makefile.in +++ emacs-29.1/src/Makefile.in @@ -1,3 +1,4 @@ + ### @configure_input@ # Copyright (C) 1985, 1987-1988, 1993-1995, 1999-2023 Free Software @@ -508,7 +509,7 @@ ifeq ($(CHECK_STRUCTS),true) pdumper.o: dmpstruct.h endif dmpstruct.h: $(srcdir)/dmpstruct.awk -dmpstruct.h: $(libsrc)/make-fingerprint$(EXEEXT) $(dmpstruct_headers) +dmpstruct.h: $(dmpstruct_headers) $(AM_V_GEN)POSIXLY_CORRECT=1 awk -f $(srcdir)/dmpstruct.awk \ $(dmpstruct_headers) > $@ @@ -610,8 +611,7 @@ SYSTEM_TYPE = @SYSTEM_TYPE@ ## Strictly speaking, emacs does not depend directly on all of $lisp, ## since not all pieces are used on all platforms. But DOC depends ## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here. -emacs$(EXEEXT): temacs$(EXEEXT) \ - lisp.mk $(etc)/DOC $(lisp) \ +emacs$(EXEEXT): lisp.mk $(etc)/DOC $(lisp) \ $(lispsource)/international/charprop.el ${charsets} ifeq ($(SYSTEM_TYPE),cygwin) find ${top_builddir} -name '*.eln' | rebase -v -O -T - @@ -654,7 +654,7 @@ endif $(etc)/DOC: $(libsrc)/make-docfile$(EXEEXT) $(doc_obj) $(AM_V_GEN)$(MKDIR_P) $(etc) $(AM_V_at)rm -f $(etc)/DOC - $(AM_V_at)$(libsrc)/make-docfile -d $(srcdir) \ + make-docfile -d $(srcdir) \ $(SOME_MACHINE_OBJECTS) $(doc_obj) > $(etc)/DOC $(libsrc)/make-docfile$(EXEEXT) $(libsrc)/make-fingerprint$(EXEEXT): \ @@ -671,7 +671,7 @@ buildobj.h: Makefile GLOBAL_SOURCES = $(base_obj:.o=.c) $(NS_OBJC_OBJ:.o=.m) gl-stamp: $(libsrc)/make-docfile$(EXEEXT) $(GLOBAL_SOURCES) - $(AM_V_GLOBALS)$(libsrc)/make-docfile -d $(srcdir) -g $(doc_obj) > globals.tmp + make-docfile -d $(srcdir) -g $(doc_obj) > globals.tmp $(AM_V_at)$(top_srcdir)/build-aux/move-if-change globals.tmp globals.h $(AM_V_at)echo timestamp > $@ @@ -685,7 +685,7 @@ $(LIBEGNU_ARCHIVE): $(config_h) $(MAKE) -C $(dir $@) all ifeq ($(HAVE_PDUMPER),yes) -MAKE_PDUMPER_FINGERPRINT = $(libsrc)/make-fingerprint$(EXEEXT) +MAKE_PDUMPER_FINGERPRINT = make-fingerprint else MAKE_PDUMPER_FINGERPRINT = endif Index: emacs-29.1/lisp/Makefile.in =================================================================== --- emacs-29.1.orig/lisp/Makefile.in +++ emacs-29.1/lisp/Makefile.in @@ -53,7 +53,7 @@ FIND_DELETE = @FIND_DELETE@ # We never change directory before running Emacs, so a relative file # name is fine, and makes life easier. If we need to change # directory, we can use emacs --chdir. -EMACS = ../src/emacs${EXEEXT} +EMACS = bootstrap-emacs # Command line flags for Emacs. @@ -109,7 +109,7 @@ MAIN_FIRST = ./emacs-lisp/eieio.el ./ema ./org/oc.el ./org/ol.el ./emacs-lisp/cl-lib.el # Prevent any settings in the user environment causing problems. -unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH +unexport EMACSDOC EMACSPATH # The actual Emacs command run in the targets below. emacs = '$(EMACS)' $(EMACSOPT) Index: emacs-29.1/Makefile.in =================================================================== --- emacs-29.1.orig/Makefile.in +++ emacs-29.1/Makefile.in @@ -328,7 +328,7 @@ GLIB_COMPILE_SCHEMAS = glib-compile-sche TRANSFORM = @program_transform_name@ # Prevent any settings in the user environment causing problems. -unexport EMACSDATA EMACSDOC EMACSLOADPATH EMACSPATH +unexport EMACSDOC EMACSPATH # What emacs should be called when installed. EMACS_NAME = `echo emacs | sed '$(TRANSFORM)'`