diff --git a/samples/application_development/external_lib/Makefile b/samples/application_development/external_lib/Makefile new file mode 100644 index 00000000000..97997bf7c9a --- /dev/null +++ b/samples/application_development/external_lib/Makefile @@ -0,0 +1,18 @@ +# +# Copyright (c) 2017 Intel Corporation +# +# SPDX-License-Identifier: Apache-2.0 +# + +BOARD = qemu_x86 +CONF_FILE = prj.conf + +KBUILD_ZEPHYR_APP = libmylib.a +SOURCE_DIR = $(CURDIR) +subdir-ccflags-y += -I$(SOURCE_DIR)/mylib/include +obj-y += src/ + +export obj-y subdir-ccflags-y +export KBUILD_ZEPHYR_APP + +include ${ZEPHYR_BASE}/Makefile.inc diff --git a/samples/application_development/external_lib/Makefile.app b/samples/application_development/external_lib/Makefile.app new file mode 100644 index 00000000000..7d77dad390b --- /dev/null +++ b/samples/application_development/external_lib/Makefile.app @@ -0,0 +1,7 @@ + +libmylib.a: + @echo $(CFLAGS) + @rm -f $(O)/libmylib.a + $(Q)@+$(MAKE) -C $(SOURCE_DIR)/mylib CFLAGS="$(KBUILD_CFLAGS) $(ZEPHYRINCLUDE)" + @cp $(SOURCE_DIR)/mylib/lib/libmylib.a $(O)/libmylib.a + diff --git a/samples/application_development/external_lib/mylib/Makefile b/samples/application_development/external_lib/mylib/Makefile new file mode 100644 index 00000000000..1ce3f00e423 --- /dev/null +++ b/samples/application_development/external_lib/mylib/Makefile @@ -0,0 +1,14 @@ +# +# Copyright (c) 2017 Intel Corporation +# +# SPDX-License-Identifier: Apache-2.0 +# + +all: + mkdir -p obj lib + $(CC) -c $(CFLAGS) -Iinclude src/mylib.c -o obj/mylib.o + $(AR) -rcs lib/libmylib.a obj/mylib.o + +clean: + rm -rf obj lib + diff --git a/samples/application_development/external_lib/mylib/include/mylib.h b/samples/application_development/external_lib/mylib/include/mylib.h new file mode 100644 index 00000000000..6342113e924 --- /dev/null +++ b/samples/application_development/external_lib/mylib/include/mylib.h @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2017 Intel Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef _MYLIB_H_ +#define _MYLIB_H_ + +int mylib_hello_world(void); + +#endif diff --git a/samples/application_development/external_lib/mylib/src/mylib.c b/samples/application_development/external_lib/mylib/src/mylib.c new file mode 100644 index 00000000000..3f18508c35a --- /dev/null +++ b/samples/application_development/external_lib/mylib/src/mylib.c @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2017 Intel Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "mylib.h" +#include + +int mylib_hello_world(void) +{ + printf("mylib says: Hello World!\n"); + return 0; +} diff --git a/samples/application_development/external_lib/prj.conf b/samples/application_development/external_lib/prj.conf new file mode 100644 index 00000000000..8b042db5406 --- /dev/null +++ b/samples/application_development/external_lib/prj.conf @@ -0,0 +1 @@ +CONFIG_STDOUT_CONSOLE=y diff --git a/samples/application_development/external_lib/src/Makefile b/samples/application_development/external_lib/src/Makefile new file mode 100644 index 00000000000..3de802d0bab --- /dev/null +++ b/samples/application_development/external_lib/src/Makefile @@ -0,0 +1,7 @@ +# +# Copyright (c) 2017 Intel Corporation +# +# SPDX-License-Identifier: Apache-2.0 +# +# +obj-y += main.o diff --git a/samples/application_development/external_lib/src/main.c b/samples/application_development/external_lib/src/main.c new file mode 100644 index 00000000000..b54a5b3c37f --- /dev/null +++ b/samples/application_development/external_lib/src/main.c @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2017 Intel Corporation + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/* hello world example: calling functions from a static library */ + + +#include +#include + +#include + +void main(void) +{ + printf("Hello World!\n"); + mylib_hello_world(); +} + diff --git a/samples/application_development/external_lib/testcase.ini b/samples/application_development/external_lib/testcase.ini new file mode 100644 index 00000000000..c3d0fa6f664 --- /dev/null +++ b/samples/application_development/external_lib/testcase.ini @@ -0,0 +1,4 @@ +[test] +tags = appdev +build_only = true +platform_whitelist = qemu_x86