gen_maybe_include.pl 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/perl -w
  2. #
  3. # Boost.Function library
  4. #
  5. # Copyright (C) 2001-2003 Douglas Gregor (gregod@cs.rpi.edu)
  6. #
  7. # Permission to copy, use, sell and distribute this software is granted
  8. # provided this copyright notice appears in all copies.
  9. # Permission to modify the code and to distribute modified code is granted
  10. # provided this copyright notice appears in all copies, and a notice
  11. # that the code was modified is included with the copyright notice.
  12. #
  13. # This software is provided "as is" without express or implied warranty,
  14. # and with no claim as to its suitability for any purpose.
  15. #
  16. # For more information, see http://www.boost.org
  17. use English;
  18. $max_args = $ARGV[0];
  19. open (OUT, ">maybe_include.hpp") or die("Cannot write to maybe_include.hpp");
  20. for($on_arg = 0; $on_arg <= $max_args; ++$on_arg) {
  21. if ($on_arg == 0) {
  22. print OUT "#if";
  23. }
  24. else {
  25. print OUT "#elif";
  26. }
  27. print OUT " BOOST_FUNCTION_NUM_ARGS == $on_arg\n";
  28. print OUT "# undef BOOST_FUNCTION_MAX_ARGS_DEFINED\n";
  29. print OUT "# define BOOST_FUNCTION_MAX_ARGS_DEFINED $on_arg\n";
  30. print OUT "# ifndef BOOST_FUNCTION_$on_arg\n";
  31. print OUT "# define BOOST_FUNCTION_$on_arg\n";
  32. print OUT "# include <boost/function/function_template.hpp>\n";
  33. print OUT "# endif\n";
  34. }
  35. print OUT "#else\n";
  36. print OUT "# error Cannot handle Boost.Function objects that accept more than $max_args arguments!\n";
  37. print OUT "#endif\n";