[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
change.
--
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