samplecfg 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. echo 'Example :'
  15. echo 'samplecfg /usr/local/lib/fpc/3.0.2'
  16. exit 1
  17. fi
  18. if [ "$2" ]; then
  19. sysdir="$2"
  20. [ -d "$sysdir" ] || mkdir "$sysdir"
  21. else
  22. sysdir=/etc
  23. fi
  24. FPCBIN=`dirname "$1"`/../../bin/fpc
  25. FPBIN=`dirname "$1"`/../../bin/fp
  26. FPPKGBIN=`dirname "$1"`/../../bin/fppkg
  27. FPCMKCFGBIN=`dirname "$1"`/../../bin/fpcmkcfg
  28. SHAREPATH=`dirname "$1"`/../../share/fpc/\$fpcversion
  29. # Look for one in the PATH, if no new one was installed.
  30. if [ ! -f $FPCMKCFGBIN ]; then
  31. FPCMKCFGBIN=fpcmkcfg
  32. fi
  33. sysfpdirbase=`dirname "$1"`/`"$FPCBIN" -iV`
  34. sysfpdirbase2=$sysfpdirbase/ide
  35. sysfpdir=$sysfpdirbase2/text
  36. # Detect if we have write permission in sysdir.
  37. if [ -w "$sysdir" ] ; then
  38. echo Write permission in $sysdir.
  39. fpccfgfile="$sysdir"/fpc.cfg
  40. fppkgfile="$sysdir"/fppkg.cfg
  41. defaultfile="$sysdir"/fppkg/default
  42. compilerconfigdir="-d CompilerConfigDir=$sysdir/fppkg"
  43. fppkgconfdir=$sysdir/fppkg/conf.d
  44. else
  45. echo No write premission in $sysdir.
  46. fpccfgfile="$HOME"/.fpc.cfg
  47. fppkgfile="$HOME"/.config/fppkg.cfg
  48. defaultfile="$HOME"/.fppkg/config/default
  49. fppkgconfdir="$HOME"/.fppkg/config/conf.d
  50. fi
  51. #
  52. # Don't mess with IDE configuration if fp binary does not exist
  53. if [ -f "$FPBIN" ] ; then
  54. # Assume local FP IDE configuration unless writing system-wide version possible
  55. fpinifile="$HOME"/.fp/fp.ini
  56. fpcfgfile="$HOME"/.fp/fp.cfg
  57. # Detect if we have write permission in sysfpdir, or that the directory can be made
  58. if ( [ -d "$sysfpdirbase" ] && [ -w "$sysfpdirbase" ] && ! [ -d "$sysfpdirbase2" ] ) ||
  59. ( [ -d "$sysfpdirbase2" ] && [ -w "$sysfpdirbase2" ] && ! [ -d "$sysfpdir" ] ) ||
  60. ( [ -d "$sysfpdir" ] && [ -w "$sysfpdir" ] ) ; then
  61. fpinifile="$sysfpdir"/fp.ini
  62. fpcfgfile="$sysfpdir"/fp.cfg
  63. fi
  64. #
  65. fi
  66. # set right path to FPC with $fpcversion
  67. FPCPATH=`dirname "$1"`/\$fpcversion
  68. # set right prefix to FPC
  69. FPCGLOBALPATH=`dirname "$1"`
  70. FPCGLOBALPREFIX="$FPCGLOBALPATH"/../../
  71. # Write (.)fpc.cfg
  72. echo Writing sample configuration file to $fpccfgfile
  73. ${FPCMKCFGBIN} -d "basepath=$FPCPATH" -d "sharepath=$SHAREPATH" -o $fpccfgfile
  74. if [ -f "$FPBIN" ] ; then
  75. # Write fp.cfg
  76. echo Writing sample configuration file to $fpcfgfile
  77. ${FPCMKCFGBIN} -p -1 -d "basepath=$FPCPATH" -d "sharepath=$SHAREPATH" -o $fpcfgfile
  78. # Write fp.ini
  79. echo Writing sample configuration file to $fpinifile
  80. ${FPCMKCFGBIN} -p -2 -o $fpinifile
  81. fi
  82. # Do not write fppkg configuration when fppkg is not available
  83. if ! [ -f "$FPPKGBIN" ] ; then
  84. exit
  85. fi
  86. # Write fppkg.cfg
  87. echo Writing sample configuration file to $fppkgfile
  88. ${FPCMKCFGBIN} -p -3 -d "GlobalPrefix=$FPCGLOBALPREFIX" -d "GlobalPath=$FPCGLOBALPATH/{CompilerVersion}/" $compilerconfigdir -o $fppkgfile
  89. # Write default
  90. echo Writing sample configuration file to $defaultfile
  91. ${FPCMKCFGBIN} -p -4 -d "GlobalPrefix=$FPCGLOBALPREFIX" -d "FpcBin=$FPCBIN" -o $defaultfile
  92. # Create (empty) directory for fppkg-configuration files for extensions
  93. if ! [ -d "$fppkgconfdir" ] ; then
  94. mkdir "$fppkgconfdir"
  95. fi