Author: vedge
Date: 2008-08-19 07:57:37 -0300 (Tue, 19 Aug 2008)
New Revision: 721

Modified:
   trunk/BSDBuild/Core.pm
Log:
implement DetectHeaderC()


Modified: trunk/BSDBuild/Core.pm
===================================================================
--- trunk/BSDBuild/Core.pm      2008-08-19 10:57:22 UTC (rev 720)
+++ trunk/BSDBuild/Core.pm      2008-08-19 10:57:37 UTC (rev 721)
@@ -234,6 +234,53 @@
        }
 }
 
+sub BeginTestHeaders
+{
+       MkDefine('TEST_CFLAGS_ORIG', '${TEST_CFLAGS}');
+       MkDefine('TEST_HEADERS', 'Yes');
+}
+
+sub EndTestHeaders
+{
+       MkDefine('TEST_CFLAGS', '${TEST_CFLAGS_ORIG}');
+       MkDefine('TEST_HEADERS', '');
+}
+
+sub DetectHeaderC
+{
+       my $def = shift;
+
+       print "echo > conftest.c\n";
+       while (my $hdr = shift) {
+               print << "EOF";
+echo "#include $hdr" >> conftest.c
+EOF
+       }
+       print << 'EOF';
+echo "int main (int argc, char *argv[]) { return (0); }" >> conftest.c
+EOF
+       print << 'EOF';
+compile="ok"
+echo "$CC $CFLAGS $TEST_CFLAGS -o $testdir/conftest conftest.c" >>config..log
+$CC $CFLAGS $TEST_CFLAGS -o $testdir/conftest conftest.c 2>>config.log
+if [ $? != 0 ]; then
+       echo "-> failed ($?)" >> config.log
+       compile="failed"
+fi
+rm -f $testdir/conftest conftest.c
+EOF
+       MkIf('"${compile}" = "ok"');
+               MkDefine($def, 'yes');
+               MkSaveDefine($def);
+               MkIf('"${TEST_HEADERS}" = "Yes"');
+                       MkDefine('TEST_CFLAGS', "\${TEST_CFLAGS} -D$def");
+               MkEndif;
+       MkElse;
+               MkDefine($def, 'no');
+               MkSaveUndef($def);
+       MkEndif;
+}
+
 sub MkSaveCompileSuccess ($)
 {
        my $define = shift;
@@ -507,7 +554,7 @@
     $^W = 0;
 
     @ISA = qw(Exporter);
-    @EXPORT = qw($LUA %TESTS %DESCR MkExecOutput Which MkFail MKSave 
TryCompile MkCompileC MkCompileCXX MkCompileAndRunC MkCompileAndRunCXX 
TryCompileFlagsC TryCompileFlagsCXX Log MkDefine MkAppend MkIf MkElif MkElse 
MkEndif MkSaveMK MkSaveDefine MkSaveUndef MkPrint MkPrintN PmComment 
PmDefineBool PmDefineString PmIncludePath PmLibPath PmBuildFlag);
+    @EXPORT = qw($LUA %TESTS %DESCR MkExecOutput Which MkFail MKSave 
TryCompile MkCompileC MkCompileCXX MkCompileAndRunC MkCompileAndRunCXX 
TryCompileFlagsC TryCompileFlagsCXX Log MkDefine MkAppend MkIf MkElif MkElse 
MkEndif MkSaveMK MkSaveDefine MkSaveUndef MkPrint MkPrintN PmComment 
PmDefineBool PmDefineString PmIncludePath PmLibPath PmBuildFlag DetectHeaderC 
BeginTestHeaders EndTestHeaders);
 }
 
 ;1

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

Reply via email to