123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/bin/sh
- #
- # $Id: samplecfg,v 1.13 2005/02/19 18:50:20 florian Exp $
- #
- # Generate Sample Free Pascal configuration file
- #
- HOSTOS=`uname -s | tr A-Z a-z`
- echo Running on $HOSTOS
- if [ $# = 0 ]; then
- echo 'Usage :'
- echo 'samplecfg fpcdir confdir'
- echo 'fpcdir = Path where FPC is installed'
- echo 'confdir = Path to /etc'
- echo 'Example :'
- echo 'samplecfg /usr/local/lib/fpc/3.0.2'
- exit 1
- fi
- if [ "$2" ]; then
- sysdir="$2"
- [ -d "$sysdir" ] || mkdir "$sysdir"
- else
- sysdir=/etc
- fi
- FPCBIN=`dirname "$1"`/../../bin/fpc
- FPBIN=`dirname "$1"`/../../bin/fp
- FPPKGBIN=`dirname "$1"`/../../bin/fppkg
- FPCMKCFGBIN=`dirname "$1"`/../../bin/fpcmkcfg
- SHAREPATH=`dirname "$1"`/../../share/fpc/\$fpcversion
- # Look for one in the PATH, if no new one was installed.
- if [ ! -f $FPCMKCFGBIN ]; then
- FPCMKCFGBIN=fpcmkcfg
- fi
- sysfpdirbase=`dirname "$1"`/`"$FPCBIN" -iV`
- sysfpdirbase2=$sysfpdirbase/ide
- sysfpdir=$sysfpdirbase2/text
- # Detect if we have write permission in sysdir.
- if [ -w "$sysdir" ] ; then
- echo Write permission in $sysdir.
- fpccfgfile="$sysdir"/fpc.cfg
- fppkgfile="$sysdir"/fppkg.cfg
- defaultfile="$sysdir"/fppkg/default
- compilerconfigdir="-d CompilerConfigDir=$sysdir/fppkg"
- fppkgconfdir=$sysdir/fppkg/conf.d
- else
- echo No write premission in $sysdir.
- fpccfgfile="$HOME"/.fpc.cfg
- fppkgfile="$HOME"/.config/fppkg.cfg
- defaultfile="$HOME"/.fppkg/config/default
- fppkgconfdir="$HOME"/.fppkg/config/conf.d
- fi
- #
- # Don't mess with IDE configuration if fp binary does not exist
- if [ -f "$FPBIN" ] ; then
- # Assume local FP IDE configuration unless writing system-wide version possible
- fpinifile="$HOME"/.fp/fp.ini
- fpcfgfile="$HOME"/.fp/fp.cfg
- # Detect if we have write permission in sysfpdir, or that the directory can be made
- if ( [ -d "$sysfpdirbase" ] && [ -w "$sysfpdirbase" ] && ! [ -d "$sysfpdirbase2" ] ) ||
- ( [ -d "$sysfpdirbase2" ] && [ -w "$sysfpdirbase2" ] && ! [ -d "$sysfpdir" ] ) ||
- ( [ -d "$sysfpdir" ] && [ -w "$sysfpdir" ] ) ; then
- fpinifile="$sysfpdir"/fp.ini
- fpcfgfile="$sysfpdir"/fp.cfg
- fi
- #
- fi
- # set right path to FPC with $fpcversion
- FPCPATH=`dirname "$1"`/\$fpcversion
- # set right prefix to FPC
- FPCGLOBALPATH=`dirname "$1"`
- FPCGLOBALPREFIX="$FPCGLOBALPATH"/../../
- # Write (.)fpc.cfg
- echo Writing sample configuration file to $fpccfgfile
- ${FPCMKCFGBIN} -d "basepath=$FPCPATH" -d "sharepath=$SHAREPATH" -o $fpccfgfile
- if [ -f "$FPBIN" ] ; then
- # Write fp.cfg
- echo Writing sample configuration file to $fpcfgfile
- ${FPCMKCFGBIN} -p -1 -d "basepath=$FPCPATH" -d "sharepath=$SHAREPATH" -o $fpcfgfile
- # Write fp.ini
- echo Writing sample configuration file to $fpinifile
- ${FPCMKCFGBIN} -p -2 -o $fpinifile
- fi
- # Do not write fppkg configuration when fppkg is not available
- if ! [ -f "$FPPKGBIN" ] ; then
- exit
- fi
- # Write fppkg.cfg
- echo Writing sample configuration file to $fppkgfile
- ${FPCMKCFGBIN} -p -3 -d "GlobalPrefix=$FPCGLOBALPREFIX" -d "GlobalPath=$FPCGLOBALPATH/{CompilerVersion}/" $compilerconfigdir -o $fppkgfile
- # Write default
- echo Writing sample configuration file to $defaultfile
- ${FPCMKCFGBIN} -p -4 -d "GlobalPrefix=$FPCGLOBALPREFIX" -d "FpcBin=$FPCBIN" -o $defaultfile
- # Create (empty) directory for fppkg-configuration files for extensions
- if ! [ -d "$fppkgconfdir" ] ; then
- mkdir "$fppkgconfdir"
- fi
|