Author: vedge
Date: 2008-06-27 02:06:08 -0300 (Fri, 27 Jun 2008)
New Revision: 712

Added:
   trunk/BSDBuild/freesg_m.pm
Modified:
   trunk/BSDBuild/Makefile
   trunk/BSDBuild/freesg.pm
Log:
text for FreeSG math library alone.


Modified: trunk/BSDBuild/Makefile
===================================================================
--- trunk/BSDBuild/Makefile     2008-06-26 08:31:11 UTC (rev 711)
+++ trunk/BSDBuild/Makefile     2008-06-27 05:06:08 UTC (rev 712)
@@ -75,6 +75,7 @@
        so_peercred.pm \
        getpeereid.pm \
        freesg.pm \
+       freesg_m.pm \
        math_c99.pm \
        getopt.pm \
        byte_order.pm \

Modified: trunk/BSDBuild/freesg.pm
===================================================================
--- trunk/BSDBuild/freesg.pm    2008-06-26 08:31:11 UTC (rev 711)
+++ trunk/BSDBuild/freesg.pm    2008-06-27 05:06:08 UTC (rev 712)
@@ -74,7 +74,7 @@
                                          '-D_THREAD_SAFE');
                MkDefine('FREESG_LIBS', '-L/usr/lib -L/opt/local/lib 
-L/usr/local/lib '.
                                        '-L/usr/X11R6/lib '.
-                                       '-lfreesg_pe -lfreesg -framework GLU');
+                                       '-lfreesg -framework GLU');
        } elsif ($os eq 'windows') {
                MkDefine('FREESG_CFLAGS', '');
                MkDefine('FREESG_LIBS', 'freesg_pe freesg glu');

Added: trunk/BSDBuild/freesg_m.pm
===================================================================
--- trunk/BSDBuild/freesg_m.pm                          (rev 0)
+++ trunk/BSDBuild/freesg_m.pm  2008-06-27 05:06:08 UTC (rev 712)
@@ -0,0 +1,123 @@
+# vim:ts=4
+#
+# Copyright (c) 2008 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..
+
+sub Test
+{
+       my ($ver) = @_;
+       
+       MkExecOutput('agar-config', '--version', 'AGAR_VERSION');
+       MkExecOutput('freesg-m-config', '--version', 'FREESG_VERSION');
+       MkIf('"${AGAR_VERSION}" != "" -a "${FREESG_VERSION}" != ""');
+               MkPrint('yes');
+               MkPrintN('checking whether FreeSG works...');
+               MkExecOutput('agar-config', '--cflags', 'AGAR_CFLAGS');
+               MkExecOutput('agar-config', '--libs', 'AGAR_LIBS');
+               MkExecOutput('freesg-m-config', '--cflags', 'FREESG_M_CFLAGS');
+               MkExecOutput('freesg-m-config', '--libs', 'FREESG_M_LIBS');
+               MkCompileC('HAVE_FREESG_M',
+                   '${FREESG_M_CFLAGS} ${AGAR_CFLAGS}',
+                   '${FREESG_M_LIBS} ${AGAR_LIBS}',
+                          << 'EOF');
+#include <agar/core.h>
+#include <freesg/m/m.h>
+int main(int argc, char *argv[]) {
+       M_Matrix *A = M_New(2,2);
+       AG_InitCore("test", 0);
+       M_InitSubsystem();
+       M_SetIdentity(A);
+       AG_Destroy();
+       return (0);
+}
+EOF
+               MkIf('"${HAVE_FREESG_M}" != ""');
+                       MkSaveMK('FREESG_M_CFLAGS', 'FREESG_M_LIBS');
+                       MkSaveDefine('FREESG_M_CFLAGS', 'FREESG_M_LIBS');
+               MkEndif;
+       MkElse;
+               MkPrint('no');
+               MkSaveUndef('HAVE_FREESG_M', 'FREESG_M_CFLAGS', 
'FREESG_M_LIBS');
+       MkEndif;
+       return (0);
+}
+
+sub Emul
+{
+       my ($os, $osrel, $machine) = @_;
+
+       if ($os eq 'darwin') {
+               MkDefine('FREESG_M_CFLAGS', '-I/opt/local/include/freesg '.
+                                           '-I/opt/local/include '.
+                                           '-I/usr/local/include/freesg '.
+                                                               
'-I/usr/local/include '.
+                                           '-I/usr/include/freesg 
-I/usr/include '.
+                                           '-D_THREAD_SAFE');
+               MkDefine('FREESG_M_LIBS', '-L/usr/lib -L/opt/local/lib '.
+                                         '-L/usr/local/lib -L/usr/X11R6/lib '.
+                                         '-lfreesg_m');
+       } elsif ($os eq 'windows') {
+               MkDefine('FREESG_M_CFLAGS', '');
+               MkDefine('FREESG_M_LIBS', 'freesg_m');
+       } elsif ($os eq 'linux' || $os =~ /^(open|net|free)bsd$/) {
+               MkDefine('FREESG_CFLAGS', '-I/usr/include/freesg -I/usr/include 
'.
+                                         '-I/usr/local/include/freesg '.
+                                                             
'-I/usr/local/include ');
+               MkDefine('FREESG_LIBS', '-L/usr/local/lib -lfreesg_m');
+       } else {
+               goto UNAVAIL;
+       }
+       MkDefine('HAVE_FREESG_M', 'yes');
+       MkSaveDefine('HAVE_FREESG_M', 'FREESG_M_CFLAGS', 'FREESG_M_LIBS');
+       MkSaveMK('FREESG_M_CFLAGS', 'FREESG_M_LIBS');
+       return (1);
+UNAVAIL:
+       MkDefine('HAVE_FREESG_M', 'no');
+       MkSaveUndef('HAVE_FREESG_M');
+       MkSaveMK('FREESG_M_CFLAGS', 'FREESG_M_LIBS');
+       return (1);
+}
+
+sub Link
+{
+       my $var = shift;
+
+       if ($var eq 'freesg_m') {
+               print << 'EOF';
+tinsert(package.links, { "freesg_m" })
+EOF
+               return (1);
+       }
+       return (0);
+}
+
+BEGIN
+{
+       $TESTS{'freesg_m'} = \&Test;
+       $DESCR{'freesg_m'} = 'FreeSG math library (http://FreeSG.org/)';
+       $DEPS{'freesg_m'} = 'cc,agar';
+       $EMUL{'freesg_m'} = \&Emul;
+       $LINK{'freesg_m'} = \&Link;
+}
+
+;1

_______________________________________________
BSDBuild-Commits mailing list
[email protected]
http://mail231.csoft.net/mailman/listinfo/bsdbuild-commits

Reply via email to