This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[dummy merge]
[perl5.git] / perl_exp.SH
1 #!/bin/sh
2 #
3 # Written: Nov 1994 Wayne Scott (wscott@ichips.intel.com)
4 #
5 # Create the export list for perl.
6 # Needed by AIX to do dynamic linking.
7 #
8 # This simple program relys on 'global.sym' being up to date
9 # with all of the global symbols that a dynamicly link library
10 # might want to access.
11 #
12 # Most symbols have a Perl_ prefix because that's what embed.h sticks
13 # in front of them.  Variations depend on binary compatibility with
14 # Perl 5.003.
15 #
16
17 case $CONFIG in
18 '')
19         if test -f config.sh; then TOP=.;
20         elif test -f ../config.sh; then TOP=..;
21         elif test -f ../../config.sh; then TOP=../..;
22         elif test -f ../../../config.sh; then TOP=../../..;
23         elif test -f ../../../../config.sh; then TOP=../../../..;
24         else
25                 echo "Can't find config.sh."; exit 1
26         fi
27         . $TOP/config.sh
28         ;;
29 esac
30 : This forces SH files to create target in same directory as SH file.
31 : This is so that make depend always knows where to find SH derivatives.
32 case "$0" in
33 */*) cd `expr X$0 : 'X\(.*\)/'` ;;
34 esac
35
36 echo "Extracting perl.exp"
37
38 rm -f perl.exp
39 echo "#!" > perl.exp
40
41 case "$bincompat3" in
42 y*)
43         (
44           global=/tmp/exp$$g
45           interp=/tmp/exp$$i
46           compat3=/tmp/exp$$c
47           trap 'rm -f $global $interp $compat3' 0
48           trap 'exit 1' 1 2 3 13 15
49           grep '^[A-Za-z]' global.sym | sort >$global
50           grep '^[A-Za-z]' interp.sym | sort >$interp
51           grep '^[A-Za-z]' compat3.sym | sort >$compat3
52           comm -23 $global $compat3 | sed 's/^/Perl_/' >> perl.exp
53           comm -12 $interp $compat3 | sed 's/^/Perl_/' >> perl.exp
54           comm -12 $global $compat3 >> perl.exp
55           comm -23 $interp $compat3 >> perl.exp
56         )
57         ;;
58 *)
59         sed -n '/^[A-Za-z]/ s/^/Perl_/p' global.sym interp.sym >> perl.exp
60         ;;
61 esac
62
63 #
64 # Extra globals not included above (including a few that might
65 # not actually be defined, but there's no harm in that).
66 #
67
68 cat <<END >> perl.exp
69 perl_init_i18nl10n
70 perl_init_i18nl14n
71 perl_new_collate
72 perl_new_ctype
73 perl_new_numeric
74 perl_set_numeric_local
75 perl_set_numeric_standard
76 perl_alloc
77 perl_construct
78 perl_destruct
79 perl_free
80 perl_parse
81 perl_run
82 perl_get_sv
83 perl_get_av
84 perl_get_hv
85 perl_get_cv
86 perl_call_argv
87 perl_call_pv
88 perl_call_method
89 perl_call_sv
90 perl_requirepv
91 Mymalloc
92 Mycalloc
93 Myremalloc
94 Myfree
95 Perl_malloc
96 Perl_calloc
97 Perl_realloc
98 Perl_free
99 END