Makefile.am - кросс-компиляция, нужна встроенная компиляция для инструмента сборки - PullRequest
0 голосов
/ 03 августа 2020
  • кросс-компиляция xorg с использованием jhbuild
  • для некоторых приложений / библиотек требуются инструменты сборки, созданные для системы сборки
  • попытка создать патч для этих собственных инструментов сборки
  • предупреждение: noob, сначала погрузитесь во внутреннее устройство automake, но изучайте / пытайтесь больше недели.

пример (libxt-util-makefile_am-cross-compile.patch)

--- a/util/Makefile.am  2020-08-03 10:57:21.986718082 -0400
+++ b/util/Makefile.am  2020-08-03 11:02:07.131431724 -0400
@@ -1,8 +1,7 @@
 noinst_PROGRAMS = makestrs

-CC = @CC_FOR_BUILD@
-CFLAGS = @CFLAGS_FOR_BUILD@
-LDFLAGS = @LDFLAGS_FOR_BUILD@
+HOST := $(shell echo $$BUILD)
+TARGET := $(shell echo $$TARGET)

 EXTRA_DIST = \
        Shell.ht \
@@ -10,10 +9,8 @@
        StrDefs.ht \
        string.list

-makestrs_CFLAGS = $(XT_CFLAGS)
 makestrs_SOURCES = makestrs.c

-
 # Man page
 appmandir = $(APP_MAN_DIR)

@@ -28,4 +25,15 @@

 # String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
 .man.$(APP_MAN_SUFFIX):
+ifeq ($(HOST), $(TARGET))
+   CC = @CC_FOR_BUILD@
+   CFLAGS = @CFLAGS_FOR_BUILD@
+   LDFLAGS = @LDFLAGS_FOR_BUILD@
+   makestrs_CFLAGS = $(XT_CFLAGS)
+else
+   CC = @CC_FOR_BUILD@
+   CFLAGS = @CFLAGS_FOR_BUILD@
+   LDFLAGS = @LDFLAGS_FOR_BUILD@
+   makestrs_CFLAGS = "-I. -I.. -I/usr/include"
+endif
        $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@

В качестве «доказательства принципа» единственным изменением является «makestrs_CFLAGS», который следует установить по-другому, если $ (HOST), $ (TARGET) не совпадают.

Результат: не удается заставить это работать. Нужен совет специалиста.

Спасибо; Счет

...