CVSROOT: /sources/gnash Module name: gnash Changes by: Rob Savoye <rsavoye> 07/10/05 18:34:57
Modified files: macros : boost.m4 . : ChangeLog Log message: * macros/boost.m4: Makwe the --with-options work correctly. Recode how all the directories, headers, and libraries get found, or configure fails to find any dependant file. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/macros/boost.m4?cvsroot=gnash&r1=1.59&r2=1.60 http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4541&r2=1.4542 Patches: Index: macros/boost.m4 =================================================================== RCS file: /sources/gnash/gnash/macros/boost.m4,v retrieving revision 1.59 retrieving revision 1.60 diff -u -b -r1.59 -r1.60 --- macros/boost.m4 25 Sep 2007 19:05:49 -0000 1.59 +++ macros/boost.m4 5 Oct 2007 18:34:57 -0000 1.60 @@ -14,7 +14,7 @@ dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -dnl $Id: boost.m4,v 1.59 2007/09/25 19:05:49 nihilus Exp $ +dnl $Id: boost.m4,v 1.60 2007/10/05 18:34:57 rsavoye Exp $ dnl Boost modules are: dnl date-time, filesystem. graph. iostreams, program options, python, @@ -22,18 +22,39 @@ AC_DEFUN([GNASH_PATH_BOOST], [ + dnl start variables with a known value + gnash_boost_version="" + gnash_boost_topdir="" + gnash_boost_libdir="" + missing_headers="" + missing_libs="" + gcc_version="" + dirname="" + libname="" + dnl this is a list of *required* headers. If any of these are missing, this + dnl test will return a failure, and Gnash won't build. + boost_headers="detail/lightweight_mutex.hpp thread/thread.hpp multi_index_container.hpp multi_index/key_extractors.hpp thread/mutex.hpp" + dnl this is a list of *required* libraries. If any of these are missing, this + dnl test will return a failure, and Gnash won't build. + boost_libs="thread date_time serialization foobar" + + dnl this is the default list for paths to search. This gets + dnl redefined if --with-boost-incl= is specified. + newlist=$incllist + dnl Lool for the header AC_ARG_WITH(boost_incl, AC_HELP_STRING([--with-boost-incl], [directory where boost headers are]), with_boost_incl=${withval}) - AC_CACHE_VAL(ac_cv_path_boost_incl, [ if test x"${with_boost_incl}" != x ; then - if test -f ${with_boost_incl}/boost/thread.hpp ; then - ac_cv_path_boost_incl=-I`(cd ${with_boost_incl}; pwd)` - else - AC_MSG_ERROR([${with_boost_incl} directory doesn't contain boost/thread.hpp]) - fi + gnash_boost_topdir=`(cd ${with_boost_incl}; pwd)` + gnash_boost_version=`echo ${gnash_boost_topdir} | sed -e 's:.*boost-::'` + newlist=${gnash_boost_topdir} fi - ]) + AC_MSG_CHECKING([for boost header]) + dnl munge the GCC version number, which Boost uses to label it's libraries. + gcc_version=`${CXX} --version | head -1 | cut -d ' ' -f 3 | cut -d '.' -f 1-2 | tr -d '.'` + + if test x"${gnash_boost_topdir}" = x; then dnl Attempt to find the top level directory, which unfortunately has a dnl version number attached. At least on Debian based systems, this dnl doesn't seem to get a directory that is unversioned. @@ -43,48 +64,39 @@ $PKG_CONFIG --exists boost && gnash_boost_version=`$PKG_CONFIG --modversion boost | cut -d "." -f 1 | awk '{print $'0'".0"}'` fi fi - - if test x"${gnash_boost_version}" = x; then - gnash_boost_topdir="" - gnash_boost_version="" - for i in $incllist; do - for j in `ls -dr $i/boost* 2>/dev/null`; do - - dnl Fix for packaging systems not adding extra fluff to the path-name. - i=`dirname ${j}` - - if test -f ${j}/boost/detail/lightweight_mutex.hpp -a -f ${j}/boost/thread.hpp -a -f ${j}/boost/multi_index_container.hpp -a -f ${j}/boost/multi_index/key_extractors.hpp ; then - gnash_boost_topdir=`basename $j` - ac_cv_path_boost_incl="-I${j}" - break; - elif test -f ${i}/boost/detail/lightweight_mutex.hpp -a -f ${i}/boost/thread.hpp -a -f ${i}/boost/multi_index_container.hpp -a -f ${i}/boost/multi_index/key_extractors.hpp ; then - ac_cv_path_boost_incl="-I${i}" - break fi - done - if test x$gnash_boost_topdir != x; then + + for i in $newlist; do + dirs=`ls -dr $i/boost* 2>/dev/null` + if test -n "${dirs}"; then + gnash_boost_topdir=`(cd ${dirs}; pwd)` gnash_boost_version=`echo ${gnash_boost_topdir} | sed -e 's:boost-::'` - break; + dnl Fix for packaging systems not adding extra fluff to the path-name. + for k in ${boost_headers}; do + if test ! -f ${gnash_boost_topdir}/boost/$k ; then + missing_headers="${missing_headers} $k" fi done - fi - - if test x"${gnash_boost_version}" = x; then - AC_MSG_RESULT([no version found/needed]) + if test x"${missing_headers}" = x ; then + ac_cv_path_boost_incl="-I${gnash_boost_topdir}" + AC_MSG_RESULT(${ac_cv_path_boost_incl}) + break else - AC_MSG_RESULT(${gnash_boost_version}) + AC_MSG_RESULT([You need to install ${missing_headers}]) + fi fi + done - AC_MSG_CHECKING([for boost header]) - AC_MSG_RESULT(${ac_cv_path_boost_incl}) + dnl this is the default list for paths to search. This gets + dnl redefined if --with-boost-lib= is specified. + newlist=$libslist dnl Look for the library AC_ARG_WITH(boost_lib, AC_HELP_STRING([--with-boost-lib], [directory where boost libraries are]), with_boost_lib=${withval}) - AC_CACHE_VAL(ac_cv_path_boost_lib, [ if test x"${with_boost_lib}" != x ; then - ac_cv_path_boost_lib="-L`(cd ${with_boost_lib}; pwd)`" + gnash_boost_libdir=`(cd ${with_boost_lib}; pwd)` + newlist="${gnash_boost_libdir}" fi - ]) dnl Specify the list of probable names. Boost creates 8 identical dnl libraries with different names. The prefered order is to always @@ -93,72 +105,44 @@ dnl version compiled with GCC instead of the native dnl compiler. Finally look for the library without any qualitfying dnl attributes. - boost_date_time="no" - boost_thread="no" - boost_serialization="no" + if test x${ac_cv_path_boost_lib} = x; then AC_MSG_CHECKING([for Boost libraries]) - for i in $libslist; do - if test x${boost_date_time} = xyes -a x${boost_thread} = xyes -a x${boost_serialization} = xyes; then - break; - fi - dirs=`ls -dr $i/libboost_date_time*.${shlibext} $i/libboost_date_time*.${shlibext}.* $i/libboost_date_time*.a 2>/dev/null` - for libname in $dirs; do - if test x"${boost_date_time}" = xno; then - lfile=`basename ${libname} | eval sed -e 's:^lib::' -e 's:.a$::' -e 's:\.${shlibext}.*::'` - ldir=`dirname ${libname}` - if test -f ${ldir}/lib${lfile}-mt.${shlibext}; then - lfile="${lfile}-mt" - fi - boost_date_time=yes - if test x"${ldir}" != "x/usr/lib"; then - ac_cv_path_boost_lib="-L${ldir} -l${lfile}" - else - ac_cv_path_boost_lib="-l${lfile}" - fi + for i in $newlist; do + if test x"${ac_cv_path_boost_lib}" != x; then break else - break + missing_libs="" fi - done - - dnl now look for the Boost Thread library - dirs=`ls -dr $i/libboost_thread*.${shlibext} $i/libboost_thread*.${shlibext}.* $i/libboost_thread*.a 2>/dev/null` - for libname in $dirs; do - if test x"${boost_thread}" = xno; then - lfile=`basename ${libname} | eval sed -e 's:^lib::' -e 's:.a$::' -e 's:\.${shlibext}.*::'` - ldir=`dirname ${libname}` - if test -f ${ldir}/lib${lfile}-mt.${shlibext}; then - lfile="${lfile}-mt" - fi - boost_thread=yes - ac_cv_path_boost_lib="${ac_cv_path_boost_lib} -l${lfile}" - break - else - break + for j in ${boost_libs}; do + dirs=`ls -dr $i/libboost_${j}*.${shlibext} $i/libboost_${j}*.a 2>/dev/null` + if test -n "${dirs}"; then + libname=`echo ${dirs} | sed -e 's:\..*$::' -e 's:^.*/lib::'` + if test x$dirname = x; then + dirname=`echo ${dirs} | sed -e 's:/libboost.*$::'` + if test x"${dirname}" != "x/usr/lib"; then + ac_cv_path_boost_lib="-L${dirname}" fi - done - - dnl now look for the Boost Serialization library - dirs=`ls -dr $i/libboost_serialization*.${shlibext} $i/libboost_serialization*.${shlibext}.* $i/libboost_serialization*.a 2>/dev/null` - for libname in $dirs; do - if test x"${boost_serialization}" = xno; then - lfile=`basename ${libname} | eval sed -e 's:^lib::' -e 's:.a$::' -e 's:\.${shlibext}.*::'` - ldir=`dirname ${libname}` - if test -f ${ldir}/lib${lfile}-mt.${shlibext}; then - lfile="${lfile}-mt" fi - boost_serialization=yes - ac_cv_path_boost_lib="${ac_cv_path_boost_lib} -l${lfile}" - break + ac_cv_path_boost_lib="${ac_cv_path_boost_lib} -l${libname}" else - break + missing_libs="${missing_libs} $j" fi done done + fi + + if test x"${missing_libs}" != x ; then + AC_MSG_ERROR([Libraries ${missing_libs} aren't installed ]) + fi AC_MSG_RESULT(${ac_cv_path_boost_lib}) + if test x"${missing_headers}" != x; then BOOST_CFLAGS="$ac_cv_path_boost_incl" + fi + + if test x"${missing_libs}" != x; then BOOST_LIBS="$ac_cv_path_boost_lib" + fi dnl ------------------------------------------------------------------ dnl Set HAVE_BOOST conditional, BOOST_CFLAGS and BOOST_LIBS variables @@ -170,7 +154,7 @@ # This isn't right: you don't need boot date-time installed unless u build # cygnal, and it is sometimes a separate package from Boost core and thread. # TODO: why is this needed, lack of boost being a fatal error? - AM_CONDITIONAL(HAVE_BOOST, [test x${boost_date_time} = xyes && test x${boost_thread} = xyes && test x${boost_serialization} = xyes]) + AM_CONDITIONAL(HAVE_BOOST, [test -n "${BOOST_LIBS}"]) ]) # Local Variables: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4541 retrieving revision 1.4542 diff -u -b -r1.4541 -r1.4542 --- ChangeLog 5 Oct 2007 17:48:16 -0000 1.4541 +++ ChangeLog 5 Oct 2007 18:34:57 -0000 1.4542 @@ -1,3 +1,9 @@ +2007-10-05 Rob Savoye <[EMAIL PROTECTED]> + + * macros/boost.m4: Makwe the --with-options work correctly. Recode + how all the directories, headers, and libraries get found, or + configure fails to find any dependant file. + 2007-10-06 Chad Musick <[EMAIL PROTECTED]> * server/vm/Machine.h: More comments about functions, some signature corrections. @@ -3056,7 +3062,7 @@ 2007-08-23 Markus Gothe <[EMAIL PROTECTED]> * libamf/amf.cpp: memcpy -> strncpy, since it does a memory - access violation on Darwin (and porbably other OSes). + access violation on Darwin (and probably other OSes). 2007-08-23 Sandro Santilli <[EMAIL PROTECTED]> _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit