system/embedlog: update to v0.6.0

Changes from v0.4.0
- add thread safety code
- add option to print function info (name) in logs
- abi/api stabilization
- bug fixes + increased reliability

Signed-off-by: Michał Łyszczek <michal.lyszczek@bofc.pl>

---
v1 -> v2 [suggested by Brennan Ashton]
 - fix path to embedlog_main.c in header comment
 - change license from bsd3 to apache2.0
This commit is contained in:
Michał Łyszczek 2021-05-14 01:20:52 +02:00 committed by Alan Carvalho de Assis
parent e352bdca4f
commit ccc8ddaf5d
6 changed files with 211 additions and 162 deletions

View File

@ -2,35 +2,20 @@
# apps/examples/embedlog/Make.defs
# Adds selected applications to apps/ build
#
# Copyright (C) 2019 Michał Łyszczek. All rights reserved.
# Author: Michał Łyszczek <michal.lyszczek@bofc.pl>
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# http://www.apache.org/licenses/LICENSE-2.0
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################

View File

@ -1,35 +1,20 @@
############################################################################
# apps/examples/embedlog/Makefile
#
# Copyright (C) 2019 Michał Łyszczek. All rights reserved.
# Author: Michał Łyszczek <michal.lyszczek@bofc.pl>
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# http://www.apache.org/licenses/LICENSE-2.0
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################

View File

