project_bin is used to call another project specific program under the
current project as determined with project_dir.
This program is not usually called directly. Instead project_bin is
symlinked as the name of the program to be executed. project_bin then uses
that name to determine the program to be called. Alternatively the
--project_bin-run option may be used to specify what to execute directly.
This process enables multiple versions of a program to exist in different
project directories. The global path only contains a simple non-changing
symlink which everyone can share.
Assume prog is to be executed. The shell uses the standard PATH
environment variable and finds prog under $DIRPROJECT_PREFIX/bin/prog.
$DIRPROJECT_PREFIX/bin/prog is installed as a simple symlink to
project_bin. Thus the shell executes project_bin.
Project_bin then determines the current project and sets the DIRPROJECT
environment variable, which has the link to the current project area. See
Dir::Project program_bin() for more details.
Project_bin then uses the DIRPROJECT directory in combination with the
DIRPROJECT_PATH to search for prog, the name project_bin was invoked
under. prog is then executed with all of the arguments passed through
If project_bin couldnt determine the project or find the binary using
DIRPROJECT_PATH, it tries to execute
$DIRPROJECT_PREFIX/bin/prog__notfound which is generally a link to a
version of prog that is the default for when outside a project.
Instead of symlinking, you can make a script to call project_bin. This
allows the name of the script to differ from the name of the linked
program, and also allows it to work on systems without symlinks.
exec project_bin, --project_bin-run, name_of_script, @ARGV;
Dir-Project is part of the <http://www.veripool.org/> free EDA software
tool suite. The latest version is available from CPAN and from
Copyright 2001-2014 by Wilson Snyder. This package is free software; you
can redistribute it and/or modify it under the terms of either the GNU
Lesser General Public License Version 3 or the Perl Artistic License Version 2.0.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for