You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
MAC OS X All of the prerequisites can be installed via brew.
Build Tools
pkg-config (>= 0.20)
GNU Make >= 3.81
LLVM >= 5.1 or GCC >= 4.5
Autoconf (>= 2.69)
Automake (>= 1.14)
libtool (>= 2.4)
Check (>= 0.9.4) - unit testing (e.g. check-devel)
Doxygen (>= 1.8) - documentation
clang-format (= 3.9.0)
Libraries
OpenSSL >= 1.0.1h (or its API equivalent)
Jansson >= 2.3
Getting Started
As with most autoconf/automake projects:
git clone https://github.com/cisco/cjose.git
cd cjose
./configure && make
Common Options
--with-openssl: Specify the location where OpenSSL/CiscoSSL is installed
--with-jansson: Specify the location where Jansson is installed
--disable-shared: Only build static library
Debug Mode
To compile in debug mode (minimal optimization, active asserts, etc), specify the appropriate CFLAGS as a command-line argument when executing configure:
./configure CFLAGS="-g -O0 -DDEBUG"
Tests
To execute the unit tests:
make test
If successful, the list of checks will be displayed on the console. Otherwise, the file "test/test-suite.log" will list the specific test(s) that failed.
API Docs
To generate Doxygen API documentation:
make doxygen
Which will place the generated documentation in "doc/html".
From Scratch
To rebuild all of the project -- including those files generated by autoconf and automake:
autoreconf --force --install
Troubleshooting
Configure can't find check.h header file.
This has been seen on Mac OSX 10.8 and 10.9 when check has been installed
via brew. A solution is to explicitly include the /usr/local/include directory
in the cflags:
./configure CFLAGS="-I/usr/local/include"
Make fails due to many OpenSSL functions being "deprecated" or missing.
This has been seen on Mac OSX 10.9 when openssl 1.0.1h or newer has been installed via brew. A solution is to explicitly include the openssl directory in the configure command:
./configure --with-openssl=/usr/local/opt/openssl
Make fails due to json_* functions missing.
This has been seen on Mac OSX 10.9 when Jansson has been installed via brew. A solution is to explicitly include the jansson directory in the configure command:
./configure --with-jansson=/usr/local/opt/jansson
Contributing
Before Submitting PR
Run make clang-format
Run make test
About
C library implementing the Javascript Object Signing and Encryption (JOSE)