|  | # | 
|  | #//===----------------------------------------------------------------------===// | 
|  | #// | 
|  | #//                     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 # | 
|  |  |