/farmR/configure.ac

https://code.google.com/p/javawfm/ · m4 · 228 lines · 158 code · 46 blank · 24 comment · 0 complexity · 7e8cb71011167aab23d8b8057430c8f5 MD5 · raw file

  1. AC_PREREQ(2.61)
  2. AC_INIT(farmR,1.0,iracooke@gmail.com)
  3. AC_CONFIG_SRCDIR([src/glpkjni.h])
  4. AC_CONFIG_HEADER([])
  5. AC_CONFIG_AUX_DIR([tools])
  6. AC_CANONICAL_BUILD
  7. AC_CANONICAL_HOST
  8. # find R home and set CC/CFLAGS
  9. : ${R_HOME=`R RHOME`}
  10. if test -z "${R_HOME}"; then
  11. echo "could not determine R_HOME"
  12. exit 1
  13. fi
  14. RBIN="${R_HOME}/bin/R"
  15. CC=`"${RBIN}" CMD config CC`;
  16. CFLAGS=`"${RBIN}" CMD config CFLAGS`
  17. CPPFLAGS=`"${RBIN}" CMD config CPPFLAGS`
  18. AC_SUBST(PLATFORM)
  19. JNIPREFIX=lib
  20. JNISO=.so
  21. # we need to adjust a few things according to OS ..
  22. case "${host_os}" in
  23. darwin*)
  24. JNISO=.jnilib
  25. ;;
  26. *)
  27. ;;
  28. esac
  29. AC_SUBST(JNIPREFIX)
  30. AC_SUBST(JNISO)
  31. # Checks for programs.
  32. AC_PROG_CXX
  33. AC_PROG_CC
  34. # Checks for libraries.
  35. # Checks for header files.
  36. AC_HEADER_STDC
  37. AC_CHECK_HEADERS([stdlib.h])
  38. # Checks for typedefs, structures, and compiler characteristics.
  39. AC_C_CONST
  40. AC_HEADER_STDBOOL
  41. #Checking for Java support in R and gathering Java environment variables. This is taken from the configure.ac of rJava
  42. AC_MSG_CHECKING([Java support in R])
  43. R_JAVA_HOME=`"${RBIN}" CMD config JAVA_HOME`
  44. : ${JAVA_HOME="${R_JAVA_HOME}"}
  45. if test -z "${JAVA_HOME}"; then
  46. AC_MSG_ERROR([absent
  47. R was configured without Java support. Please run
  48. R CMD javareconf
  49. as root to add Java support to R.
  50. If you don't have root privileges, run
  51. R CMD javareconf -e
  52. to set all Java-related variables and then install rJava.
  53. (works with R 2.5.0 only)])
  54. fi
  55. : ${JAR=`"${RBIN}" CMD config JAR|sed 's/ERROR:.*//'`}
  56. : ${JAVA=`"${RBIN}" CMD config JAVA|sed 's/ERROR:.*//'`}
  57. : ${JAVAC=`"${RBIN}" CMD config JAVAC|sed 's/ERROR:.*//'`}
  58. : ${JAVAH=`"${RBIN}" CMD config JAVAH|sed 's/ERROR:.*//'`}
  59. : ${JAVA_CPPFLAGS=`"${RBIN}" CMD config JAVA_CPPFLAGS|sed 's/ERROR:.*//'`}
  60. : ${JAVA_LIBS=`"${RBIN}" CMD config JAVA_LIBS|sed 's/ERROR:.*//'`}
  61. AC_MSG_RESULT([present:
  62. interpreter : '${JAVA}'
  63. archiver : '${JAR}'
  64. compiler : '${JAVAC}'
  65. header prep.: '${JAVAH}'
  66. cpp flags : '${JAVA_CPPFLAGS}'
  67. java libs : '${JAVA_LIBS}'])
  68. java_error='One or more Java configuration variables are not set.'
  69. if test -z "${JAVA}"; then
  70. java_error='Java interpreter is missing or not registered in R'
  71. fi
  72. if test -z "${JAVAC}"; then
  73. java_error='Java Development Kit (JDK) is missing or not registered in R'
  74. fi
  75. have_all_flags=no
  76. if test -n "${JAVA}" && test -n "${JAVAC}" && test -n "${JAVAH}" && \
  77. test -n "${JAVA_CPPFLAGS}" && test -n "${JAVA_LIBS}" && test -n "${JAR}"; then
  78. have_all_flags=yes;
  79. fi
  80. if test "${have_all_flags}" = no; then
  81. AC_MSG_ERROR([${java_error}
  82. Make sure R is configured with full Java support (including JDK). Run
  83. R CMD javareconf
  84. as root to add Java support to R.
  85. If you don't have root privileges, run
  86. R CMD javareconf -e
  87. to set all Java-related variables and then install rJava.
  88. ])
  89. fi
  90. if test `echo foo | sed -e 's:foo:bar:'` = bar; then
  91. JAVA_CPPFLAGS0=`echo ${JAVA_CPPFLAGS} | sed -e 's:$(JAVA_HOME):'${JAVA_HOME}':g'`
  92. JAVA_LIBS0=`echo ${JAVA_LIBS} | sed -e 's:$(JAVA_HOME):'${JAVA_HOME}':g'`
  93. JAVA_LD_LIBRARY_PATH0=`echo ${JAVA_LD_LIBRARY_PATH} | sed -e 's:$(JAVA_HOME):'${JAVA_HOME}':g'`
  94. else
  95. AC_MSG_WARN([sed is not working properly - the configuration may fail])
  96. JAVA_CPPFLAGS0="${JAVA_CPPFLAGS}"
  97. JAVA_LIBS0="${JAVA_LIBS}"
  98. JAVA_LD_LIBRARY_PATH0="${JAVA_LD_LIBRARY_PATH}"
  99. fi
  100. LIBS="${LIBS} ${JAVA_LIBS0}"
  101. CFLAGS="${CFLAGS} ${JAVA_CPPFLAGS0}"
  102. LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${JAVA_LD_LIBRARY_PATH0}"
  103. AC_MSG_CHECKING([whether JNI programs can be compiled])
  104. AC_LINK_IFELSE([
  105. #include <jni.h>
  106. int main(void) {
  107. jobject o;
  108. JNI_CreateJavaVM(0, 0, 0);
  109. return 0;
  110. }
  111. ],[AC_MSG_RESULT(yes)],
  112. [AC_MSG_ERROR([Cannot compile a simple JNI program. See config.log for details.
  113. Make sure you have Java Development Kit installed and correctly registered in R.
  114. If in doubt, re-run "R CMD javareconf" as root.
  115. ])])
  116. #AC_MSG_CHECKING([JNI data types])
  117. #AC_TRY_RUN(
  118. # [
  119. #include <jni.h>
  120. #int main(void) {
  121. # return (sizeof(int)==sizeof(jint) && sizeof(long)==sizeof(long) && sizeof(jbyte)==sizeof(char) && #sizeof(jshort)==sizeof(short) && sizeof(jfloat)==sizeof(float) && sizeof(jdouble)==sizeof(double))?0:1;
  122. #}
  123. # ],
  124. # [AC_MSG_RESULT([ok])],
  125. # [AC_MSG_ERROR([One or more JNI types differ from the corresponding native type. You may need to use non-standard #compiler flags or a different compiler in order to fix this.])],
  126. # [AC_MSG_RESULT([don't know (cross-compiling)])])
  127. AC_SUBST(JAVA_LIBS)
  128. AC_SUBST(JAVA_CPPFLAGS)
  129. AC_SUBST(JAVA_HOME)
  130. AC_SUBST(JAVA)
  131. AC_SUBST(JAVAC)
  132. AC_SUBST(JAVAH)
  133. GLPKINSTDIR=`pwd`;
  134. GLPKINSTDIR=${GLPKINSTDIR}/src/depends/glpk/
  135. AC_SUBST(GLPKINSTDIR)
  136. case "${host_os}" in
  137. darwin*)
  138. JNISO=.jnilib
  139. ;;
  140. *)
  141. ;;
  142. esac
  143. if test -z `echo ${R_ARCH}`; then
  144. R_ARCH=/`uname -m`;
  145. fi
  146. case "${R_ARCH}" in /i386*)
  147. ARCHFLAG=i386 ;;
  148. *) ARCHFLAG=ppc
  149. ;;
  150. esac
  151. AC_SUBST(ARCHFLAG)
  152. (echo $host_os)
  153. case "${host_os}" in
  154. darwin*)
  155. PLATFORM=Darwin
  156. (echo "Configuring for Darwin")
  157. # Manually set the -arch flag for compilation. On snow leopard configure scripts tend to get this wrong
  158. # ARCHFLAG=`uname -m`;
  159. (echo "Configuring ")
  160. (echo $ARCHFLAG)
  161. (echo "Configuring coin-Cbc")
  162. (cd src/depends/coin-Cbc/ && \
  163. ./configure \
  164. --enable-static --disable-shared --with-pic ADD_CXXFLAGS="-arch $ARCHFLAG" ADD_CFLAGS="-arch $ARCHFLAG ")
  165. (echo "Done configuring coin-CBC")
  166. ;;
  167. *)
  168. # On all systems other than darwinassume that configure can guess the architecture appropriately.
  169. (echo "Configuring ")
  170. PLATFORM=linux
  171. (echo "Configuring coin-Cbc")
  172. (cd src/depends/coin-Cbc/ && \
  173. ./configure \
  174. --enable-static --disable-shared --with-pic)
  175. (echo "Done configuring coin-CBC")
  176. ;;
  177. esac
  178. AC_SUBST(PLATFORM)
  179. # Checks for library functions.
  180. AC_CONFIG_FILES([src/Makevars])
  181. #AC_CONFIG_SUBDIRS([src/depends/coin-Cbc])
  182. AC_OUTPUT