Re: [Ekiga-devel-list] [Win32] libboost compiling - trouble with opal



I have come to a solution for integrating libboost into the Win32 build process. I learnt from the bjam compilation of boost_signals which compiler flags they use. I combined them with the ones we need and made a small subMakefile which we call from our main Win32 Makefile, so no private binary downloads any longer. You find everything to build a recent Ekiga master in the attachement. Note, that we currently can not use latest Opal (assertion, resp. segfault) - I will put my complaints about that into a separate post.
Michael

Michael Rickmann schrieb:
Hallo,
yes I have succeded with your instructions, but the outcome is not quite what I think that we need. Two of the compiler flags are wrong we need 1) -mthreads instead of -pthreads and 2) -gstabs instead of -g .
Point 1) can be overcome by changing user-config.jam to
using gcc : : i586-mingw32msvc-g++ : ;
toolset.add-requirements
  <toolset>gcc:<target-os>windows
  <toolset>gcc:<threadapi>win32 ;
2) we would need to have across DLL debugging with our Mingw in a debug version of boost_signals.dll. I have spent now more than a day digging in the build process of libboost to achive that, failing. The build seems rather stand alone. As we only need boost_signals.dll in a release and debug version I definetely prefer a hand crafted Makefile and download.

Moreover, before I could get your instructions working I had to uninstall Jaunties bjam and boost stuff. Although I got boost somewhat integrated into the Makefile

### libBOOST++
update-sources::
    echo --- Getting libBOOST++ ...
    $(WGET) -P src $(BOOST_URL)/$(BOOST_ARCHIVE)

$(BOOST_DIR)/user-config.jam: $(SRCDIR)/$(BOOST_ARCHIVE)
    tar xfj $(SRCDIR)/$(BOOST_ARCHIVE)
( cd $(BOOST_DIR) ; CC=gcc; CXX=g++; ./bootstrap.sh --prefix=$(BUILDROOT) )
    echo "using gcc : : i586-mingw32msvc-g++ : ; toolset.add-requirements \
<toolset>gcc:<target-os>windows <toolset>gcc:<threadapi>win32 ;" > $(BOOST_DIR)/user-config.jam

$(LIBDIR)/$(BOOST_LIB): $(BOOST_DIR)/user-config.jam
( cd $(BOOST_DIR) ; ./bjam -d+2 --user-config=user-config.jam --layout=system --with-signals \ variant=release threading=multi link=shared runtime-link=shared toolset=gcc stage install )

I think that the outcome is not satisfactory.
Regards
Michael

Thierry Simonnet schrieb:
A little mistake for libboost generation.

For step 4 :
use
echo "using gcc : : i586-mingw32msvc-g++ : ; " > user-config.jam
instead of ....gcc. If not you will have trouble generating .dll library.


Michael Rickmann wrote:
Thierry Simonnet schrieb:
If somebody is interested, I succeed to compile libbost under linux for win 32 with mingw .

1/ download last version of libboost : boost_1_40_0.tar.gz
2/ uncompress
3/ generate bjam for local platform : sh bootstrap.sh
4/ create a config file for mingw :

   *

     touch user-config.jam

   *

     echo "using gcc : : i586-mingw32msvc-gcc : ; " > user-config.jam

5/ generate library (don't know which one I will use yet)

   * .dll : ./bjam --user-config=user-config.jam --layout=system
     variant=release threading=multi link=shared runtime-link=shared
     toolset=gcc target-os=windows threadapi=win32 --without-math
     --without-python --without-mpi --without-serialization
     --without-test --without-thread --without-wave --without-date_time
     --without-system --without-filesystem --without-graph
--without-iostreams --without-program_options --without-regex stage
   * .a : ./bjam --user-config=user-config.jam --layout=system
     variant=release threading=multi link=static runtime-link=static
     toolset=gcc threadapi=win32 --without-math --without-python
     --without-mpi --without-serialization --without-test
     --without-thread --without-wave --without-date_time
     --without-system --without-filesystem --without-graph
--without-iostreams --without-program_options --without-regex stage
   * .lib : ./bjam --user-config=user-config.jam --layout=system
     variant=release threading=multi link=static runtime-link=static
     toolset=gcc target-os=windows threadapi=win32 --without-math
     --without-python --without-mpi --without-serialization
     --without-test --without-thread --without-wave --without-date_time
     --without-system --without-filesystem --without-graph
--without-iostreams --without-program_options --without-regex stage

6/ execute i586-mingw32svc-ranlib on library

Ptlib/trunk is ok now. Next step opal/trunk :

[CC] src/codec/g711a1_plc.cxx
[AR] lib_mingw_x86/libopal_s.a
i586-mingw32msvc-ranlib /root/win32/opal/lib_mingw_x86/libopal_s.a
[LD] lib_mingw_x86/libopal.3.7-beta1.dll
/root/win32/opal/lib_mingw_x86/obj/connection.o:connection.cxx:(.text+0x3587): undefined reference to `OpalEchoCanceler::SetParameters(OpalEchoCanceler::Params const&)' /root/win32/opal/lib_mingw_x86/obj/connection.o:connection.cxx:(.text+0x35a3): undefined reference to `OpalEchoCanceler::SetClockRate(int)' /root/win32/opal/lib_mingw_x86/obj/pcss.o:pcss.cxx:(.text+0xcf0): undefined reference to `OpalEchoCanceler::OpalEchoCanceler()' /root/win32/opal/lib_mingw_x86/obj/pcss.o:pcss.cxx:(.text+0xe84): undefined reference to `OpalEchoCanceler::OpalEchoCanceler()'
collect2: ld returned 1 exit status
make[1]: *** [/root/win32/opal/lib_mingw_x86/libopal.3.7-beta1.dll] Error 1
make[1]: Leaving directory `/root/win32/opal'
make: *** [/root/win32/lib/libopal_s.a] Error 2




Great work on boost, I will try your approach tomorrow. As to the Opal error, give attached patch a try. It helped me.
Michael




_______________________________________________
Ekiga-devel-list mailing list
Ekiga-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/ekiga-devel-list

Attachment: ekiga_build-3.3.1-git-391_g765e249.tgz
Description: application/compressed-tar



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]