xref: /netbsd-src/external/gpl3/gcc/dist/libstdc++-v3/scripts/gen_includers2.pl (revision 4fee23f98c45552038ad6b5bd05124a41302fb01)
1*4fee23f9Smrg#!/usr/bin/perl -w
2*4fee23f9Smrguse English;
3*4fee23f9Smrg
4*4fee23f9Smrg$max = shift @ARGV;
5*4fee23f9Smrg
6*4fee23f9Smrg$template_params = "typename _U1";
7*4fee23f9Smrg$template_args = "_U1";
8*4fee23f9Smrg$params = "_U1& __u1";
9*4fee23f9Smrg$args = "__u1";
10*4fee23f9Smrg
11*4fee23f9Smrgfor ($num_args = 2; $num_args <= $max; ++$num_args) {
12*4fee23f9Smrg  $template_params .= ", typename _U$num_args";
13*4fee23f9Smrg  $template_args .= ", _U$num_args";
14*4fee23f9Smrg  $params .= ", _U$num_args& __u$num_args";
15*4fee23f9Smrg  $args .= ", __u$num_args";
16*4fee23f9Smrg  print "#define _GLIBCXX_BIND_NUM_ARGS $num_args\n";
17*4fee23f9Smrg  print "#define _GLIBCXX_BIND_COMMA ,\n";
18*4fee23f9Smrg  print "#define _GLIBCXX_BIND_TEMPLATE_PARAMS $template_params\n";
19*4fee23f9Smrg  print "#define _GLIBCXX_BIND_TEMPLATE_ARGS $template_args\n";
20*4fee23f9Smrg  print "#define _GLIBCXX_BIND_PARAMS $params\n";
21*4fee23f9Smrg  print "#define _GLIBCXX_BIND_ARGS $args\n";
22*4fee23f9Smrg  print "#include _GLIBCXX_BIND_REPEAT_HEADER\n";
23*4fee23f9Smrg  print "#undef _GLIBCXX_BIND_ARGS\n";
24*4fee23f9Smrg  print "#undef _GLIBCXX_BIND_PARAMS\n";
25*4fee23f9Smrg  print "#undef _GLIBCXX_BIND_TEMPLATE_ARGS\n";
26*4fee23f9Smrg  print "#undef _GLIBCXX_BIND_TEMPLATE_PARAMS\n";
27*4fee23f9Smrg  print "#undef _GLIBCXX_BIND_COMMA\n";
28*4fee23f9Smrg  print "#undef _GLIBCXX_BIND_NUM_ARGS\n";
29*4fee23f9Smrg  print "\n";
30*4fee23f9Smrg}
31*4fee23f9Smrg
32