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