samplecfg 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #!/bin/sh
  2. #
  3. # $Id: samplecfg,v 1.13 2005/02/19 18:50:20 florian Exp $
  4. #
  5. # Generate Sample Free Pascal configuration file
  6. #
  7. HOSTOS=`uname -s | tr A-Z a-z`
  8. echo Running on $HOSTOS
  9. if [ $# = 0 ]; then
  10. echo 'Usage :'
  11. echo 'samplecfg fpcdir confdir'
  12. echo 'fpcdir = Path where FPC is installed'
  13. echo 'confdir = Path to /etc'
  14. exit 1
  15. fi
  16. if [ "$2" ]; then
  17. sysdir="$2"
  18. [ -d "$sysdir" ] || mkdir "$sysdir"
  19. else
  20. sysdir=/etc
  21. fi
  22. FPCBIN=`dirname "$1"`/../../bin/fpc
  23. FPBIN=`dirname "$1"`/../../bin/fp
  24. FPPKGBIN=`dirname "$1"`/../../bin/fppkg
  25. sysfpdirbase=`dirname "$1"`/`"$FPCBIN" -iV`
  26. sysfpdirbase2=$sysfpdirbase/ide
  27. sysfpdir=$sysfpdirbase2/text
  28. # Detect if we have write permission in sysdir.
  29. if [ -w "$sysdir" ] ; then
  30. echo Write permission in $sysdir.
  31. fpccfgfile="$sysdir"/fpc.cfg
  32. fppkgfile="$sysdir"/fppkg.cfg
  33. defaultfile="$sysdir"/fppkg/default
  34. compilerconfigdir="-d CompilerConfigDir=$sysdir/fppkg"
  35. else
  36. echo No write premission in $sysdir.
  37. fpccfgfile="$HOME"/.fpc.cfg
  38. fppkgfile="$HOME"/.config/fppkg.cfg
  39. defaultfile="$HOME"/.fppkg/config/default
  40. fi
  41. #
  42. # Don't mess with IDE configuration if fp binary does not exist
  43. if [ -f "$FPBIN" ] ; then
  44. # Assume local FP IDE configuration unless writing system-wide version possible
  45. fpinifile="$HOME"/.fp/fp.ini
  46. fpcfgfile="$HOME"/.fp/fp.cfg
  47. # Detect if we have write permission in sysfpdir, or that the directory can be made
  48. if ( [ -d "$sysfpdirbase" ] && [ -w "$sysfpdirbase" ] && ! [ -d "$sysfpdirbase2" ] ) ||
  49. ( [ -d "$sysfpdirbase2" ] && [ -w "$sysfpdirbase2" ] && ! [ -d "$sysfpdir" ] ) ||
  50. ( [ -d "$sysfpdir" ] && [ -w "$sysfpdir" ] ) ; then
  51. fpinifile="$sysfpdir"/fp.ini
  52. fpcfgfile="$sysfpdir"/fp.cfg
  53. fi
  54. #
  55. fi
  56. # set right path to FPC with $fpcversion
  57. FPCPATH=`dirname "$1"`/\$fpcversion
  58. # set right prefix to FPC
  59. FPCGLOBALPREFIX=`dirname "$1"`/../../
  60. # Write (.)fpc.cfg
  61. echo Writing sample configuration file to $fpccfgfile
  62. fpcmkcfg -d "basepath=$FPCPATH" -o $fpccfgfile
  63. if ! [ -f "$FPBIN" ] ; then
  64. exit
  65. fi
  66. # Write fp.cfg
  67. echo Writing sample configuration file to $fpcfgfile
  68. fpcmkcfg -p -1 -d "basepath=$FPCPATH" -o $fpcfgfile
  69. # Write fp.ini
  70. echo Writing sample configuration file to $fpinifile
  71. fpcmkcfg -p -2 -o $fpinifile
  72. # Do not write fppkg configuration when fppkg is not available
  73. if ! [ -f "$FPPKGBIN" ] ; then
  74. exit
  75. fi
  76. # Write fppkg.cfg
  77. echo Writing sample configuration file to $fppkgfile
  78. fpcmkcfg -p -3 $compilerconfigdir -o $fppkgfile
  79. # Write default
  80. echo Writing sample configuration file to $defaultfile
  81. fpcmkcfg -p -4 -d "GlobalPrefix=$FPCGLOBALPREFIX" -o $defaultfile