[yocto] Another recipe problem.

jim Schimpf jim.schimpf at gmail.com
Tue Oct 27 01:30:01 PDT 2015


Hi,

	This recipe makes gets to do_install and fails. The failure is:

| cp eliot /usr/local/bin/
| cp: cannot create regular file '/usr/local/bin/eliot': Permission denied   <——PROBLEM
| make[1]: *** [install] Error 1
| make[1]: Leaving directory `/home/jim/yocto/poky/BB1/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/elliot/1.0-r0/git/src'
| make: *** [install] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_install (log file is located at /home/jim/yocto/poky/BB1/tmp/work/cortexa8hf-vfp-neon-poky-linux-gnueabi/elliot/1.0-r0/temp/log.do_install.5834)
ERROR: Task 2 (/home/jim/yocto/poky/meta-local/recipes-IOT/elliot/elliot.bb, do_install) failed with exit code '1'
NOTE: Tasks Summary: Attempted 404 tasks of which 403 didn't need to be rerun and 1 failed.
No currently running tasks (390 of 409)

The recipe is:

# -----------------------------------------------------
# Header Meta data
SUMMARY = "Internet control tool"
DESCRIPTION = "Allows easy control of IOT devices wiht a custom built language\
It allows easy extension for all sorts of controls"
AUTHOR = "Christophe de Dinechin"
HOMEPAGE = "https://c3d/github.io/eliot/"
LICENSE = "GPL-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=037a8d95ad2212b21ca9d82e49dc36be"
PR = "r0"

# -----------------------------------------------------
# Source data
SRCREV = "6f93d62c181adb2d09de2a2f7209e75d444a9af1"
SRC_URI = "git://github.com/c3d/eliot.git;user=jschimpf-pandora;protocol=https"
inherit autotools gettext 

S = "${WORKDIR}/git”

The make file (which builds the executable in git/src is below : There are a number of Makefile.<system>  config files like Makefile.config, Makefile..mingw or Makefile.macosx. Should I add another with specifics for Yocto ?  Also what would be the path to the Yocto /usr/bin ?

#******************************************************************************
# Makefile                                                       ELIOT project 
#******************************************************************************
#
#  File Description:
#
#    Makefile for the Extensible Language for the Internet of Things
#
#
#
#
#
#
#
#
#******************************************************************************
# This program is released under the GNU General Public License.
# See http://www.gnu.org/copyleft/gpl.html and Matthew 25:22 for details
#  (C) 2000-2015 Christophe de Dinechin <christophe at taodyne.com>
#  (C) 2010-2015 Taodyne SAS
#******************************************************************************

# Set to 'none' to disable LLVM
COMPILER=none
#COMPILER=llvm

PREFIX=/usr/local/
PREFIX_BIN=$(PREFIX)bin/				<— Problem line
PREFIX_LIB=$(PREFIX)lib/eliot/

# List of modules to build
MODULES=basics io math text remote time-functions temperature
MODULES_SOURCES=$(MODULES:%=%-module.cpp)
MODULES_HEADERS=$(MODULES:%=%-module.h)

# List of source files to process
SOURCES     =					\
	main.cpp				\
	tree.cpp				\
	action.cpp				\
	options.cpp				\
	scanner.cpp				\
	parser.cpp				\
	flight_recorder.cpp			\
	errors.cpp				\
	gc.cpp					\
	syntax.cpp				\
	renderer.cpp				\
	context.cpp				\
	runtime.cpp				\
	bytecode.cpp				\
	interpreter.cpp				\
	opcodes.cpp				\
	cdecls.cpp				\
	serializer.cpp				\
        traces_base.cpp                         \
	winglob.cpp				\
	$(MODULES_SOURCES)			\
	$(SOURCES_$(COMPILER))

SOURCES_llvm =					\
	compiler.cpp				\
	compiler-llvm.cpp			\
	compiler-gc.cpp				\
	types.cpp				\
	args.cpp				\
	expred.cpp				\
	parms.cpp				\
	unit.cpp				\

PRODUCT=eliot$(EXE)

include $(BROOT)Makefile.config

# Name of 'llvm-config' to use (e.g. llvm-config-2.9)
LLVM_CONFIG=llvm-config

LLVM_VERSION=$(LLVM_VERSION_$(COMPILER))
LLVM_FLAGS=$(LLVM_FLAGS_$(COMPILER))
LLVM_LIBS=$(LLVM_LIBS_$(COMPILER))
LLVM_LDFLAGS=$(LLVM_LDFLAGS_$(COMPILER))

# When LLVM is enabled, we get those
LLVM_VERSION_llvm=$(shell $(LLVM_CONFIG) --version | sed -e s/[.a-z-]//g)
LLVM_FLAGS_llvm=$(shell $(LLVM_CONFIG) --cppflags | sed -e s/-DNDEBUG//g) \
		  -DLLVM_VERSION=$(LLVM_VERSION)
LLVM_LIBS_llvm=$(shell $(LLVM_CONFIG) --libs)
LLVM_LDFLAGS_llvm=$(shell $(LLVM_CONFIG) --ldflags) $(LDFLAGS_llvm$(LLVM_VERSION))

# When LLVM is not enabled
LLVM_FLAGS_none=-DINTERPRETER_ONLY

CPPFLAGS+=$(LLVM_FLAGS) -I . -I include $(CPPFLAGS_llvm$(LLVM_VERSION))
LDFLAGS=$(LLVM_LIBS) $(LLVM_LDFLAGS)
CPPFLAGS_llvm31=-Wno-unused-local-typedefs
CPPFLAGS_llvm30=-Wno-unused-local-typedefs
CPPFLAGS_llvm350=-std=c++11
CPPFLAGS_llvm360=-std=c++11
LDFLAGS_llvm350=-lz -lncurses
LDFLAGS_llvm360=-lz -lncurses

CPPFLAGS+=	-DELIOT_BIN='"'$(PREFIX_BIN)'"'	\
		-DELIOT_LIB='"'$(PREFIX_LIB)'"'

install: all
	cp $(PRODUCT) $(PREFIX_BIN)
	mkdir -p $(PREFIX_LIB)
	cp builtins.eliot eliot.syntax C.syntax *.stylesheet $(PREFIX_LIB)

test:
	cd ../tests; ./alltests
hello: show_$(COMPILER)_version
show_llvm_version:
	@echo Building with LLVM version $(LLVM_VERSION)
show_none_version:
	@echo Building in interpreter-only mode


opt_tests opt-tests:
	cd ../tests;		\
	./alltests -r O0;	\
	./alltests -r O1;	\
	./alltests -r O2;	\
	./alltests -r O3


# Module-related rules
clean: modules-clean

modules-clean:
	rm -f $(MODULES_SOURCES) $(MODULES_HEADERS)

interp-%:
	$(MAKE) COMPILER=none $*
ionly-%:
	$(MAKE) COMPILER=none $*


%-module.cpp: %.tbl %-module.h Makefile
	@echo Generating $@ from $<
	./generate-module-body $* > $@

%-module.h: %.tbl Makefile
	@echo Generating $@ from $<
	./generate-module-header $* >  $@

Thanks for the help

—jim schimpf






More information about the yocto mailing list