• [ NEWS ]
  • [ FORUMS ]
  • [ BLOGS ]
  • [ ARTICLES ]
  • [ HISTORY ]
  • [ TAGS ]
  • [ ARCHIVES ]
  • [ CORPORATE ]
  • [ SALES ]

www.internetfilter.com - The Internet Filter

  • [ home ]
  • [ downloads ]
  • [ faq ]
  • [ products ]
  • [ pricing ]
  • [ purchase ]
Home › Blogs › Jeff Koftinoff's blog

jdksboost released

Jeff Koftinoff — Tue, 07/14/2009 - 21:24

jdksboost

I am announcing J.D. Koftinoff Software, Ltd's modifications of the indispensable, freshly released boost 1.39.0 c++ library from http://www.boost.org/

It is available now from http://opensource.jdkoftinoff.com/project/wiki/jdksboost/Index. and allows for a greatly simplified build process, bug fixes, and compatibility from linux,mac os x,iphone,visual studio 2005 and 2008.

This version only changes minimal source code from the boost trunk. The objective of the changes to boost is purely to re-arrange the source files so that a simpler build system can be used.

Boost is very easy to use if you only need libraries that are header only - But for any non-trivial libraries like boost.thread or boost.asio, you must build library files.

Each boost sublibrary must be made into it's own archive because of file naming conflicts between cpp files in each library.

The current standard for building the library files for boost involves a build tool called bjam which is powerful but not easily integrated into the other build environments that I needed.

I decided that for some tools, like Microsoft Visual Studio and iphone and Mac OS X leopard, I really needed all of boost to be compiled by the same IDE project management tool so that I could make sure that all the various compile and linker options were applied correctly between the libraries and my main project. The boost libraries typically wanted to generated DLL's or .so files for dynamic linking even though these libraries are quite small and just fine to include as a static library. I also wanted to be able to easily have full access to the IDE based debugging tools of my main applications which may require compiler options that are not so straightforward to put into bjam

You can always get the latest version via svn via the command line:

svn co http://opensource.jdkoftinoff.com/jdksboost/svn/trunk jdksboost
cd jdksboost
ls scripts
./scripts/configure-linux-release.sh
make 

In the svn repository is a bash script, create_jdksboost.sh, which is what generated the original jdksboost release directly from an original untouched boost release.

The original, untouched version of boost is available as a branch:

svn co http://opensource.jdkoftinoff.com/jdksboost/svn/branches/boost_1_39_0

The project utilizes my MagicMake system ( see http://opensource.jdkoftinoff.com/project/wiki/magicmake/Index ) to compile the project on posix/unix/macosx/linux based systems with g++.

The purpose of this is not 'just another build system' but a convention based project layout which makes it easy to compile from the command line and easy to create a project file for any IDE. Basically, in the 'src' directory are .cpp files to be compiled and in the include directory are .hpp files for the include path. Because some boost libraries have special considerations like win32 specific or posix specific or python specific, these .cpp files are placed in subdirectories in the src directory.

For instance if you wanted to compile all the normal boost libraries and the posix platform specific libraries as well, you could get by with just a single command line like:

g++ -I include src/*.cpp src/posix/*.cpp

There are also project files for Visual Studio 2005, Visual Studio 2008, Mac OS X Leopard four-way universal, Apple iPhone, and a .pro file for TrollTech's QMake/QtCreator.

All build systems and project files build a static library. On posix systems, the library is called libjdksboost.a and on windows it is jdksboost.lib.

Other minor changes were added to boost:

  • All documentation, examples, and tests have been removed.
  • Patches from the boost trunk (1.39.0) up to and including the bugfixes in revision 54914 are integrated.
  • TinyJSON from http://blog.beef.de/2008/01/04/tinyjson/ was integrated
  • Win32 platforms default to _WIN32_WINNT aka WINVER set to 0x501 which means windows XP minimum target.
  • All boost libraries are statically linked.
  • long doubles are not properly supported on PPC targets, so all math functions suffixed by 'l' are disabled by default unless JDKSBOOST_HAS_LONG_DOUBLE is defined.
  • Apple iPhone targets are supported with an XCode 3.1.3 static library target.
  • Endian and long double changes to boost to allow compilation for iPhone hardware as well as the iPhone simulator target.

All of this code and my minor changes are released under the boost software license, for more information on the license see:

  • http://www.boost.org/users/license.html

For a list of all the changesets I applied to boost, see:

  • http://opensource.jdkoftinoff.com/project/repositories/revisions/jdksboost

For more information, contact Jeff Koftinoff <jeffk@jdkoftinoff.com>

  • programming
  • Jeff Koftinoff's blog
  • Login or register to post comments

Recent blog posts

  • jdksboost released
  • Lack of Transparency in Filter Lists Equals Failure
  • HTTP/1.1 Methods and HTTP Proxies
  • Yes, If-2K works with Leopard.
  • Bennet Haselton's Essay On Porn
  • Christian Women and Porn
  • Government fails on COPA - once again
  • Telus "backs off" distributing pornography
  • Bennet's Circumventor
  • The Screen Is Too Small
more

User login

What is OpenID?
  • Log in using OpenID
  • Cancel OpenID login
  • Create new account
  • Request new password

Syndicate content

Copyright © 2008 Turner and Sons Productions, Inc.