From: Kinsella, Ray <ray.kinsella@intel.com>
To: buildroot@busybox.net
Subject: [Buildroot] autotools, pkg_config and mysql_config
Date: Fri, 25 Mar 2016 15:50:47 +0000 [thread overview]
Message-ID: <1458921046.3365.30.camel@intel.com> (raw)
In-Reply-To: <20160325163804.2ab42dbf@free-electrons.com>
That does help, thanks Thomas.
Ray K
On Fri, 2016-03-25 at 16:38 +0100, Thomas Petazzoni wrote:
> Hello,
>
> On Thu, 24 Mar 2016 20:25:02 +0000, Kinsella, Ray wrote:
>
> > SQLite - worked like a dream, with two lines in my configure.ac
> >
> > PKG_CHECK_MODULES([SQLITE3], [sqlite3], [have_libsqlite3=yes],
> > [have_libsqlite3=no])$
> > AM_CONDITIONAL([LIB_SQLITE3], [test "$have_libsqlite3" = "yes"])$
>
> This automake variable should rather be called HAVE_SQLITE3, and not
> LIB_SQLITE3.
>
> > However mysql, in an effort to be slightly different - doesn't use
> > pkg_config, so you therefore can't use PKG_CHECK_MODULES. Instead
> > it ships its own tool mysql_config.
> >
> > So I wrote some autoconf, to handle that ...
> >
> > AX_WITH_PROG([MYSQL_CONFIG], [mysql_config],
> > [AC_MSG_ERROR(mysql_config is required to build)])$
>
> Why do you use AX_WITH_PROG instead of AC_PATH_PROG ?
>
> > if test "x$MYSQL_CONFIG" != "x";then$
> > AC_CHECK_HEADERS([mysql.h mysql/mysql.h])$
>
> It doesn't seem to make sense to check for MySQL headers before
> fetching the MySQL CFLAGS. Indeed, how can you expect to check the
> MySQL headers if you haven't yet asked mysql_config for the headers?
>
> I would simply drop this check in fact, and simply rely on whether
> mysql_config exists or not.
>
> > if test "x$ac_cv_header_mysql_h" != "xno" -o
> > "x$ac_cv_header_mysql_mysql_h" != "xno" ; then$
> > MYSQL_CFLAGS=`$MYSQL_CONFIG --cflags`$
> > MYSQL_LIBS=`$MYSQL_CONFIG --libs`$
> > AC_SUBST([MYSQL_CFLAGS])$
> > AC_SUBST([MYSQL_LIBS])$
> > fi$
> > fi$
>
> I am not sure why you have a $ at the end of each line.
>
> > AM_CONDITIONAL([LIB_MYSQL], [test "x$mysql_config" != "x"])
>
> Ditto, I would call the variable HAVE_MYSQL.
>
> > My problem is that, it is continually picking myconfig from my host
> > system. So end up with $MYSQL_CONFIG=/usr/bin/mysql_config instead
> > of target/usr/bin/mysql_config. MYSQL_CFLAGS and MYSQL_LIBS
> > therefore also end up pointing at the host.
>
> Buildroot will install mysql_config in $(STAGING_DIR)/usr/bin, which
> is
> not in the PATH. So you have to explicitly tell your configure script
> where it is located. If you use AC_PATH_PROG, you simply need to
> pass:
>
> ac_cv_path_MYSQL_CONFIG=$(STAGING_DIR)/usr/bin/mysql_config
>
> in RADLIB_CONF_ENV.
>
> Some examples from Buildroot:
>
> package/directfb/directfb.mk:DIRECTFB_CONF_ENV +=
> ac_cv_path_LIBPNG_CONFIG=$(STAGING_DIR)/usr/bin/libpng-config
> package/directfb/directfb.mk:DIRECTFB_CONF_ENV +=
> ac_cv_path_IMLIB2_CONFIG=$(STAGING_DIR)/usr/bin/imlib2-config
> package/gnupg/gnupg.mk:GNUPG_CONF_ENV +=
> ac_cv_path__libcurl_config=$(STAGING_DIR)/usr/bin/curl-config
> package/gnuplot/gnuplot.mk:
> ac_cv_path_GDLIB_CONFIG=$(STAGING_DIR)/usr/bin/gdlib-config
> etc, etc.
>
> And there's even one example with MySQL:
>
> package/kodi/kodi.mk:KODI_CONF_ENV +=
> ac_cv_path_MYSQL_CONFIG="$(STAGING_DIR)/usr/bin/mysql_config"
>
> Hope this helps,
>
> Thomas
prev parent reply other threads:[~2016-03-25 15:50 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-24 20:25 [Buildroot] autotools, pkg_config and mysql_config Kinsella, Ray
2016-03-25 15:38 ` Thomas Petazzoni
2016-03-25 15:50 ` Kinsella, Ray [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1458921046.3365.30.camel@intel.com \
--to=ray.kinsella@intel.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.