[Gambas-user] BUG in 0.99 RC1

Benoit Minisini gambas at ...1...
Mon Nov 1 14:22:17 CET 2004


On Sunday 31 October 2004 22:43, Ron Onstenk wrote:
> GB_COMPONENT(
>   mysql,
>   MYSQL,
>   [MySQL driver],
>   [GB_FIND(mysql.h my_config.h, /usr/lib /usr/local /opt /usr, include
> mysql*/include)], [GB_FIND(libmysqlclient.$SHLIBEXT, /usr/local /opt /usr,
> lib mysql*/lib)], [$C_LIB -lmysqlclient -lz])
>
> GB_COMPONENT(
>   sqlite,
>   SQLITE,
>   [SQLite driver],
>   [GB_FIND(sqlite.h, /usr/lib /usr/local /opt /usr, include
> sqlite*/include)], [GB_FIND(libsqlite.$SHLIBEXT, /usr/local /opt /usr, lib
> sqlite*/lib)], [$C_LIB -lsqlite -lc -lstdc++])
>
> dnl ---- SDL component needs: libvorbisfile.la libsmpeg.la libogg.la
>
> GB_COMPONENT(
>   sdl,
>   SDL,
>   [SDL component],
>   [GB_FIND(SDL.h SDL_mixer.h, /usr/local /usr, include SDL*/include
> include/SDL*)], [GB_FIND(libSDL.$SHLIBEXT libSDL_mixer.$SHLIBEXT,
> /usr/local /usr, lib SDL*/lib lib/SDL*)], [$C_LIB $THREAD_LIB -lSDL
> -lSDL_mixer -lm],
>   [$THREAD_INC])
>
>
>
> As you can see in the SDL component the /usr/local is the first and then
> /usr This is also the case for the CONV, INTL and I did for CURL and XML
> libraries for previous relase.
>
> Thanks to this behaviour my SuSE box is using for the precompiled rpm's the
> version SuSE has used for system build from /usr/lib.
> Yast depends on it for CURL using the distributed libraries.
>
> I did install my own updated CURL version for the NET component with
> --prefix=/usr/local Now my correct versions for new projects are using the
> new one.
> Old SuSE rpms using the the old in /usr , same for XML.
>
> Conflicts in the past where I did not use the --prefix=/usr/local had
> broken parts of my system. When I'm right it should do this also for MYSQL
> and SQLLITE ????
> I mean checking for overide by new versions in /usr/local before using
> /usr.
>
> I think the lines must be changed from
>   [GB_FIND(mysql.h my_config.h, /usr/lib /usr/local /opt /usr, include
> mysql*/include)], to
>   [GB_FIND(mysql.h my_config.h, /usr/local/lib /usr/lib /opt /usr, include
> mysql*/include)],
>
> and
>   [GB_FIND(sqlite.h, /usr/lib /usr/local /opt /usr, include
> sqlite*/include)], to
>   [GB_FIND(sqlite.h, /usr/local/lib /usr/lib /opt /usr, include
> sqlite*/include)],
>
> For both also is it need the /lib for the first two, the others don't have
> it. I assume the order for the locations to look is first fit.
>
> Correct me if I'm wrong.
>
> For the line  [GB_FIND(mysql.h my_config.h, /usr/local/lib
> Is it correct to assume in this line 'mysql.h' AND 'my_config.h' must be
> found or should be one of them be found as 'mysql.h' OR 'my_config.h' ?
>
> @Fabian:
> I checked sqlite is on my box. I do not have it but also not seen a error
> about it. My compile was './configure ; make ; make install' and nothing
> else, I love it :) (has been a disaster in the past with curl, you
> remember?)
>
> Ron
>

Here is what I fixed, tell me if it is correct:

1) I put /usr/local before /usr in every "include search" GB_FIND() 

2) I added /usr/local/lib and /usr/lib in every "include search" GB_FIND().

Normally, include files should never be put in a lib directory, but there are 
exceptions (like qt on Mandrake).

I think distribution makers never solved the problem of installing different 
development packages of the same library...

Regards,

-- 
Benoit Minisini
mailto:gambas at ...1...




More information about the User mailing list