In case it is helpful, here is the script I used to build all static bro (without any
shared libraries)
```
cd bro
mkdir buildcaf
cd buildcaf
cmake -DCAF_NO_UNIT_TESTS=1 -DCAF_NO_EXAMPLES=1 -DCAF_BUILD_STATIC_ONLY=1
../aux/broker/3rdparty/caf/
make
make install || true
cd ..
mkdir build
cd build
cmake -DDISABLE_PYTHON_BINDINGS=1 -DENABLE_STATIC_ONLY=1 -DCAF_ROOT_DIR=../buildcaf ..
make
make install
```
It needed also a small patch to bro, which comes afterwards
```
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 452f2834c..c8039f8da 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -268,7 +268,11 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cmake DESTINATION
share/bro
## Recurse on sub-directories
add_subdirectory(aux/broker)
-set(brodeps ${brodeps} broker)
+if (ENABLE_STATIC_ONLY)
+ set(brodeps ${brodeps} broker_static)
+else ()
+ set(brodeps ${brodeps} broker)
+endif ()
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR}/aux/broker
${CMAKE_CURRENT_BINARY_DIR}/aux/broker)
include_directories(BEFORE ${CAF_INCLUDE_DIR_CORE})
```
Le 6 déc. 2018 à 19:25, Johanna Amann
<johanna(a)icir.org> a écrit :
Hi Craig,
I pushed another commit to the branch that passes --build-static-only through
to CAF; if you just want the patch for that it is available at
https://github.com/zeek/broker/commit/bf03a4246113c72d10530cc0c2729a3fa6f0b….
(Note that repositories are currently being migrated; if you pull it from
somewhere make sure that you actually have that commit in the branch)
Johanna
On Thu, Dec 06, 2018 at 07:01:25AM -0800, Johanna Amann wrote:
Hi Craig,
I actually recently started working on this, however I am did not quite
look at what you want.
There already is a branch called topic/johanna/static, which now makes
--build-static(-only) work for broker whan CAF is built statically - it
does not yet pass the static flags through to broker; I actually wanted to
take a look at that today.
I will let you know when I make progress there :)
Johanna
On Wed, Dec 05, 2018 at 07:03:06PM -0800, Craig Leres wrote:
I've read up on cmake variable scope but I
can't figure out how to build
bro with static libraries. The bro-bundled caf already has
CAF_BUILD_STATIC_ONLY which I'm pretty sure works but I'm unable to turn
it on when building caf as part of a bro build.
For example I'd like is to optionally (i.e. from a -D argument to cmake
itself) be able to turn on CAF_BUILD_STATIC_ONLY for
aux/broker/3rdparty/caf/CMakeLists.txt but nothing I've tried in the top
level CMakeLists.txt is seen when the caf CMakeLists.txt is being evaluated.
(I'm working on updating the FreeBSD port to 2.6 and can't install
things like libcaf_io.so in /usr/local/lib because they conflict with
libraries potentially installed by the devel/caf port.)
Craig
_______________________________________________
bro-dev mailing list
bro-dev(a)bro.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev
_______________________________________________
bro-dev mailing list
bro-dev(a)bro.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev
_______________________________________________
bro-dev mailing list
bro-dev(a)bro.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev