As of SVN revision 20679, BZWorkBench now builds properly on Ubuntu 9.04 (and probably other distros with modifications to what/how packages are installed) using the following commands (or at least something like this):
sudo aptitude install subversion g++ libopenscenegraph-dev libfltk1.1-dev
svn co https://bzflag.svn.sourceforge.net/svnroot/bzflag/trunk/bzworkbench/ bzworkbench
cd bzworkbench/Debug
make
cd ..
./Debug/bzworkbench
The README file says that it needs OpenSceneGraph 2.8, but Ubuntu 9.04 has 2.4. It seems to work, but I didn't do any extensive testing to see if there was any issues.
There is still some issues preventing it from building on Mac OSX.
"In addition to knowing the secrets of the Universe, I can assure you that I am also quite potty trained." -Koenma (Yu Yu Hakusho)
make all-recursive
make[1]: Entering directory `/home/kongr45gpen/bzworkbench'
Making all in src
make[2]: Entering directory `/home/kongr45gpen/bzworkbench/src'
g++ -DHAVE_CONFIG_H -I. -I.. -I../include -g -O2 -MT AdvancedOptionsDialog.o -MD -MP -MF .deps/AdvancedOptionsDialog.Tpo -c -o AdvancedOptionsDialog.o `test -f 'dialogs/AdvancedOptionsDialog.cpp' || echo './'`dialogs/AdvancedOptionsDialog.cpp
dialogs/AdvancedOptionsDialog.cpp: In member function ‘void AdvancedOptionsDialog::AdvancedOptionsPage::removeMaterialCallback_real(Fl_Widget*)’:
dialogs/AdvancedOptionsDialog.cpp:92: error: ‘class Fl_Scroll’ has no member named ‘scroll_to’
dialogs/AdvancedOptionsDialog.cpp: In member function ‘void AdvancedOptionsDialog::AdvancedOptionsPage::addMaterial(MaterialWidget*)’:
dialogs/AdvancedOptionsDialog.cpp:105: error: ‘class Fl_Scroll’ has no member named ‘scroll_to’
dialogs/AdvancedOptionsDialog.cpp:107: error: ‘class Fl_Scroll’ has no member named ‘scroll_to’
dialogs/AdvancedOptionsDialog.cpp: In constructor ‘AdvancedOptionsDialog::AdvancedOptionsPage::AdvancedOptionsPage(int, int, std::string, std::vector<material*, std::allocator<material*> >, physics*, bool)’:
dialogs/AdvancedOptionsDialog.cpp:186: error: ‘class Fl_Scroll’ has no member named ‘scroll_to’
make[2]: *** [AdvancedOptionsDialog.o] Error 1
make[2]: Leaving directory `/home/kongr45gpen/bzworkbench/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/kongr45gpen/bzworkbench'
make: *** [all] Error 2
Which version of FLTK did you install? I think it needs FLTK1.3 now (which isn't released, so you'll have to compile/install FLTK1.3 yourself, uninstalling FLTK1.1 first) http://www.fltk.org/
"In addition to knowing the secrets of the Universe, I can assure you that I am also quite potty trained." -Koenma (Yu Yu Hakusho)
//usr/local/lib/libfltk_images.a(Fl_PNG_Image.o): In function `Fl_PNG_Image::Fl_PNG_Image(char const*)':
Fl_PNG_Image.cxx:(.text+0x84): undefined reference to `png_create_read_struct'
Fl_PNG_Image.cxx:(.text+0x8f): undefined reference to `png_create_info_struct'
Fl_PNG_Image.cxx:(.text+0xc4): undefined reference to `png_init_io'
Fl_PNG_Image.cxx:(.text+0xd1): undefined reference to `png_read_info'
Fl_PNG_Image.cxx:(.text+0xde): undefined reference to `png_get_color_type'
Fl_PNG_Image.cxx:(.text+0xf0): undefined reference to `png_set_expand'
Fl_PNG_Image.cxx:(.text+0x100): undefined reference to `png_get_color_type'
Fl_PNG_Image.cxx:(.text+0x12d): undefined reference to `png_get_tRNS'
Fl_PNG_Image.cxx:(.text+0x13b): undefined reference to `png_get_color_type'
Fl_PNG_Image.cxx:(.text+0x156): undefined reference to `png_get_image_width'
Fl_PNG_Image.cxx:(.text+0x169): undefined reference to `png_get_image_height'
Fl_PNG_Image.cxx:(.text+0x17f): undefined reference to `png_get_bit_depth'
Fl_PNG_Image.cxx:(.text+0x191): undefined reference to `png_set_packing'
Fl_PNG_Image.cxx:(.text+0x19a): undefined reference to `png_set_expand'
Fl_PNG_Image.cxx:(.text+0x1a9): undefined reference to `png_get_bit_depth'
Fl_PNG_Image.cxx:(.text+0x1bb): undefined reference to `png_set_strip_16'
Fl_PNG_Image.cxx:(.text+0x1cc): undefined reference to `png_get_valid'
Fl_PNG_Image.cxx:(.text+0x1de): undefined reference to `png_set_tRNS_to_alpha'
Fl_PNG_Image.cxx:(.text+0x245): undefined reference to `png_set_interlace_handling'
Fl_PNG_Image.cxx:(.text+0x25b): undefined reference to `png_read_rows'
Fl_PNG_Image.cxx:(.text+0x27f): undefined reference to `png_read_end'
Fl_PNG_Image.cxx:(.text+0x291): undefined reference to `png_destroy_read_struct'
//usr/local/lib/libfltk_images.a(Fl_PNG_Image.o): In function `Fl_PNG_Image::Fl_PNG_Image(char const*)':
Fl_PNG_Image.cxx:(.text+0x32e): undefined reference to `png_create_read_struct'
Fl_PNG_Image.cxx:(.text+0x339): undefined reference to `png_create_info_struct'
Fl_PNG_Image.cxx:(.text+0x36e): undefined reference to `png_init_io'
Fl_PNG_Image.cxx:(.text+0x37b): undefined reference to `png_read_info'
Fl_PNG_Image.cxx:(.text+0x388): undefined reference to `png_get_color_type'
Fl_PNG_Image.cxx:(.text+0x39a): undefined reference to `png_set_expand'
Fl_PNG_Image.cxx:(.text+0x3aa): undefined reference to `png_get_color_type'
Fl_PNG_Image.cxx:(.text+0x3d7): undefined reference to `png_get_tRNS'
Fl_PNG_Image.cxx:(.text+0x3e5): undefined reference to `png_get_color_type'
Fl_PNG_Image.cxx:(.text+0x400): undefined reference to `png_get_image_width'
Fl_PNG_Image.cxx:(.text+0x413): undefined reference to `png_get_image_height'
Fl_PNG_Image.cxx:(.text+0x429): undefined reference to `png_get_bit_depth'
Fl_PNG_Image.cxx:(.text+0x43b): undefined reference to `png_set_packing'
Fl_PNG_Image.cxx:(.text+0x444): undefined reference to `png_set_expand'
Fl_PNG_Image.cxx:(.text+0x453): undefined reference to `png_get_bit_depth'
Fl_PNG_Image.cxx:(.text+0x465): undefined reference to `png_set_strip_16'
Fl_PNG_Image.cxx:(.text+0x476): undefined reference to `png_get_valid'
Fl_PNG_Image.cxx:(.text+0x488): undefined reference to `png_set_tRNS_to_alpha'
Fl_PNG_Image.cxx:(.text+0x4ef): undefined reference to `png_set_interlace_handling'
Fl_PNG_Image.cxx:(.text+0x505): undefined reference to `png_read_rows'
Fl_PNG_Image.cxx:(.text+0x529): undefined reference to `png_read_end'
Fl_PNG_Image.cxx:(.text+0x53b): undefined reference to `png_destroy_read_struct'
//usr/local/lib/libfltk.a(fl_font.o): In function `fl_destroy_xft_draw(unsigned long)':
fl_font.cxx:(.text+0x14f): undefined reference to `XftDrawChange'
//usr/local/lib/libfltk.a(fl_font.o): In function `Fl_Graphics_Driver::draw(char const*, int, int, int)':
fl_font.cxx:(.text+0x1a8): undefined reference to `XftDrawCreate'
fl_font.cxx:(.text+0x1bd): undefined reference to `XftDrawChange'
fl_font.cxx:(.text+0x1ed): undefined reference to `XftDrawSetClip'
fl_font.cxx:(.text+0x266): undefined reference to `XftDrawStringUtf8'
//usr/local/lib/libfltk.a(fl_font.o): In function `fl_text_extents(char const*, int, int&, int&, int&, int&)':
fl_font.cxx:(.text+0x5da): undefined reference to `XftTextExtentsUtf8'
//usr/local/lib/libfltk.a(fl_font.o): In function `fl_width(char const*, int)':
fl_font.cxx:(.text+0x693): undefined reference to `XftTextExtentsUtf8'
//usr/local/lib/libfltk.a(fl_font.o): In function `fl_width(unsigned int*, int)':
fl_font.cxx:(.text+0x714): undefined reference to `XftTextExtents32'
//usr/local/lib/libfltk.a(fl_font.o): In function `Fl_Graphics_Driver::rtl_draw(char const*, int, int, int)':
fl_font.cxx:(.text+0x74b): undefined reference to `FcUtf8Len'
fl_font.cxx:(.text+0x790): undefined reference to `FcUtf8ToUcs4'
fl_font.cxx:(.text+0x7e8): undefined reference to `XftDrawCreate'
fl_font.cxx:(.text+0x7fd): undefined reference to `XftDrawChange'
fl_font.cxx:(.text+0x842): undefined reference to `XftDrawSetClip'
fl_font.cxx:(.text+0x8d7): undefined reference to `XftDrawString32'
//usr/local/lib/libfltk.a(fl_font.o): In function `T.198':
fl_font.cxx:(.text+0x95b): undefined reference to `FcPatternCreate'
fl_font.cxx:(.text+0x9ec): undefined reference to `FcPatternAddString'
fl_font.cxx:(.text+0xa2b): undefined reference to `FcPatternAddString'
fl_font.cxx:(.text+0xa3a): undefined reference to `FcPatternAddInteger'
fl_font.cxx:(.text+0xa4b): undefined reference to `FcPatternAddInteger'
fl_font.cxx:(.text+0xa61): undefined reference to `FcPatternAddDouble'
fl_font.cxx:(.text+0xa75): undefined reference to `FcPatternAddString'
fl_font.cxx:(.text+0xaf4): undefined reference to `FcMatrixRotate'
fl_font.cxx:(.text+0xb03): undefined reference to `FcPatternAddMatrix'
fl_font.cxx:(.text+0xb1c): undefined reference to `XftFontMatch'
fl_font.cxx:(.text+0xb56): undefined reference to `XftFontOpen'
fl_font.cxx:(.text+0xb62): undefined reference to `FcPatternDestroy'
fl_font.cxx:(.text+0xb94): undefined reference to `XftFontOpenPattern'
fl_font.cxx:(.text+0xb9f): undefined reference to `FcPatternDestroy'
fl_font.cxx:(.text+0xbd8): undefined reference to `XftFontOpenXlfd'
//usr/local/lib/libfltk.a(screen_xywh.o): In function `screen_init()':
screen_xywh.cxx:(.text+0x1e): undefined reference to `XineramaIsActive'
screen_xywh.cxx:(.text+0x37): undefined reference to `XineramaQueryScreens'
collect2: ld returned 1 exit status
make[2]: *** [bzworkbench] Error 1
make[2]: Leaving directory `/home/kongr45gpen/bzworkbench/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/kongr45gpen/bzworkbench'
make: *** [all] Error 2
blast wrote:Which version of FLTK did you install? I think it needs FLTK1.3 now (which isn't released, so you'll have to compile/install FLTK1.3 yourself, uninstalling FLTK1.1 first) http://www.fltk.org/
Blast is correct fltk 1.3 is what I was using last time I worked on this program.
However you could manually remove the Fl_Scroll "scroll_to" commands (it only used a few places)
if you want to use an older version such as fltk 1.1.9 or 1.1.7
In Subversion revision 21343 I added a test for the presence of the scroll_to() method, and added #ifdef blocks to call it only when it exists. This allows the use of FLTK 1.1.9. I don't have FLTK 1.3 to test this change with, but I think I got it right.