diff options
Diffstat (limited to 'openmp/runtime/tools/lib/LibOMP.pm')
-rw-r--r-- | openmp/runtime/tools/lib/LibOMP.pm | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/openmp/runtime/tools/lib/LibOMP.pm b/openmp/runtime/tools/lib/LibOMP.pm new file mode 100644 index 00000000000..06a371f6e06 --- /dev/null +++ b/openmp/runtime/tools/lib/LibOMP.pm @@ -0,0 +1,85 @@ +# +#//===----------------------------------------------------------------------===// +#// +#// The LLVM Compiler Infrastructure +#// +#// This file is dual licensed under the MIT and the University of Illinois Open +#// Source Licenses. See LICENSE.txt for details. +#// +#//===----------------------------------------------------------------------===// +# +package LibOMP; + +use strict; +use warnings; + +use tools; + +sub empty($) { + my ( $var ) = @_; + return not exists( $ENV{ $var } ) or not defined( $ENV{ $var } ) or $ENV{ $var } eq ""; +}; # sub empty + +my ( $base, $out, $tmp ); +if ( empty( "LIBOMP_WORK" ) ) { + # $FindBin::Bin is not used intentionally because it gives real path. I want to use absolute, + # but not real one (real path does not contain symlinks while absolute path may contain + # symlinks). + $base = get_dir( get_dir( abs_path( $0 ) ) ); +} else { + $base = abs_path( $ENV{ LIBOMP_WORK } ); +}; # if + +if ( empty( "LIBOMP_EXPORTS" ) ) { + $out = cat_dir( $base, "exports" ); +} else { + $out = abs_path( $ENV{ LIBOMP_EXPORTS } ); +}; # if + +if ( empty( "LIBOMP_TMP" ) ) { + $tmp = cat_dir( $base, "tmp" ); +} else { + $tmp = abs_path( $ENV{ LIBOMP_TMP } ); +}; # if + +$ENV{ LIBOMP_WORK } = $base; +$ENV{ LIBOMP_EXPORTS } = $out; +$ENV{ LIBOMP_TMP } = $tmp; + +return 1; + +__END__ + +=pod + +=head1 NAME + +B<LibOMP.pm> -- + +=head1 SYNOPSIS + + use FindBin; + use lib "$FindBin::Bin/lib"; + use LibOMP; + + $ENV{ LIBOMP_WORK } + $ENV{ LIBOMP_TMP } + $ENV{ LIBOMP_EXPORTS } + +=head1 DESCRIPTION + +The module checks C<LIBOMP_WORK>, C<LIBOMP_EXPORTS>, and C<LIBOMP_TMP> environments variables. +If a variable set, the module makes sure it is absolute. If a variable does not exist, the module +sets it to default value. + +Default value for C<LIBOMP_EXPORTS> is C<$LIBOMP_WORK/exports>, for C<LIBOMP_TMP> -- +C<$LIBOMP_WORK/tmp>. + +Value for C<LIBOMP_WORK> is guessed. The module assumes the script (which uses the module) is +located in C<tools/> directory of libomp directory tree, and uses path of the script to calculate +C<LIBOMP_WORK>, + +=cut + +# end of file # + |