Commit | Line | Data |
450a55e4 |
1 | #!/usr/local/bin/perl |
2 | |
3 | ($iam = $0) =~ s%.*/%%; |
4 | $tmp = "$iam.$$"; |
5 | open (CODE,">$tmp.c") || die "$iam: cannot create $tmp.c: $!\n"; |
6 | |
7 | $mask = q/printf ("$sizeof{'%s'} = %d;\n"/; |
8 | |
9 | # write C program |
10 | select(CODE); |
11 | |
12 | print <<EO_C_PROGRAM; |
13 | #include <sys/param.h> |
14 | #include <sys/types.h> |
15 | #include <sys/socket.h> |
16 | #include <net/if_arp.h> |
17 | #include <net/if.h> |
18 | #include <net/route.h> |
19 | #include <sys/ioctl.h> |
20 | |
21 | main() { |
22 | EO_C_PROGRAM |
23 | |
24 | while ( <> ) { |
25 | chop; |
26 | printf "\t%s, \n\t\t\"%s\", sizeof(%s));\n", $mask, $_,$_; |
27 | } |
28 | |
29 | print "\n}\n"; |
30 | |
31 | close CODE; |
32 | |
33 | # compile C program |
34 | |
35 | select(STDOUT); |
36 | |
37 | system "cc $tmp.c -o $tmp"; |
38 | die "couldn't compile $tmp.c" if $?; |
39 | system "./$tmp"; |
40 | die "couldn't run $tmp" if $?; |
41 | |
42 | unlink "$tmp.c", $tmp; |