-
Notifications
You must be signed in to change notification settings - Fork 1
License
florian-gauvin/Buildroot-Celix
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Here is a full pre-configured Buildroot environment that will create a tar file with Celix and all that Celix need in it. You just need to run the command "make" in the buildroot directory to launch the build. If you want to create a Docker Image with this (You need to have docker): When the build is finished : Import the built image of celix in docker : Go to the following directory : buildroot/output/images Enter the following command : docker import - name < rootfs.tar You will have a docker image that is smaller than 20 MB. Here are the steps that I have followed to have this pre-configured buildroot with a Celix package : 1.If docker is already installed on your pc go to the next steps, other go to this website : https://docs.docker.com/userguide/, click on the install tab, choose your distribution and follow the steps. 2.Download buildroot on this page : http://buildroot.uclibc.org/download.html 3.Extract Buildroot where you want, named it buildroot 4.Create a new package "celix" for buildroot : a.create a directory named celix in : /buildroot/package b.create a makefile named celix.mk with gedit filled with the following lines : ############################################################# # # CELIX # ############################################################# CELIX_VERSION = Latest CELIX_SOURCE = develop.tar.gz CELIX_SITE = https://github.com/apache/celix/archive/ CELIX_INSTALL_STAGING = YES CELIX_INSTALL_TARGET = YES CELIX_CONF_OPTS = -DWITH_APR=OFF -DCMAKE_EXE_LINKER_FLAGS="-ldl -lpthread" -DBUILD_DEPLOYMENT_ADMIN=ON -DBUILD_SHELL=ON -DBUILD_SHELL_TUI=ON -DBUILD_REMOTE_SHELL=ON CELIX_DEPENDENCIES = libcurl zlib e2fsprogs $(eval $(cmake-package)) This makefile is based on an exemple find in the buildroot user manual (Part III, section 17.6 : Infrastructure for CMake-based packages). CELIX_VERSION define the version of celix CELIX_SOURCE define the name of the tarball CELIX_SITE define the site on which the tarball can be download CELIX_INSTALL_STAGING = YES : we tell Buildroot to install the package to the staging directory CELIX_INSTALL_TARGET = YES : we tell buildroot to install celix on the target CELIX_CONF_OPTS = -DWRITH_APR=OFF -DCMAKE_EXE_LINKER_FLAGS="-ldl -lpthread" -DBUILD_DEPLOYMENT_ADMIN=ON -DBUILD_SHELL=ON -DBUILD_SHELL_TUI=ON -DBUILD_REMOTE_SHELL=ON : In order : We tell buildroot that there no need of the APR library for celix, that the CMAKE file has to make a link for the ldl and lpthread libraries, and that we want the bundles DEPLOYMENT_ADMIN, SHELL, SHELL_TUI and REMOTE_SHELL for celix. CELIX_DEPENDENCIES = libcurl zlib e2fsprogs : define the dependencies that celix needs $(eval $(cmake-package)) : tells buildroot that celix can be build with cmake You can change the version, the source and the site if you want. Moreover, you can change the "-DWRITH_APR" variable to YES but you must add "apr" in the dependencies if you do so. c.save this makefile in buildroot/package/celix d.create the config file named Config.in with gedit filled with the following lines : config BR2_PACKAGE_CELIX bool "celix" help Celix server e.Save this file in buildroot/package/celix 5.Add this package in the menuconfig of buildroot In the buildroot directory enter the following command : echo 'source "package/celix/Config.in"' >> Config.in 6.If you want to use dockerfile to build Celix automatically, In buildroot/package/fakeroot/fakeroot.mk, add the following line : HOST_FAKEROOT_CONF_OPTS = --with-ipc=tcp 7.Run menuconfig In the buildroot directory enter the following command :make menuconfig 8.Select the different options : (This are the options that I have chosen for the INAETICS project but you can choose others target architecture, c library or target packages but you have to enable celix in the main menu) Target Options : Target Architecture : x86_64 Target Architecture Variant : atom Toolchain : C library : glibc Enable c++ support : Y Target Packages : Libraries : JSON/XML: jansson : Y libxml2 : Y Networking: libcurl:Y curl binary : y celix : Y 9.exit the menuconfig and save the configuration
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published