@ -1,35 +1,20 @@
/****************************************************************************
* examples/embedlog/embedlog_main.c
* apps/examples/embedlog/embedlog_main.c
*
* Copyright (C) 2019 Michał Łyszczek. All rights reserved.
* Author: Michał Łyszczek <michal.lyszczek@bofc.pl>
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership. The
* ASF licenses this file to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* http://www.apache.org/licenses/LICENSE-2.0
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
****************************************************************************/
@ -69,7 +54,7 @@
* object. see el_options(3) to see learn more about it.
*/
static struct el_options g_el;
static struct el g_el;
/****************************************************************************
* Private Functions

View File

@ -8,7 +8,7 @@ menuconfig SYSTEM_EMBEDLOG
default n
---help---
Highly configurable logger for embedded devices. Documentation and
more info available on: https://embedlog.kurwinet.pl (don't worry,
more info available on: https://embedlog.bofc.pl (don't worry,
it's in english). Note: none of the options define how embedlog
will behave, it will simply configure whether given feature can be
enabled in runtime or no. So enabling CONFIG_EMBEDLOG_ENABLE_TIMESTAMP
@ -23,6 +23,28 @@ menuconfig SYSTEM_EMBEDLOG
if SYSTEM_EMBEDLOG
config EMBEDLOG_ENABLE_PTHREAD
bool "Enable thread safety"
depends on !DISABLE_PTHREAD
default n
---help---
When enabled, you will be able to configure embedlog to use
EL_THREAD_SAFE option, which will provide full thread safety in all
circumstances. When printing to stdout or syslog, embedlog is
half thread-safe. Buffer is allocated for each print call, so
different calls will not interfere with each other, but once
buffer is handed over to the kernel, logs might get mangled.
To make sure this does not happen, enable this and enable
EL_THREAD_SAFE option in runtime.
When multiple threads print to single file, this must be
enabled, as there are global states in each 'el' object. If two
'el' objects print into two separate files, you do not need
thread safety.
comment "DISABLE_PTHREAD must be disabled to use thread safety"
depends on DISABLE_PTHREAD
config EMBEDLOG_ENABLE_OUT_FILE
bool "Enable logging to file"
default n
@ -107,7 +129,7 @@ config EMBEDLOG_PREFIX_MAX
Maximum length of prefix that can be printed. If prefix exceeds this
value it will be truncated.
endif #EMBEDLOG_ENABLE_PREFIX
endif # EMBEDLOG_ENABLE_PREFIX
config EMBEDLOG_ENABLE_FINFO
bool "Enable file info"
@ -119,7 +141,7 @@ config EMBEDLOG_ENABLE_FINFO
if EMBEDLOG_ENABLE_FINFO
config EMBEDLOG_FLEN_MAX
int "max file name in finfo"
int "Max file name in finfo"
default 16
---help---
finfo look like this
@ -129,8 +151,32 @@ config EMBEDLOG_FLEN_MAX
this parameter defines how long "filename.c" can be, if file name
exceeds this value it will be truncated.
config EMBEDLOG_ENABLE_FUNCINFO
bool "Enable function info in log"
default y
---help---
When enabled, embedlog can be configured to add information
about function name from which log originated. This uses __func__
macro, so you need compiler that supports that. This macro was
introduced in c99 standard.
if EMBEDLOG_ENABLE_FUNCINFO
config EMBEDLOG_FUNCLEN_MAX
int "Max length of function to print"
default 16
---help---
Max length of function name to print. If function is longer than
this value, it will be truncated. This directly impacts size of
buffer for each 'el' object allocated.
endif # EMBEDLOG_ENABLE_FUNCINFO
endif # EMBEDLOG_ENABLE_FINFO
comment "Function info requires EMBEDLOG_ENABLE_FINFO"
depends on !EMBEDLOG_ENABLE_FINFO
config EMBEDLOG_ENABLE_COLORS
bool "Enable output colors"
default n
@ -155,7 +201,25 @@ config EMBEDLOG_MEM_LINE_SIZE
default 16
---help---
How many bytes of memory to print in a single line of el_pmemory call.
Check https://embedlog.kurwinet.pl/manuals/el_pmemory.3.html
Check https://embedlog.bofc.pl/manuals/el_pmemory.3.html
for more information about this.
config EMBEDLOG_DEMO_PROGRAMS
bool "Compile demo programs"
default n
---help---
Compile demo programs that visualise how embedlog works. Also good
for checking if embedlog behaves corectly.
if EMBEDLOG_DEMO_PROGRAMS
config EMBEDLOG_DEMO_PROGRAMS_PRIORITY
int "embedlog demo programs task priority"
default 100
config EMBEDLOG_DEMO_PROGRAMS_STACKSIZE
int "embedlog demo programs stack size"
default DEFAULT_TASK_STACKSIZE
endif # EMBEDLOG_DEMO_PROGRAMS
endif # SYSTEM_EMBEDLOG

View File

@ -1,35 +1,20 @@
############################################################################
# apps/system/embedlog/Make.defs
#
# Copyright (C) 2018 Michał Łyszczek. All rights reserved.
# Author: Michał Łyszczek <michal.lyszczek@bofc.pl>
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# http://www.apache.org/licenses/LICENSE-2.0
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################

View File

@ -1,35 +1,20 @@
############################################################################
# apps/system/embedlog/Makefile
#
# Copyright (C) Michał Łyszczek. All rights reserved.
# Author: Michał Łyszczek <michal.lyszczek@bofc.pl>
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership. The
# ASF licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the
# License. You may obtain a copy of the License at
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# http://www.apache.org/licenses/LICENSE-2.0
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name NuttX nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
############################################################################
@ -40,21 +25,23 @@ UNPACK = tar -xzf
PACKEXT = .tar.gz
NXTOOLSDIR = $(APPDIR)/tools
EMBEDLOG_URL = https://distfiles.kurwinet.pl/embedlog
EMBEDLOG_VERSION = 0.4.0
EMBEDLOG_SRC_SHA256 = 832c50e0f99d730bed25caed1c4745eca02882a9204c6ad41f715a269293c5a8
EMBEDLOG_URL = https://distfiles.bofc.pl/embedlog
EMBEDLOG_VERSION = 0.6.0
EMBEDLOG_SRC_SHA256 = f5f15dd124d113c7c8cc286f17fc633e1ade90acb6633dc98277968ab2a149d5
EMBEDLOG_EXT = tar.gz
EMBEDLOG_SOURCES = embedlog-$(EMBEDLOG_VERSION)
EMBEDLOG_TARBALL = $(EMBEDLOG_SOURCES).$(EMBEDLOG_EXT)
CFLAGS += ${shell $(INCDIR) "$(CC)" $(APPDIR)$(DELIM)include$(DELIM)system}
CSRCS = embedlog/src/el-options.c \
embedlog/src/el-perror.c \
embedlog/src/el-pmemory.c \
embedlog/src/el-print.c \
embedlog/src/el-puts.c \
embedlog/src/el-ts.c
CSRCS = $(EMBEDLOG_SOURCES)/src/el-options.c \
$(EMBEDLOG_SOURCES)/src/el-perror.c \
$(EMBEDLOG_SOURCES)/src/el-pmemory.c \
$(EMBEDLOG_SOURCES)/src/el-print.c \
$(EMBEDLOG_SOURCES)/src/el-puts.c \
$(EMBEDLOG_SOURCES)/src/el-ts.c \
$(EMBEDLOG_SOURCES)/src/el-flush.c \
$(EMBEDLOG_SOURCES)/src/el-utils.c \
# compile-time configuration of embedlog
@ -89,9 +76,16 @@ else
CFLAGS += -DEL_PREFIX_MAX=0
endif
ifeq ($(CONFIG_EMBEDLOG_ENABLE_FUNCINFO),y)
CFLAGS += -DENABLE_FUNCINFO
CFLAGS += -DEL_FUNCLEN_MAX=$(CONFIG_EMBEDLOG_FUNCLEN_MAX)
else
CFLAGS += -DENABLE_FUNCINFO=0
CFLAGS += -DEL_FUNCLEN_MAX=0
endif
ifeq ($(CONFIG_EMBEDLOG_ENABLE_FINFO),y)
CFLAGS += -DENABLE_FINFO
CFLAGS += -DNOFINFO=0
CFLAGS += -DEL_FLEN_MAX=$(CONFIG_EMBEDLOG_FLEN_MAX)
else
CFLAGS += -DENABLE_FINFO=0
@ -113,26 +107,34 @@ endif
ifeq ($(CONFIG_EMBEDLOG_ENABLE_OUT_FILE),y)
CFLAGS += -DENABLE_OUT_FILE
CSRCS += embedlog/src/el-file.c
CSRCS += $(EMBEDLOG_SOURCES)/src/el-file.c
else
CFLAGS += -DENABLE_OUT_FILE=0
endif
ifeq ($(CONFIG_EMBEDLOG_ENABLE_BINARY_LOGS),y)
CFLAGS += -DENABLE_BINARY_LOGS
CSRCS += embedlog/src/el-pbinary.c
CSRCS += embedlog/src/el-encode-number.c
CSRCS += $(EMBEDLOG_SOURCES)/src/el-pbinary.c
CSRCS += $(EMBEDLOG_SOURCES)/src/el-encode-number.c
CSRCS += $(EMBEDLOG_SOURCES)/src/el-decode-number.c
else
CFLAGS += -DENABLE_BINARY_LOGS=0
endif
ifeq ($(CONFIG_EMBEDLOG_ENABLE_OUT_TTY),y)
CFLAGS += -DENABLE_OUT_TTY
CSRCS += embedlog/src/el-tty.c
CSRCS += $(EMBEDLOG_SOURCES)/src/el-tty.c
else
CFLAGS += -DENABLE_OUT_TTY=0
endif
ifeq ($(CONFIG_EMBEDLOG_ENABLE_PTHREAD),y)
CFLAGS += -DENABLE_PTHREAD
CSRCS += $(EMBEDLOG_SOURCES)/src/el-lock.c
else
CFLAGS += -DENABLE_PTHREAD=0
endif
ifeq ($(CONFIG_SERIAL_TERMIOS),y)
CFLAGS += -DHAVE_TERMIOS_H
else
@ -158,6 +160,9 @@ CFLAGS += -DHAVE_UNISTD_H
CFLAGS += -DHAVE_FSYNC
CFLAGS += -DHAVE_FILENO
CFLAGS += -DENABLE_COLORS_EXTENDED=0
# symlinks are only supported on pseudofs, where nobody is going to
# store logfiles, thus symlinks are useless on nuttx
CFLAGS += -DHAVE_SYMLINK=0
# nuttx has its own snprintf implementation, disable internal snprintf
# implementation
@ -171,6 +176,41 @@ CFLAGS += -DENABLE_OUT_NET=0
# nuttx does not implement clock() function
CFLAGS += -DENABLE_CLOCK=0
ifeq ($(CONFIG_EMBEDLOG_DEMO_PROGRAMS),y)
# build demo programs as library instead of standalone programs
CFLAGS += -DEMBEDLOG_DEMO_LIBRARY
PROGNAME = el_demo_print_memory
PRIORITY = $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_PRIORITY)
STACKSIZE = $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_STACKSIZE)
MAINSRC = $(EMBEDLOG_SOURCES)/examples/print-memory.c
PROGNAME += el_demo_print_options
PRIORITY += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_PRIORITY)
STACKSIZE += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_STACKSIZE)
MAINSRC += $(EMBEDLOG_SOURCES)/examples/print-options.c
PROGNAME += el_demo_print_simple
PRIORITY += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_PRIORITY)
STACKSIZE += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_STACKSIZE)
MAINSRC += $(EMBEDLOG_SOURCES)/examples/print-simple.c
PROGNAME += el_demo_print_thread_safe
PRIORITY += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_PRIORITY)
STACKSIZE += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_STACKSIZE)
MAINSRC += $(EMBEDLOG_SOURCES)/examples/print-thread-safe.c
PROGNAME += el_demo_print_to_file
PRIORITY += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_PRIORITY)
STACKSIZE += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_STACKSIZE)
MAINSRC += $(EMBEDLOG_SOURCES)/examples/print-to-file.c
PROGNAME += el_demo_print_tty
PRIORITY += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_PRIORITY)
STACKSIZE += $(CONFIG_EMBEDLOG_DEMO_PROGRAMS_STACKSIZE)
MAINSRC += $(EMBEDLOG_SOURCES)/examples/print-tty.c
endif
# building of embedlog
$(EMBEDLOG_TARBALL):
@ -184,14 +224,20 @@ $(EMBEDLOG_SOURCES): $(EMBEDLOG_TARBALL)
$(Q) $(UNPACK) $<
$(Q) touch $@
embedlog: $(EMBEDLOG_SOURCES)
$(call DELDIR, $@)
$(Q) $(CP) $< $@
$(EMBEDLOG_SOURCES)/include/embedlog.h: $(EMBEDLOG_SOURCES)/include/embedlog.h.in
@echo "Generating: $@"
$(Q) sed -e "s/@ENABLE_OUT_FILE@/$(CONFIG_EMBEDLOG_ENABLE_OUT_FILE)/" \
-e "s/@ENABLE_OUT_TTY@/$(CONFIG_EMBEDLOG_ENABLE_OUT_TTY)/" \
-e "s/@ENABLE_PREFIX@/$(CONFIG_EMBEDLOG_ENABLE_PREFIX)/" \
-e "s/@ENABLE_OUT_CUSTOM@/$(CONFIG_EMBEDLOG_ENABLE_OUT_CUSTOM)/" \
-e "s/@ENABLE_PTHREAD@/$(CONFIG_EMBEDLOG_ENABLE_PTHREAD)/" $< > $@
$(Q) sed -i -e "s/^#if y$$/#if 1/" \
-e "s/^#if $$/#if 0/" -e "s/^#if n$$/#if 0/" $@
create_includes:
$(Q) $(CP) $(EMBEDLOG_SOURCES)/include/embedlog.h $(APPDIR)/include/system
create_includes: $(EMBEDLOG_SOURCES)/include/embedlog.h
$(Q) $(CP) $< $(APPDIR)/include/system
context:: embedlog
context:: $(EMBEDLOG_SOURCES)
$(Q) $(MAKE) create_includes
clean::
@ -199,7 +245,6 @@ clean::
$(Q) $(foreach COBJ, $(COBJS), $(call DELFILE, $(COBJ)))
distclean::
$(Q) $(call DELDIR, embedlog)
$(Q) $(call DELDIR, $(EMBEDLOG_SOURCES))
$(Q) $(call DELDIR, $(EMBEDLOG_TARBALL))