3 open(EM, ">embed.h") || die "Can't create embed.h: $!\n";
6 /* This file is derived from global.sym and interp.sym */
8 /* (Doing namespace management portably in C is really gross.) */
10 /* EMBED has no run-time penalty, but helps keep the Perl namespace
11 from colliding with that used by other libraries pulled in
12 by extensions or by embedding perl. Allow a cc -DNO_EMBED
13 override, however, to keep binary compatability with previous
22 /* globals we need to hide from the world */
25 open(GL, "<global.sym") || die "Can't open global.sym: $!\n";
28 s/[ \t]*#.*//; # Delete comments.
30 s/(.*)/#define $1\t\tPerl_$1/;
31 s/(................\t)\t/$1/;
35 close(GL) || warn "Can't close global.sym: $!\n";
41 /* Put interpreter specific symbols into a struct? */
47 open(INT, "<interp.sym") || die "Can't open interp.sym: $!\n";
49 s/[ \t]*#.*//; # Delete comments.
51 s/(.*)/#define $1\t\t(curinterp->I$1)/;
52 s/(................\t)\t/$1/;
55 close(INT) || warn "Can't close interp.sym: $!\n";
59 #else /* not multiple, so translate interpreter symbols the other way... */
63 open(INT, "<interp.sym") || die "Can't open interp.sym: $!\n";
65 s/[ \t]*#.*//; # Delete comments.
67 s/(.*)/#define I$1\t\t$1/;
68 s/(................\t)\t/$1/;
71 close(INT) || warn "Can't close interp.sym: $!\n";
75 #endif /* MULTIPLICITY */