The kodev tool
Kore provides a development tool called kodev to help you build and create applications.
kodev create
kodev build
kodev run
kodev flavor
kodev info
Creating an application
Creating a new application is done via the kodev create tool. This tool will create a new directory and populate it with all required files to get hacking.
The tool will automatically generate a self-signed X.509 certificate for development purposes.
$ kodev create hello
created hello/src/hello.c
created hello/conf/hello.conf
created hello/conf/build.conf
created hello/.gitignore
created dh2048.pem
hello created successfully!
WARNING: DO NOT USE THE GENERATED DH PARAMETERS AND CERTIFICATES IN PRODUCTION
$
Building an application
You can build a Kore application using the kodev build tool.
This tool will read your conf/build.conf file and build your application according to it.
$ kodev build
building hello (dev)
CFLAGS=-Wall -Wmissing-declarations -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wsign-compare -fPIC -I./src -I./src/includes -I/usr/local/include -I/opt/local/include -I/usr/local/opt/openssl/include -g
LDFLAGS=-dynamiclib -undefined suppress -flat_namespace
compiling hello.c
hello built successfully!
$
Running an application
You can run a Kore application in the foreground using the kodev run tool.
This tool will simply build the application (if any building needs to happen) and run it in the foreground. You can CTRL-C it to bring it back down.
$ kodev run
building hello (dev)
CFLAGS=-Wall -Wmissing-declarations -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wsign-compare -fPIC -I./src -I./src/includes -I/usr/local/include -I/opt/local/include -I/usr/local/opt/openssl/include -g
LDFLAGS=-dynamiclib -undefined suppress -flat_namespace
nothing to be done!
[parent]: running on https://127.0.0.1:8888
[parent]: kore is starting up
[keymgr]: key manager started
[wrk 1]: worker 1 started (cpu#1)
^C[keymgr]: cleaning up keys
[keymgr]: parent gone, shutting down
[wrk 1]: parent gone, shutting down
[parent]: server shutting down
[parent]: waiting for workers to drain and shutdown
[parent]: worker 0 (21752)-> status 0
[parent]: worker 1 (21753)-> status 0
$
See the Running section on how to start your Kore application in the background for production purposes.
Environment Variables
The kodev tool will pickup the following environment variables if set:
CFLAGS
Any additional compiler flags.
LDFLAGS
Any additional linker flags.
KORE_PREFIX
The prefix where kore was installed.
KORE_SOURCE
Path where to find kore source, overrides kore_source from build.conf.
KORE_FLAVOR
Flavor to use, overrides kore_flavor from build.conf.
KORE_OBJDIR
The directory where the .o files will be placed.
KODEV_OUTPUT
The directory where the resulting binary is placed.