annotate tools/find-gcc-include-path @ 913:7aa39f5128f9

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 09 Apr 2014 21:25:41 +0900
parents c005a392e27e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
615
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
1 #!/usr/bin/perl
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
2
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
3 my $CC = $ARGV[1];
861
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
4 my $gcc = `echo '#include <stdio.h>' | $CC -E - `;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
5
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
6 $gcc =~ m=\"(/[^"]+/)stdio\.h"=;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
7 my $gcc_path = $1;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
8
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
9 my $gcc1 = `echo '#include <stddef.h>' | $CC -E - `;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
10
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
11 $gcc1 =~ m=\"(/[^"]+/)stddef\.h"=;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
12 my $gcc_path1 = $1;
615
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
13
861
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
14 my $path = <<EOF;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
15 "$gcc_path",
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
16 EOF
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
17 if ($gcc_path1 ne $gcc_path) {
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
18 $path = <<EOF;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
19 "$gcc_path",
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
20 "$gcc_path1",
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
21 EOF
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
22 }
615
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
23
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
24 if ($ARGV[0]=~/-l/) {
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
25 print <<EOF
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
26 char *l_include_path[] = {
861
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
27 $path
615
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
28 "/usr/include/",
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
29 0
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
30 };
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
31 EOF
861
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
32 } elsif ($ARGV[0]=~/-s/) {
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
33 open my $fd, "<", "stdio.template" or die("can't open stdio.template");
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
34 my $repl = 1;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
35 while(<$fd>) {
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
36 if ($repl && /\#include \"\/usr\/include\/stdio.h\"/) {
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
37 print "#include \"${gcc_path}stdio.h\"\n";
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
38 $repl = 0;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
39 next;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
40 }
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
41 print;
c005a392e27e fix for Marvaricks
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 767
diff changeset
42 }
615
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
43 } else {
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
44 print "$gcc_path\n";
2dee957ef988 test case on undeclared name
kono
parents:
diff changeset
45 }