Include boost in software distribution?
Hi, I'm packaging some software for distribution, and the software depends upon the 'program_options' library. I don't want to assume that the user has boost installed, or ever jam. So I was wondering about the potential for automagically building and using the 'program_options' library if it is not already present on the user's system. I would include the source files in libs/program_options/, and write a small Makefile for it. I would also include all the Boost headers. Is this sufficient, even though it wouldn't run the Boost configure script to determine system-specific settings? Can you see any problems in building this library without doing a full Boost install? Thanks! Joseph -- http://www.cs.nyu.edu/~turian/
Why not give them a binary? If this doesn't work, than try a script
that executes the bjam compiling only the program_options, which I
believe also need the biggest lib of boost, serialization.
Greets,
Christian
On 7/29/05, Joseph Turian
Hi,
I'm packaging some software for distribution, and the software depends upon the 'program_options' library.
I don't want to assume that the user has boost installed, or ever jam. So I was wondering about the potential for automagically building and using the 'program_options' library if it is not already present on the user's system.
I would include the source files in libs/program_options/, and write a small Makefile for it. I would also include all the Boost headers.
Is this sufficient, even though it wouldn't run the Boost configure script to determine system-specific settings? Can you see any problems in building this library without doing a full Boost install?
Thanks!
Joseph
-- http://www.cs.nyu.edu/~turian/ _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Point being, I don't want someone not to use my software because they're
(justifiably) daunted by the prospect of installing the entire Boost
distribution. Rather, I want to make the build process as simple and
flexible as possible.
Ideally, my software should be sufficiently idiot-proof that anyone could
untar the package, issue a single command ('./build.sh'), and get a clean
complete build without doing any else, even if they don't have Boost
installed.
On 7/29/05, Christian Henning
Why not give them a binary?
Because I don't know what platform they're on. I'm sure you can think of other reasons why distributing binaries is dispreferred. If this doesn't work, than try a script
that executes the bjam compiling only the program_options, which I believe also need the biggest lib of boost, serialization.
Although 'program_options' depends upon quite a few headers, I tried it out and---if I'm not mistaken---you can build and link it into code using just the source files in program_options/. No serialization code is necessary. Also, potential users of my software may not have bjam installed. I'm trying to eliminate as many hurdles for the end-users as possible. Thanks, Joseph -- http://www.cs.nyu.edu/~turian/
Christian Henning wrote:
Why not give them a binary? If this doesn't work, than try a script that executes the bjam compiling only the program_options, which I believe also need the biggest lib of boost, serialization.
No, program_options does neither requires, nor suggests the serialization lib. They are completely unrelated. - Volodya
I would include the source files in libs/program_options/, and write a small Makefile for it. I would also include all the Boost headers.
Is this sufficient, even though it wouldn't run the Boost configure script to determine system-specific settings? Can you see any problems in building this library without doing a full Boost install?
That should work fine, we even have a tool (http://www.boost.org/tools/bcp/bcp.html) specifically for extracting subsets of Boost like this. John.
Joseph Turian wrote:
Hi,
I'm packaging some software for distribution, and the software depends upon the 'program_options' library.
I don't want to assume that the user has boost installed, or ever jam. So I was wondering about the potential for automagically building and using the 'program_options' library if it is not already present on the user's system.
I would include the source files in libs/program_options/, and write a small Makefile for it. I would also include all the Boost headers.
Is this sufficient, even though it wouldn't run the Boost configure script to determine system-specific settings? Can you see any problems in building this library without doing a full Boost install?
Generally, it's Ok to build any given boost library, including program_options, by hand. The Boost.Build system is a convenience, not an absolute must. The Boost configure script is mostly for "rare" platforms. On up-to-day Linux, Boost.Config will work fine, and so building the library manually should be rather easy. - Volodya
participants (4)
-
Christian Henning
-
John Maddock
-
Joseph Turian
-
Vladimir Prus