[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