buildcrosssnaphot 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #!/bin/sh
  2. # the root of all, but using it is optional.
  3. CROSSTOOLSROOT=~/building
  4. CROSSTOOLSROOT=${CROSSTOOLSROOT%/}/
  5. # Some paths.
  6. # place where the 1.1.x CVS checkout is
  7. FPCCVS=${CROSSTOOLSROOT}cvs/devel/fpc
  8. # place where the script should store the cross-snapshot
  9. DESTDIR=${CROSSTOOLSROOT}/destination
  10. # place where cross archives (.a files) are stored
  11. BASELIBDIR=${CROSSTOOLSROOT}crosslibs
  12. # Place where logs are generated.
  13. LOGDIR=${CROSSTOOLSROOT}logs
  14. # Type of my mainprocessor.
  15. MYINTEL=i686
  16. EXTRAOPT=-gl
  17. # OSes and CPUs
  18. TARGETS_OS="linux freebsd linux win32 go32v2 netbsd openbsd solaris darwin"
  19. TARGETS_CPU="i386 powerpc sparc"
  20. ###########################################################################
  21. # don't edit below
  22. #
  23. #
  24. #
  25. #
  26. MYHOSTARCH=`uname -p | tr "[:upper:]" "[:lower:]"`
  27. MYHOSTOS=`uname -s | tr "[:upper:]" "[:lower:]"`
  28. echo HOST platform is ${MYHOSTARCH}-${MYHOSTOS}
  29. #
  30. #
  31. # force slash
  32. #
  33. FPCCVS=${FPCCVS%/}/
  34. DESTDIR=${DESTDIR%/}/
  35. LOGDIR=${LOGDIR%/}/
  36. BASELIBDIR=${BASELIBDIR%/}/
  37. #
  38. # BSD? -> ${MAKE}
  39. #
  40. MAKE=make
  41. case "$MYHOSTOS" in
  42. *BSD*) MAKE=gmake
  43. ;;
  44. *bsd*) MAKE=gmake
  45. ;;
  46. esac
  47. #
  48. # Setup dirs
  49. #
  50. mkdir -p ${DESTDIR}
  51. mkdir -p ${LOGDIR}
  52. #
  53. # Real build starts here
  54. #
  55. cd ${FPCCVS}
  56. FAILURES=""
  57. for CPU in $TARGETS_CPU; do
  58. # CPU xlat. translate from FPC cpu designation to binutil's;
  59. MCPU=${CPU}
  60. if [ "${CPU}" = "i386" ]; then
  61. MCPU=${MYINTEL}
  62. fi
  63. for OS in $TARGETS_OS; do
  64. # xlat for OS
  65. MOS=${OS}
  66. if [ "${OS}" = "sunos" ]; then
  67. MOS=solaris
  68. fi
  69. if [ "${OS}" = "win32" ]; then
  70. MOS=cygwin
  71. fi
  72. if [ "${OS}" = "go32v2" ]; then
  73. MOS=msdosdjgpp
  74. fi
  75. dothisbuild=1
  76. if [ "${CPU}" = "${MYHOSTARCH}" ]; then
  77. if [ "${OS}" = "${MYHOSTOS}" ]; then
  78. dothisbuild=0
  79. fi
  80. fi
  81. if [ $dothisbuild -eq 1 ]; then
  82. echo Building ${CPU}-${OS}
  83. if [ -f ${CROSSTOOLSROOT}bin/${MCPU}-${MOS}-as ]; then
  84. ${MAKE} clean all LIBDIR=${BASELIBDIR}/${MCPU}-${MOS} CROSSBINDIR=${CROSSTOOLSROOT}bin OS_TARGET=${OS} CPU_TARGET=${CPU} BINUTILSPREFIX=${MCPU}-${MOS}- OPT="-Xd -Xt ${EXTRAOPT}" > ${LOGDIR}snapbuild-${CPU}-${OS} 2>&1
  85. else
  86. echo can''t find binutils-${MCPU}-${OS} for FPC-${CPU}-${OS}
  87. fi
  88. if [ ! $? = 0 ]; then
  89. echo ${CPU}-${OS} FAILES
  90. FAILURES="${FAILURES} ${CPU}-${OS}"
  91. else
  92. mkdir -p ${DESTDIR}
  93. ${MAKE} install INSTALL_PREFIX=${DESTDIR} LIBDIR=${BASELIBDIR}/${MCPU}-${MOS} CROSSBINDIR=${CROSSTOOLSROOT}bin OS_TARGET=${OS} CPU_TARGET=${CPU} BINUTILSPREFIX=${MCPU}-${MOS}- OPT="-Xd -Xt ${EXTRAOPT}" > ${LOGDIR}snapinstalllog-${CPU}-${OS} 2>&1
  94. fi
  95. fi
  96. done;
  97. done;
  98. if [ -n ${FAILURES} ]; then
  99. echo platforms failed: ${FAILURES}
  100. fi