Author: vedge Date: 2012-04-05 22:15:21 -0400 (Thu, 05 Apr 2012) New Revision: 940
Added: trunk/BSDBuild/mysql.pm Modified: trunk/BSDBuild/Makefile Log: test for libmysqlclient Modified: trunk/BSDBuild/Makefile =================================================================== --- trunk/BSDBuild/Makefile 2012-02-24 03:18:58 UTC (rev 939) +++ trunk/BSDBuild/Makefile 2012-04-06 02:15:21 UTC (rev 940) @@ -100,7 +100,8 @@ clock_win32.pm \ sdl_ttf.pm \ xinerama.pm \ - portaudio.pm + portaudio.pm \ + mysql.pm all: Added: trunk/BSDBuild/mysql.pm =================================================================== --- trunk/BSDBuild/mysql.pm (rev 0) +++ trunk/BSDBuild/mysql.pm 2012-04-06 02:15:21 UTC (rev 940) @@ -0,0 +1,98 @@ +# vim:ts=4 +# +# Copyright (c) 2012 Hypertriton, Inc. <http://hypertriton.com/> +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution.. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.. + +my $testCode = << 'EOF'; +#include <mysql.h> +#include <string.h> + +int +main(int argc, char *argv[]) +{ + MYSQL *my = mysql_init(NULL); + if (my != NULL) { mysql_close(my); } + return (0); +} +EOF + +sub Test +{ + my ($ver) = @_; + + MkExecOutputUnique('mysql_config', '--version', 'MYSQL_VERSION'); + MkIfNE('${MYSQL_VERSION}', ''); + MkFoundVer($pfx, $ver, 'MYSQL_VERSION'); + MkPrintN('checking whether MySQL works...'); + MkExecOutput('mysql_config', '--cflags', 'MYSQL_CFLAGS'); + MkExecOutput('mysql_config', '--libs', 'MYSQL_LIBS'); + MkCompileC('HAVE_MYSQL', + '${MYSQL_CFLAGS}', '${MYSQL_LIBS}', + $testCode); + MkSaveIfTrue('${HAVE_MYSQL}', 'MYSQL_CFLAGS', 'MYSQL_LIBS'); + MkElse; + MkNotFound($pfx); + MkSaveUndef('MYSQL_CFLAGS', 'MYSQL_LIBS'); + MkEndif; + return (0); +} + +sub Emul +{ + my ($os, $osrel, $machine) = @_; + + if ($os eq 'windows') { + MkDefine('MYSQL_CFLAGS', ''); + MkDefine('MYSQL_LIBS', 'mysqlclient'); + } + MkDefine('HAVE_MYSQL', 'yes'); + MkSave('HAVE_MYSQL', 'MYSQL_CFLAGS', 'MYSQL_LIBS'); + return (1); +} + +sub Link +{ + my $var = shift; + + if ($var eq 'mysqlclient') { + PmLink('mysqlclient'); + + if ($EmulEnv =~ /^cb-/) { + PmIncludePath('$(#libmysql.include)'); + PmLibPath('$(#libmysql.lib)'); + } + return (1); + } + return (0); +} + +BEGIN +{ + $TESTS{'mysql'} = \&Test; + $DEPS{'mysql'} = 'cc'; + $LINK{'mysql'} = \&Link; + $EMUL{'mysql'} = \&Emul; + $DESCR{'mysql'} = 'MySQL (http://dev.mysql.com/)'; +} + +;1 _______________________________________________ BSDBuild-Commits mailing list BSDBuild-Commits@hypertriton.com http://mail231.csoft.net/mailman/listinfo/bsdbuild-commits