/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/tools/gen_export.pl
90 строк
2 KB
Tom Lane
Restore AIX support.
23 фев 2026, 21:34
23 фев 2026, 21:34
4a1b05c
Код
Авторство
О чём код?
# Copyright (c) 2024-2026, PostgreSQL Global Development Group use strict; use warnings FATAL => 'all'; use Getopt::Long; my $format; my $libname; my $input; my $output; GetOptions( 'format:s' => \$format, 'libname:s' => \$libname, 'input:s' => \$input, 'output:s' => \$output) or die "wrong arguments"; if (not( $format eq 'aix' or $format eq 'darwin' or $format eq 'gnu' or $format eq 'win')) { die "$0: $format is not yet handled (only aix, darwin, gnu, win are)\n"; } open(my $input_handle, '<', $input) or die "$0: could not open input file '$input': $!\n"; open(my $output_handle, '>', $output) or die "$0: could not open output file '$output': $!\n"; if ($format eq 'aix') { print $output_handle "#!\n"; } elsif ($format eq 'gnu') { print $output_handle "{ global: "; } elsif ($format eq 'win') { # XXX: Looks like specifying LIBRARY $libname is optional, which makes it # easier to build a generic command for generating export files... if ($libname) { print $output_handle "LIBRARY $libname\n"; } print $output_handle "EXPORTS\n"; } while (<$input_handle>) { if (/^#/) { # don't do anything with a comment } elsif (/^(\S+)\s+(\S+)/) { if ($format eq 'aix') { print $output_handle "$1\n"; } elsif ($format eq 'darwin') { print $output_handle "_$1\n"; } elsif ($format eq 'gnu') { print $output_handle " $1;\n"; } elsif ($format eq 'win') { print $output_handle "$1 @ $2\n"; } } else { die "$0: unexpected line $_\n"; } } if ($format eq 'gnu') { print $output_handle " local: *; }; "; }