У меня есть Makefile
, где:
TARGETDIR=../rel/$(PLATFORM)
ANALYZER=$(TARGETDIR)/analyzer
TARGETS=$(ANALYZER)
XMLFILE=pgns.xml
JSONFILE=pgns.json
all: $(TARGETS)
$(ANALYZER): analyzer.c pgn.c analyzer.h pgn.h ../common/common.c ../common/common.h Makefile
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $(ANALYZER) -I../common pgn.c analyzer.c ../common/common.c $(LDLIBS$(LDLIBS-$(@)))
json: $(ANALYZER) pgns2json.xslt
$(ANALYZER) -explain-xml >$(XMLFILE) && xsltproc pgns2json.xslt $(XMLFILE) >$(JSONFILE)
$(ANALYSER)
компилируется и сохраняется в TARGETDIR
.Теперь в json
вызывается двоичный файл analyzer
, который обеспечивает
| /bin/sh: ../rel/linux-x86_64/analyzer: cannot execute binary file: Exec format error
, поскольку при file analyzer
он показывает файл как ELF 32-bit
файл.Здесь я понимаю несовместимость.
Это было решено в моем предыдущем запросе SE .
, поскольку я не могу обойти эту проблему;Я думал об использовании вызова json
в сценарии postinstall
в своем рецепте.
Но я не могу обернуть его вокруг.Вот шаги, которые я составил:
- Я изменяю
Makefile
, который удаляет json
- Должен ли я добавить
DEPENDS = "libxslt libxml2
? - Должен ли ядобавьте
RDEPENDS_{PN} = "bash"
, чтобы выполнить команду для json
? - как должен выглядеть рецепт после установки?
Рецепт:
SUMMARY = "CANBOAT"
SECTION = "base"
LICENSE = "GPLv3"
#DEPENDS = "libxml2 libxsl"
LIC_FILES_CHKSUM = "file://GPL;md5=05507c6da2404b0e88fe5a152fd12540"
S = "${WORKDIR}/git"
SRC_URI = "git://github.com/canboat/canboat.git;branch=${SRCBRANCH}"
SRCBRANCH = "master"
SRCREV = "93b2ebfb334d7a9750b6947d3a4af9b091be2432"
EXTRA_OEMAKE = "'CC=${CC}' 'AR=${AR}'"
do_compile() {
oe_runmake
}
do_install() {
oe_runmake install
}
#post_install() { # here? what will be the structure}