/usr/lib/qflow/scripts/checkdirs.sh is in qflow 1.1.23-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | #!/usr/bin/tcsh -f
#
#-------------------------------------------------------------------------
# checkdirs.sh
#-------------------------------------------------------------------------
# April 2013
# Tim Edwards, Open Circuit Design
#-------------------------------------------------------------------------
#
# This script searches for technology directories and project directories.
# It sets variables associated with each directory for other scripts to
# use.
#
# The directory hierarchy is expected to be set up as follows:
#
# <project> ----> source/
# ----> synthesis/
# ----> layout/
# ----> tech/<techname> (optional)
#
# "tech" is optional if the technology is in the qflow install location,
# QFLOW_TECH_DIR/<techname>
#
# Optionally, techfiles may be in subdirectory <techname> without the
# intervening "tech" directory. i.e.,
#
# <project> ----> <techname>
#
# Optionally, "tech" may point directly to the directory containing techfile
# data, i.e.,
#
# <project> ----> tech/
#
# If <project> is not specified on the command line, then it is assumed
# to be the current working directory. If any standard subdirectories
# "source", "synthesis", or "layout" are not found, they will be set to
# the project directory. The techfile directory must be found, or
# synthesis cannot proceed.
#
# Source this file using "source" to add variables to the existing shell
# environment.
#
#-------------------------------------------------------------------------
# Environment variables override everything else:
# QFLOW_TECH_DIR path to technology directory
# QFLOW_TECH name of technology
# QFLOW_PROJECT_ROOT path to project top level directory
#
# The second two are checked before calling this routine so
# that there are known values for the two arguments passed
# to it.
if ($#argv != 1 && $#argv != 2) then
echo Usage: checkdirs.sh <technology_name> <project_name>
exit 1
endif
set techname=${argv[1]}
if ($#argv == 2) then
set projectpath=${argv[2]}
else
set projectpath=`pwd`
endif
#----------------------------------------------------
# Check for standard working directories
#----------------------------------------------------
if ( -d ${projectpath}/source ) then
set sourcedir=${projectpath}/source
else
set sourcedir=${projectpath}
endif
if ( -d ${projectpath}/synthesis ) then
set synthdir=${projectpath}/synthesis
else
set synthdir=${projectpath}
endif
if ( -d ${projectpath}/layout ) then
set layoutdir=${projectpath}/layout
else
set layoutdir=${projectpath}
endif
#----------------------------------------------------
# Set variables from install locations here, so we
# don't have to do it in every script separately.
# Track path to scripts and binaries used by qflow
#----------------------------------------------------
set scriptdir=/usr/lib/qflow/scripts
set bindir=/usr/lib/qflow/bin
#----------------------------------------------------
# Check for the techfile (see comments at top)
#----------------------------------------------------
set techdir=`printenv QFLOW_TECH_DIR`
if ($techdir != "") then
if ( !(-d ${techdir}/${techname}.sh )) then
if ( -d ${techdir}/${techname} ) then
set techdir=${techdir}/${techname}
else
set techdir=""
endif
endif
endif
if ($techdir != "") then
exit 0
endif
if ( -d ${projectpath}/tech/${techname} ) then
set techdir=${projectpath}/tech/${techname}
else
if ( -d ${projectpath}/${techname} ) then
set techdir=${projectpath}/${techname}
else
if ( -d ${projectpath}/tech && -r ${projectpath}/tech/${techname}.sh ) then
set techdir=${projectpath}/tech
else
if ( -d /usr/share/qflow/tech/${techname} ) then
set techdir=/usr/share/qflow/tech/${techname}
else
echo "Don't know about technology '${techname}'"
echo "Check /usr/share/qflow/tech/ for known technologies"
endif
endif
endif
endif
exit 0
#----------------------------------------------------
|