symbol-scan: use configure script knowledge about how to run the C preprocessor
authorYang Tse <yangsita@gmail.com>
Thu, 25 Nov 2010 20:05:20 +0000 (21:05 +0100)
committerYang Tse <yangsita@gmail.com>
Thu, 25 Nov 2010 20:05:20 +0000 (21:05 +0100)
acinclude.m4
buildconf
configure.ac
tests/symbol-scan.pl

index 225fb9d..9f79052 100644 (file)
@@ -3246,3 +3246,44 @@ AC_DEFUN([CURL_CHECK_PKGCONFIG], [
       fi
     fi
 ])
+
+
+dnl CURL_GENERATE_CONFIGUREHELP_PM
+dnl -------------------------------------------------
+dnl Generate test harness configurehelp.pm module, defining and
+dnl initializing some perl variables with values which are known
+dnl when the configure script runs. For portability reasons, test
+dnl harness needs information on how to run the C preprocessor.
+
+AC_DEFUN([CURL_GENERATE_CONFIGUREHELP_PM], [
+  AC_REQUIRE([AC_PROG_CPP])dnl
+  tmp_cpp=`eval echo "$ac_cpp" 2>/dev/null`
+  if test -z "$tmp_cpp"; then
+    tmp_cpp='cpp'
+  fi
+  cat >./tests/configurehelp.pm <<_EOF
+[@%:@] This is a generated file.  Do not edit.
+
+package configurehelp;
+
+use strict;
+use warnings;
+use Exporter;
+
+use vars qw(
+    @ISA
+    @EXPORT_OK
+    \$Cpreprocessor
+    );
+
+@ISA = qw(Exporter);
+
+@EXPORT_OK = qw(
+    \$Cpreprocessor
+    );
+
+\$Cpreprocessor = '$tmp_cpp';
+
+1;
+_EOF
+])
index 1bb7697..f77ed76 100755 (executable)
--- a/buildconf
+++ b/buildconf
@@ -293,6 +293,7 @@ for fname in .deps \
     config.status \
     config.sub \
     configure \
+    configurehelp.pm \
     curl-config \
     curlbuild.h \
     depcomp \
index 1e802fd..c75f4d1 100644 (file)
@@ -2873,6 +2873,8 @@ AC_CONFIG_FILES([Makefile \
 ])
 AC_OUTPUT
 
+CURL_GENERATE_CONFIGUREHELP_PM
+
 AC_MSG_NOTICE([Configured to build curl/libcurl:
 
   curl version:    ${VERSION}
index dea1f73..cda9b73 100644 (file)
 #
 ###########################################################################
 #
-# This script grew out of help from Przemysław Iskra and Bálint Szilakszi
+# This script grew out of help from Przemyslaw Iskra and Balint Szilakszi
 # a late evening in the #curl IRC channel on freenode.
 #
 
+use strict;
+use warnings;
+
+#
+# configurehelp perl module is generated by configure script
+#
+use configurehelp qw(
+    $Cpreprocessor
+    );
+
 # we may get the dir root pointed out
 my $root=$ARGV[0] || ".";
 
 # need an include directory when building out-of-tree
-my $i=$ARGV[1];
-$i="-I$i " if $i;
+my $i = ($ARGV[1]) ? "-I$ARGV[1] " : '';
 
 my $h = "$root/include/curl/curl.h";
 my $mh = "$root/include/curl/multi.h";
@@ -39,7 +48,11 @@ my $verbose=0;
 my $summary=0;
 my $misses=0;
 
-open H_IN, "-|", "cpp $i$h" || die "Cannot preprocess curl.h";
+my @syms;
+my %doc;
+my %rem;
+
+open H_IN, "-|", "$Cpreprocessor $i$h" || die "Cannot preprocess curl.h";
 while ( <H_IN> ) {
     if ( /enum\s+(\S+\s+)?{/ .. /}/ ) {
         s/^\s+//;