[Bro-Dev] #398: "make dist" requires cmake and swig

Bro Tracker bro at tracker.icir.org
Mon Feb 14 11:43:36 PST 2011

#398: "make dist" requires cmake and swig
  Reporter:  leres            |      Owner:  jsiwek
      Type:  Feature Request  |     Status:  assigned
  Priority:  Normal           |  Milestone:
 Component:  Bro              |    Version:
Resolution:                   |   Keywords:

Comment (by jsiwek):

 > One is that to do "make dist" in a working tree, you must have cmake and
 swig installed.

 I think the problem is more general than that: to do `make dist` you need
 to satisfy all of Bro's dependencies.

 This is because "make dist" relies on CMake doing a `./configure ...`, but
 the actual logic behind that will look for build-time dependencies and
 fail if they aren't present.

 Yeah, that's not ideal, but it's also not a big issue for us since we'll
 always be creating source distributions from systems that satisfy the
 build dependencies.

 > I assume there are parallels between cmake the auto* tools. That is when
 you want to change the cmake configuration you have to run a command or
 script. But I think there's a lot of value in using the same configure
 scripts for development as end users; rare problems are found prior to
 release and rough edges get cleaned up.

 The `./configure` script is now a wrapper to CMake.  To change a build
 configuration `./configure` can just be run again (with desired options).
 This should be equivalent to how Autotools does things and there's also no
 difference between how developers and end-users will build from source
 (i.e. CMake is always a requirement to build Bro from source).

 > So, ideally I'd like to see scripts named "configure" be the same as
 what gets packaged into distributions and the current script be called
 something else.

 This should already be true -- "configure" is a static script that will be
 packaged into distributions.  I'm not sure what your request is or what
 you mean by "the current script".

 > In any case, it seems like a bug to me that while "make dist" complains
 if cmake is not on the path, it doesn't also check for swig; clearly it's
 needed since the process bombs if it's not installed.

 So the reason the `make dist` bombs is not for lack of checking for swig,
 but actually because it *is* checking for it when it isn't strictly
 necessary for source packaging.  The difference between that and the check
 for `cmake` is that we have to do that in the Makefile, which has the side
 effect of giving you an earlier error message.

 If you're able to come up with a `make dist` target that doesn't depend on
 CMake/CPack like it currently does, I'd be willing to incorporate that

Ticket URL: <http://tracker.icir.org/bro/ticket/398#comment:2>
Bro Tracker <http://tracker.icir.org/bro>
Bro Issue Tracker

More information about the bro-dev mailing list