lyx_mirror/lib/reLyX/reLyX.in
Jean-Marc Lasgouttes de9240227b make LyX/Mac compile and work better
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8321 a592a061-630c-0410-9148-cb99ea01b6c8
2004-01-07 16:40:30 +00:00

82 lines
2.5 KiB
Plaintext

#!@PERL@
# This file is part of reLyX
# Copyright (c) 1998-9 Amir Karger karger@post.harvard.edu
# You are free to use and modify this code under the terms of
# the GNU General Public Licence version 2 or later.
############################# reLyX wrapper
use strict;
use File::Basename;
use Cwd 'abs_path';
$^W = 1; # same as 'perl -w'
# Variables to make global, so subroutines can use them
use vars qw($lyxdir $lyxname);
my (@maybe_dir);
my $mainscript;
my $relyxdir;
# Do this in a BEGIN block so it's done before the 'use lib' below
BEGIN{
# Variables may not be assigned before the BEGIN block
$mainscript = "reLyXmain.pl";
# This points to LyX library dir, e.g. /usr/local/share/lyx
$lyxdir = "@LYX_DIR@";
# This is just "." if you compiled from the source directory
my $srcdir = "@srcdir@";
# This is the name of the program, usually just "lyx"
$lyxname = "@PACKAGE@";
# The name under which reLyX was invoked
my $name = $0;
# resolve any links to dirname
while (defined (readlink($name))) {$name = readlink($name)};
my $dir = &dirname($name);
# Create a list of possible directories to look in. Non-existent directories
# are OK, but empty or undefined values will make 'use lib' complain
# case 1: for developers, e.g. - reLyX and $mainscript in same directory
push @maybe_dir, "$dir";
# case 2: ran make but not make install.
push @maybe_dir, "$dir/$srcdir";
# case 3: environment variable LYX_DIR_14x has been set
if (exists $ENV{LYX_DIR_14x}) { push @maybe_dir, "$ENV{LYX_DIR_14x}/reLyX"};
# case 4: e.g., reLyX in /opt/bin, $mainscript in /opt/share/lyx/reLyX
push @maybe_dir, "$dir/../share/$lyxname/reLyX"; # case 4
# case 5: LyX/Mac -- reLyX is in a MacOS X application bundle
push @maybe_dir, "$dir/../Resources/LyX/reLyX"; # case 5
# case 6: configure figured out where $mainscript is
push @maybe_dir, "$lyxdir/reLyX";
# Decide which one is the real directory, based on the existence of
# "$dir/$mainscript"
my $found=0;
foreach $dir (@maybe_dir) {
if( -e "$dir/$mainscript" ) {
$lyxdir = abs_path("$dir/..");
$relyxdir = abs_path($dir);
$found = 1;
last;
}
}
if(!$found) {
print "reLyX directory not found.\n";
exit(1);
} else { ##just for debug purpose, remove for stable version
print "reLyX directory is: $relyxdir\n";
}
} # end BEGIN block
# Now put those directories into @INC
use lib $relyxdir;
# Now run the script. Perl will look in @INC to find the script (and
# other modules that $mainscript calls)
require $mainscript; # require includes and runs the code...
exit;
############################ end reLyX wrapper