4 open(EM, ">embed.h") || die "Can't create embed.h: $!\n";
7 /* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
8 This file is built by embed.pl from global.sym and interp.sym.
9 Any changes made here will be lost
12 /* (Doing namespace management portably in C is really gross.) */
14 /* EMBED has no run-time penalty, but helps keep the Perl namespace
15 from colliding with that used by other libraries pulled in
16 by extensions or by embedding perl. Allow a cc -DNO_EMBED
17 override, however, to keep binary compatability with previous
26 /* globals we need to hide from the world */
29 open(GL, "<global.sym") || die "Can't open global.sym: $!\n";
32 s/[ \t]*#.*//; # Delete comments.
34 s/^\s*(\S+).*$/#define $1\t\tPerl_$1/;
36 s/(................\t)\t/$1/;
40 close(GL) || warn "Can't close global.sym: $!\n";
46 /* Put interpreter specific symbols into a struct? */
52 open(INT, "<interp.sym") || die "Can't open interp.sym: $!\n";
54 s/[ \t]*#.*//; # Delete comments.
56 s/^\s*(\S+).*$/#define $1\t\t(curinterp->I$1)/;
57 s/(................\t)\t/$1/;
60 close(INT) || warn "Can't close interp.sym: $!\n";
64 #else /* not multiple, so translate interpreter symbols the other way... */
68 open(INT, "<interp.sym") || die "Can't open interp.sym: $!\n";
70 s/[ \t]*#.*//; # Delete comments.
72 s/^\s*(\S+).*$/#define I$1\t\t$1/;
73 s/(................\t)\t/$1/;
76 close(INT) || warn "Can't close interp.sym: $!\n";
84 open(INT, "<interp.sym") || die "Can't open interp.sym: $!\n";
86 s/[ \t]*#.*//; # Delete comments.
88 s/^\s*(\S+).*$/#define $1\t\tPerl_$1/;
89 s/(................\t)\t/$1/;
92 close(INT) || warn "Can't close interp.sym: $!\n";
98 #endif /* MULTIPLICITY */