source: trunk/icedtea-web/acinclude.m4@ 443

Last change on this file since 443 was 429, checked in by dmik, 11 years ago

icedtea-web: Merge version 1.5.1 from vendor to trunk.

File size: 24.7 KB
Line 
1AC_DEFUN_ONCE([IT_CAN_HARDLINK_TO_SOURCE_TREE],
2[
3 AC_CACHE_CHECK([if we can hard link rather than copy from ${abs_top_srcdir}], it_cv_hardlink_src, [
4 if cp -l ${abs_top_srcdir}/README tmp.$$ >&AS_MESSAGE_LOG_FD 2>&1; then
5 it_cv_hardlink_src=yes;
6 else
7 it_cv_hardlink_src=no;
8 fi
9 rm -f tmp.$$
10 ])
11 AM_CONDITIONAL([SRC_DIR_HARDLINKABLE], test x"${it_cv_hardlink_src}" = "xyes")
12])
13
14AC_DEFUN_ONCE([IT_CP_SUPPORTS_REFLINK],
15[
16 AC_CACHE_CHECK([if cp supports --reflink], it_cv_reflink, [
17 touch tmp.$$
18 if cp --reflink=auto tmp.$$ tmp2.$$ >&AS_MESSAGE_LOG_FD 2>&1; then
19 it_cv_reflink=yes;
20 else
21 it_cv_reflink=no;
22 fi
23 rm -f tmp.$$ tmp2.$$
24 ])
25 AM_CONDITIONAL([CP_SUPPORTS_REFLINK], test x"${it_cv_reflink}" = "xyes")
26])
27
28AC_DEFUN_ONCE([IT_CHECK_FOR_JDK],
29[
30 AC_MSG_CHECKING([for a JDK home directory])
31 AC_ARG_WITH([jdk-home],
32 [AS_HELP_STRING([--with-jdk-home],
33 [jdk home directory \
34 (default is first predefined JDK found)])],
35 [
36 if test "x${withval}" = xyes
37 then
38 SYSTEM_JDK_DIR=
39 elif test "x${withval}" = xno
40 then
41 SYSTEM_JDK_DIR=
42 else
43 SYSTEM_JDK_DIR=${withval}
44 fi
45 ],
46 [
47 SYSTEM_JDK_DIR=
48 ])
49 if test -z "${SYSTEM_JDK_DIR}"; then
50 for dir in /usr/lib/jvm/java-openjdk /usr/lib/jvm/icedtea6 \
51 /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/openjdk \
52 /usr/lib/jvm/java-icedtea /usr/lib/jvm/java-gcj /usr/lib/jvm/gcj-jdk \
53 /usr/lib/jvm/cacao ; do
54 if test -d $dir; then
55 SYSTEM_JDK_DIR=$dir
56 break
57 fi
58 done
59 fi
60 AC_MSG_RESULT(${SYSTEM_JDK_DIR})
61 if ! test -d "${SYSTEM_JDK_DIR}"; then
62 AC_MSG_ERROR("A JDK home directory could not be found.")
63 fi
64 AC_SUBST(SYSTEM_JDK_DIR)
65])
66
67AC_DEFUN_ONCE([IT_CHECK_FOR_JRE],
68[
69 AC_REQUIRE([IT_CHECK_FOR_JDK])
70 AC_MSG_CHECKING([for a JRE home directory])
71 AC_ARG_WITH([jre-home],
72 [AS_HELP_STRING([--with-jre-home],
73 [jre home directory \
74 (default is the JRE under the JDK)])],
75 [
76 SYSTEM_JRE_DIR=${withval}
77 ],
78 [
79 SYSTEM_JRE_DIR=
80 ])
81 if test -z "${SYSTEM_JRE_DIR}" ; then
82 if test -d "${SYSTEM_JDK_DIR}/jre" ; then
83 SYSTEM_JRE_DIR="${SYSTEM_JDK_DIR}/jre"
84 fi
85 fi
86 AC_MSG_RESULT(${SYSTEM_JRE_DIR})
87 if ! test -d "${SYSTEM_JRE_DIR}"; then
88 AC_MSG_ERROR("A JRE home directory could not be found.")
89 fi
90 AC_SUBST(SYSTEM_JRE_DIR)
91])
92
93AC_DEFUN_ONCE([FIND_JAVAC],
94[
95 AC_REQUIRE([IT_CHECK_FOR_JDK])
96 JAVAC=${SYSTEM_JDK_DIR}/bin/javac
97 IT_FIND_JAVAC
98 IT_FIND_ECJ
99 IT_USING_ECJ
100
101 AC_SUBST(JAVAC)
102])
103
104AC_DEFUN([IT_FIND_ECJ],
105[
106 AC_ARG_WITH([ecj],
107 [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)],
108 [
109 if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
110 IT_CHECK_ECJ(${withval})
111 else
112 if test "x${withval}" != xno; then
113 IT_CHECK_ECJ
114 fi
115 fi
116 ],
117 [
118 IT_CHECK_ECJ
119 ])
120 if test "x${JAVAC}" = "x"; then
121 if test "x{ECJ}" != "x"; then
122 JAVAC="${ECJ} -nowarn"
123 fi
124 fi
125])
126
127AC_DEFUN([IT_CHECK_ECJ],
128[
129 if test "x$1" != x; then
130 if test -f "$1"; then
131 AC_MSG_CHECKING(for ecj)
132 ECJ="$1"
133 AC_MSG_RESULT(${ECJ})
134 else
135 AC_PATH_PROG(ECJ, "$1")
136 fi
137 else
138 AC_PATH_PROG(ECJ, "ecj")
139 if test -z "${ECJ}"; then
140 AC_PATH_PROG(ECJ, "ecj-3.1")
141 fi
142 if test -z "${ECJ}"; then
143 AC_PATH_PROG(ECJ, "ecj-3.2")
144 fi
145 if test -z "${ECJ}"; then
146 AC_PATH_PROG(ECJ, "ecj-3.3")
147 fi
148 fi
149])
150
151AC_DEFUN([IT_FIND_JAVAC],
152[
153 AC_ARG_WITH([javac],
154 [AS_HELP_STRING(--with-javac,bytecode compilation with javac)],
155 [
156 if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
157 IT_CHECK_JAVAC(${withval})
158 else
159 if test "x${withval}" != xno; then
160 IT_CHECK_JAVAC
161 fi
162 fi
163 ],
164 [
165 IT_CHECK_JAVAC
166 ])
167])
168
169AC_DEFUN([IT_CHECK_JAVAC],
170[
171 if test "x$1" != x; then
172 if test -f "$1"; then
173 AC_MSG_CHECKING(for javac)
174 JAVAC="$1"
175 AC_MSG_RESULT(${JAVAC})
176 else
177 AC_PATH_PROG(JAVAC, "$1")
178 fi
179 else
180 AC_PATH_PROG(JAVAC, "javac")
181 fi
182])
183
184AC_DEFUN([FIND_JAR],
185[
186 AC_REQUIRE([IT_CHECK_FOR_JDK])
187 AC_MSG_CHECKING([for jar])
188 AC_ARG_WITH([jar],
189 [AS_HELP_STRING(--with-jar,specify location of Java archive tool (jar))],
190 [
191 JAR="${withval}"
192 ],
193 [
194 JAR=${SYSTEM_JDK_DIR}/bin/jar
195 ])
196 if ! test -f "${JAR}"; then
197 AC_PATH_PROG(JAR, "${JAR}")
198 fi
199 if test -z "${JAR}"; then
200 AC_PATH_PROG(JAR, "gjar")
201 fi
202 if test -z "${JAR}"; then
203 AC_PATH_PROG(JAR, "jar")
204 fi
205 if test -z "${JAR}"; then
206 AC_MSG_ERROR("No Java archive tool was found.")
207 fi
208 AC_MSG_RESULT(${JAR})
209 AC_MSG_CHECKING([whether jar supports @<file> argument])
210 touch _config.txt
211 cat >_config.list <<EOF
212_config.txt
213EOF
214 if $JAR cf _config.jar @_config.list >&AS_MESSAGE_LOG_FD 2>&1; then
215 JAR_KNOWS_ATFILE=1
216 AC_MSG_RESULT(yes)
217 else
218 JAR_KNOWS_ATFILE=
219 AC_MSG_RESULT(no)
220 fi
221 AC_MSG_CHECKING([whether jar supports stdin file arguments])
222 if cat _config.list | $JAR cf@ _config.jar >&AS_MESSAGE_LOG_FD 2>&1; then
223 JAR_ACCEPTS_STDIN_LIST=1
224 AC_MSG_RESULT(yes)
225 else
226 JAR_ACCEPTS_STDIN_LIST=
227 AC_MSG_RESULT(no)
228 fi
229 rm -f _config.list _config.jar
230 AC_MSG_CHECKING([whether jar supports -J options at the end])
231 if $JAR cf _config.jar _config.txt -J-Xmx896m >&AS_MESSAGE_LOG_FD 2>&1; then
232 JAR_KNOWS_J_OPTIONS=1
233 AC_MSG_RESULT(yes)
234 else
235 JAR_KNOWS_J_OPTIONS=
236 AC_MSG_RESULT(no)
237 fi
238 rm -f _config.txt _config.jar
239 AC_SUBST(JAR)
240 AC_SUBST(JAR_KNOWS_ATFILE)
241 AC_SUBST(JAR_ACCEPTS_STDIN_LIST)
242 AC_SUBST(JAR_KNOWS_J_OPTIONS)
243])
244
245AC_DEFUN([FIND_ECJ_JAR],
246[
247 AC_REQUIRE([FIND_JAVAC])
248 AC_MSG_CHECKING([for an ecj JAR file])
249 AC_ARG_WITH([ecj-jar],
250 [AS_HELP_STRING(--with-ecj-jar,specify location of the ECJ jar)],
251 [
252 if test -f "${withval}"; then
253 ECJ_JAR="${withval}"
254 fi
255 ],
256 [
257 ECJ_JAR=
258 ])
259 if test -z "${ECJ_JAR}"; then
260 for jar in /usr/share/java/eclipse-ecj.jar \
261 /usr/share/java/ecj.jar \
262 /usr/share/eclipse-ecj-3.{2,3,4,5}/lib/ecj.jar; do
263 if test -e $jar; then
264 ECJ_JAR=$jar
265 break
266 fi
267 done
268 if test -z "${ECJ_JAR}"; then
269 ECJ_JAR=no
270 fi
271 fi
272 AC_MSG_RESULT(${ECJ_JAR})
273 if test "x${JAVAC}" = x && test "x${ECJ_JAR}" = "xno" ; then
274 AC_MSG_ERROR([cannot find a Java compiler or ecj JAR file, try --with-javac, --with-ecj or --with-ecj-jar])
275 fi
276 AC_SUBST(ECJ_JAR)
277])
278
279#
280# IT_FIND_OPTIONAL_JAR
281# --------------------
282# Find an optional jar required for building and running
283#
284# $1 : jar/feature name
285# $2 : used to set $2_JAR and WITH_$2
286# $3 (optional) : used to specify additional file paths for searching
287#
288# Sets $2_JAR to the jar location (or blank if not found)
289# Defines WITH_$2 if jar is found
290# Sets $2_AVAILABLE to "true" if jar is found (or "false" if not)
291#
292AC_DEFUN([IT_FIND_OPTIONAL_JAR],
293[
294 AC_MSG_CHECKING([for $1 jar])
295 AC_ARG_WITH([$1],
296 [AS_HELP_STRING(--with-$1,specify location of the $1 jar)],
297 [
298 case "${withval}" in
299 yes)
300 $2_JAR=yes
301 ;;
302 no)
303 $2_JAR=no
304 ;;
305 *)
306 if test -f "${withval}"; then
307 $2_JAR="${withval}"
308 elif test -z "${withval}"; then
309 $2_JAR=yes
310 else
311 AC_MSG_RESULT([not found])
312 AC_MSG_ERROR("The $1 jar ${withval} was not found.")
313 fi
314 ;;
315 esac
316 ],
317 [
318 $2_JAR=yes
319 ])
320 it_extra_paths_$1="$3"
321 if test "x${$2_JAR}" = "xyes"; then
322 for path in ${it_extra_paths_$1}; do
323 if test -f ${path}; then
324 $2_JAR=${path}
325 break
326 fi
327 done
328 fi
329 if test x"${$2_JAR}" = "xyes"; then
330 if test -f "/usr/share/java/$1.jar"; then
331 $2_JAR=/usr/share/java/$1.jar
332 fi
333 fi
334 if test x"${$2_JAR}" = "xyes"; then
335 $2_JAR=no
336 fi
337 AC_MSG_RESULT(${$2_JAR})
338 AM_CONDITIONAL(WITH_$2, test x"${$2_JAR}" != "xno")
339 # Clear $2_JAR if it doesn't contain a valid filename
340 if test x"${$2_JAR}" = "xno"; then
341 $2_JAR=
342 fi
343 if test -n "${$2_JAR}" ; then
344 $2_AVAILABLE=true
345 else
346 $2_AVAILABLE=false
347 fi
348 AC_SUBST($2_JAR)
349 AC_SUBST($2_AVAILABLE)
350])
351
352AC_DEFUN_ONCE([IT_CHECK_PLUGIN],
353[
354AC_MSG_CHECKING([whether to build the browser plugin])
355AC_ARG_ENABLE([plugin],
356 [AS_HELP_STRING([--disable-plugin],
357 [Disable compilation of browser plugin])],
358 [enable_plugin="${enableval}"], [enable_plugin="yes"])
359AC_MSG_RESULT(${enable_plugin})
360])
361
362AC_DEFUN_ONCE([IT_CHECK_PLUGIN_DEPENDENCIES],
363[
364dnl Check for plugin support headers and libraries.
365dnl FIXME: use unstable
366AC_REQUIRE([IT_CHECK_PLUGIN])
367if test "x${enable_plugin}" = "xyes" ; then
368 PKG_CHECK_MODULES(GLIB, glib-2.0)
369 AC_SUBST(GLIB_CFLAGS)
370 AC_SUBST(GLIB_LIBS)
371
372 PKG_CHECK_MODULES(MOZILLA, npapi-sdk, [
373 AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version],[
374 # XXX: use NPAPI versions instead
375 xulrunner_cv_collapsed_version=20000000
376 ])
377 ], [
378 PKG_CHECK_MODULES(MOZILLA, mozilla-plugin)
379 ])
380
381 AC_SUBST(MOZILLA_CFLAGS)
382 AC_SUBST(MOZILLA_LIBS)
383fi
384AM_CONDITIONAL(ENABLE_PLUGIN, test "x${enable_plugin}" = "xyes")
385])
386
387AC_DEFUN_ONCE([IT_CHECK_XULRUNNER_VERSION],
388[
389AC_REQUIRE([IT_CHECK_PLUGIN_DEPENDENCIES])
390if test "x${enable_plugin}" = "xyes"
391then
392 AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version],[
393 if pkg-config --modversion libxul >/dev/null 2>&1
394 then
395 xulrunner_cv_collapsed_version=`pkg-config --modversion libxul | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'`
396 elif pkg-config --modversion mozilla-plugin >/dev/null 2>&1
397 then
398 xulrunner_cv_collapsed_version=`pkg-config --modversion mozilla-plugin | awk -F. '{power=6; v=0; for (i=1; i <= NF; i++) {v += $i * 10 ^ power; power -=2}; print v}'`
399 else
400 AC_MSG_FAILURE([cannot determine xulrunner version])
401 fi])
402 AC_SUBST(MOZILLA_VERSION_COLLAPSED, $xulrunner_cv_collapsed_version)
403fi
404])
405
406AC_DEFUN_ONCE([IT_CHECK_FOR_TAGSOUP],
407[
408 AC_MSG_CHECKING([for tagsoup])
409 AC_ARG_WITH([tagsoup],
410 [AS_HELP_STRING([--with-tagsoup],
411 [tagsoup.jar])],
412 [
413 TAGSOUP_JAR=${withval}
414 ],
415 [
416 TAGSOUP_JAR=
417 ])
418 if test -z "${TAGSOUP_JAR}"; then
419 for dir in /usr/share/java /usr/local/share/java ; do
420 if test -f $dir/tagsoup.jar; then
421 TAGSOUP_JAR=$dir/tagsoup.jar
422 break
423 fi
424 done
425 fi
426 AC_MSG_RESULT(${TAGSOUP_JAR})
427 AC_SUBST(TAGSOUP_JAR)
428 AM_CONDITIONAL([HAVE_TAGSOUP], [test x$TAGSOUP_JAR != xno -a x$TAGSOUP_JAR != x ])
429])
430
431dnl Generic macro to check for a Java class
432dnl Takes the name of the class as an argument. The macro name
433dnl is usually the name of the class with '.'
434dnl replaced by '_' and all letters capitalised.
435dnl e.g. IT_CHECK_FOR_CLASS([JAVA_UTIL_SCANNER],[java.util.Scanner])
436dnl Test class has to be in sun.applet for some internal classes
437AC_DEFUN([IT_CHECK_FOR_CLASS],[
438AC_REQUIRE([IT_FIND_JAVAC])
439AC_REQUIRE([IT_FIND_JAVA])
440AC_CACHE_CHECK([if $2 is available], it_cv_$1, [
441CLASS=sun/applet/Test.java
442BYTECODE=$(echo $CLASS|sed 's#\.java##')
443mkdir -p tmp.$$/$(dirname $CLASS)
444cd tmp.$$
445cat << \EOF > $CLASS
446[/* [#]line __oline__ "configure" */
447package sun.applet;
448
449import $2;
450
451public class Test
452{
453 public static void main(String[] args)
454 throws Exception
455 {
456 System.out.println(Class.forName("$2"));
457 }
458}
459]
460EOF
461if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
462 if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
463 it_cv_$1=yes;
464 else
465 it_cv_$1=no;
466 fi
467else
468 it_cv_$1=no;
469fi
470])
471rm -f $CLASS *.class
472cd ..
473# should be rmdir but has to be rm -rf due to sun.applet usage
474rm -rf tmp.$$
475if test x"${it_cv_$1}" = "xno"; then
476 AC_MSG_ERROR([$2 not found.])
477fi
478AC_PROVIDE([$0])dnl
479])
480
481AC_DEFUN_ONCE([IT_CHECK_FOR_MERCURIAL],
482[
483 AC_PATH_TOOL([HG],[hg])
484 AC_SUBST([HG])
485])
486
487AC_DEFUN_ONCE([IT_OBTAIN_HG_REVISIONS],
488[
489 AC_REQUIRE([IT_CHECK_FOR_MERCURIAL])
490 ICEDTEA_REVISION="none";
491 if which ${HG} >&AS_MESSAGE_LOG_FD 2>&1; then
492 AC_MSG_CHECKING([for IcedTea Mercurial revision ID])
493 if test -e ${abs_top_srcdir}/.hg ; then
494 ICEDTEA_REVISION="r`(cd ${abs_top_srcdir}; ${HG} id -i)`" ;
495 fi ;
496 AC_MSG_RESULT([${ICEDTEA_REVISION}])
497 AC_SUBST([ICEDTEA_REVISION])
498 fi;
499 AM_CONDITIONAL([HAS_ICEDTEA_REVISION], test "x${ICEDTEA_REVISION}" != xnone)
500])
501
502AC_DEFUN_ONCE([IT_GET_PKGVERSION],
503[
504AC_MSG_CHECKING([for distribution package version])
505AC_ARG_WITH([pkgversion],
506 [AS_HELP_STRING([--with-pkgversion=PKG],
507 [Use PKG in the version string in addition to "IcedTea"])],
508 [case "$withval" in
509 yes) AC_MSG_ERROR([package version not specified]) ;;
510 no) PKGVERSION=none ;;
511 *) PKGVERSION="$withval" ;;
512 esac],
513 [PKGVERSION=none])
514AC_MSG_RESULT([${PKGVERSION}])
515AM_CONDITIONAL(HAS_PKGVERSION, test "x${PKGVERSION}" != "xnone")
516AC_SUBST(PKGVERSION)
517])
518
519AC_DEFUN_ONCE([IT_CHECK_GLIB_VERSION],[
520 PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0 >= 2.16],[],[AC_DEFINE([LEGACY_GLIB])])
521 ])
522
523AC_DEFUN_ONCE([IT_CHECK_XULRUNNER_MIMEDESCRIPTION_CONSTCHAR],
524[
525 AC_MSG_CHECKING([for legacy xulrunner api])
526 AC_LANG_PUSH(C++)
527 CXXFLAGS_BACKUP="$CXXFLAGS"
528 CXXFLAGS="$CXXFLAGS"" ""$MOZILLA_CFLAGS"
529 AC_COMPILE_IFELSE([
530 AC_LANG_SOURCE([[#include <npfunctions.h>
531 const char* NP_GetMIMEDescription ()
532 {return (char*) "yap!";}]])
533 ],[
534 AC_MSG_RESULT(no)
535 ],[
536 AC_MSG_RESULT(yes)
537 AC_DEFINE([LEGACY_XULRUNNERAPI])
538 ])
539 CXXFLAGS="$CXXFLAGS_BACKUP"
540 AC_LANG_POP(C++)
541])
542
543AC_DEFUN_ONCE([IT_CHECK_XULRUNNER_REQUIRES_C11],
544[
545 AC_MSG_CHECKING([for xulrunner enforcing C++11 standard])
546 AC_LANG_PUSH(C++)
547 CXXFLAGS_BACKUP="$CXXFLAGS"
548 CXXFLAGS="$CXXFLAGS"" ""$MOZILLA_CFLAGS"
549 AC_COMPILE_IFELSE([
550 AC_LANG_SOURCE([[#include <npapi.h>
551 #include <npruntime.h>
552 void setnpptr (NPVariant *result)
553 { VOID_TO_NPVARIANT(*result);}]])
554 ],[
555 AC_MSG_RESULT(no)
556 CXXFLAGS="$CXXFLAGS_BACKUP"
557 ],[
558 AC_MSG_RESULT(yes)
559 CXXFLAGS="$CXXFLAGS_BACKUP -std=c++11"
560 ])
561 AC_LANG_POP(C++)
562])
563
564AC_DEFUN([IT_CHECK_WITH_GCJ],
565[
566 AC_MSG_CHECKING([whether to compile ecj natively])
567 AC_ARG_WITH([gcj],
568 [AS_HELP_STRING(--with-gcj,location of gcj for natively compiling ecj)],
569 [
570 GCJ="${withval}"
571 ],
572 [
573 GCJ="no"
574 ])
575 AC_MSG_RESULT([${GCJ}])
576 if test "x${GCJ}" = xyes; then
577 AC_PATH_TOOL([GCJ],[gcj])
578 fi
579 AC_SUBST([GCJ])
580])
581
582AC_DEFUN([IT_USING_ECJ],[
583AC_CACHE_CHECK([if we are using ecj as javac], it_cv_ecj, [
584if $JAVAC -version 2>&1| grep '^Eclipse' >&AS_MESSAGE_LOG_FD ; then
585 it_cv_ecj=yes;
586else
587 it_cv_ecj=no;
588fi
589])
590USING_ECJ=$it_cv_ecj
591AC_SUBST(USING_ECJ)
592AC_PROVIDE([$0])dnl
593])
594
595AC_DEFUN([FIND_TOOL],
596[AC_PATH_TOOL([$1],[$2])
597 if test x"$$1" = x ; then
598 AC_MSG_ERROR([$2 program not found in PATH])
599 fi
600 AC_SUBST([$1])
601])
602
603AC_DEFUN([IT_SET_ARCH_SETTINGS],
604[
605 case "${host_cpu}" in
606 x86_64)
607 BUILD_ARCH_DIR=amd64
608 INSTALL_ARCH_DIR=amd64
609 JRE_ARCH_DIR=amd64
610 ARCHFLAG="-m64"
611 ;;
612 i?86)
613 BUILD_ARCH_DIR=i586
614 INSTALL_ARCH_DIR=i386
615 JRE_ARCH_DIR=i386
616 ARCH_PREFIX=${LINUX32}
617 ARCHFLAG="-m32"
618 ;;
619 alpha*)
620 BUILD_ARCH_DIR=alpha
621 INSTALL_ARCH_DIR=alpha
622 JRE_ARCH_DIR=alpha
623 ;;
624 arm*)
625 BUILD_ARCH_DIR=arm
626 INSTALL_ARCH_DIR=arm
627 JRE_ARCH_DIR=arm
628 ;;
629 mips)
630 BUILD_ARCH_DIR=mips
631 INSTALL_ARCH_DIR=mips
632 JRE_ARCH_DIR=mips
633 ;;
634 mipsel)
635 BUILD_ARCH_DIR=mipsel
636 INSTALL_ARCH_DIR=mipsel
637 JRE_ARCH_DIR=mipsel
638 ;;
639 powerpc)
640 BUILD_ARCH_DIR=ppc
641 INSTALL_ARCH_DIR=ppc
642 JRE_ARCH_DIR=ppc
643 ARCH_PREFIX=${LINUX32}
644 ARCHFLAG="-m32"
645 ;;
646 powerpc64)
647 BUILD_ARCH_DIR=ppc64
648 INSTALL_ARCH_DIR=ppc64
649 JRE_ARCH_DIR=ppc64
650 ARCHFLAG="-m64"
651 ;;
652 sparc)
653 BUILD_ARCH_DIR=sparc
654 INSTALL_ARCH_DIR=sparc
655 JRE_ARCH_DIR=sparc
656 ARCH_PREFIX=${LINUX32}
657 ARCHFLAG="-m32"
658 ;;
659 sparc64)
660 BUILD_ARCH_DIR=sparcv9
661 INSTALL_ARCH_DIR=sparcv9
662 JRE_ARCH_DIR=sparc64
663 ARCHFLAG="-m64"
664 ;;
665 s390)
666 BUILD_ARCH_DIR=s390
667 INSTALL_ARCH_DIR=s390
668 JRE_ARCH_DIR=s390
669 ARCH_PREFIX=${LINUX32}
670 ARCHFLAG="-m31"
671 ;;
672 s390x)
673 BUILD_ARCH_DIR=s390x
674 INSTALL_ARCH_DIR=s390x
675 JRE_ARCH_DIR=s390x
676 ARCHFLAG="-m64"
677 ;;
678 sh*)
679 BUILD_ARCH_DIR=sh
680 INSTALL_ARCH_DIR=sh
681 JRE_ARCH_DIR=sh
682 ;;
683 *)
684 BUILD_ARCH_DIR=`uname -m`
685 INSTALL_ARCH_DIR=$BUILD_ARCH_DIR
686 JRE_ARCH_DIR=$INSTALL_ARCH_DIR
687 ;;
688 esac
689 AC_SUBST(BUILD_ARCH_DIR)
690 AC_SUBST(INSTALL_ARCH_DIR)
691 AC_SUBST(JRE_ARCH_DIR)
692 AC_SUBST(ARCH_PREFIX)
693 AC_SUBST(ARCHFLAG)
694])
695
696AC_DEFUN_ONCE([IT_FIND_JAVA],
697[
698 AC_REQUIRE([IT_CHECK_FOR_JRE])
699 AC_MSG_CHECKING([for a Java virtual machine])
700 AC_ARG_WITH([java],
701 [AS_HELP_STRING(--with-java,specify location of the 1.5 java vm)],
702 [
703 JAVA="${withval}"
704 ],
705 [
706 JAVA="${SYSTEM_JRE_DIR}/bin/java"
707 ])
708 if ! test -f "${JAVA}"; then
709 AC_PATH_PROG(JAVA, "${JAVA}")
710 fi
711 if test -z "${JAVA}"; then
712 AC_PATH_PROG(JAVA, "java")
713 fi
714 if test -z "${JAVA}"; then
715 AC_PATH_PROG(JAVA, "gij")
716 fi
717 if test -z "${JAVA}"; then
718 AC_MSG_ERROR("A 1.5-compatible Java VM is required.")
719 fi
720 AC_MSG_RESULT(${JAVA})
721 AC_SUBST(JAVA)
722 JAVA_VERSION=`$JAVA -version 2>&1 | sed -n '1s/@<:@^"@:>@*"\(.*\)"$/\1/p'`
723 HAVE_JAVA7=`echo $JAVA_VERSION | awk '{if ($(0) >= 1.7) print "yes"}'`
724 if ! test -z "$HAVE_JAVA7" ; then
725 VERSION_DEFS='-DHAVE_JAVA7'
726 fi
727
728 AM_CONDITIONAL([HAVE_JAVA7], test x"${HAVE_JAVA7}" = "xyes" )
729 AC_SUBST(VERSION_DEFS)
730])
731
732AC_DEFUN_ONCE([IT_FIND_KEYTOOL],
733[
734 AC_REQUIRE([IT_CHECK_FOR_JDK])
735 AC_MSG_CHECKING([for keytool])
736 AC_ARG_WITH([keytool],
737 [AS_HELP_STRING(--with-keytool,specify location of keytool for signed part of run-netx-dist)],
738 [
739 if test "${withval}" = "yes" ; then
740 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool
741 else
742 KEYTOOL="${withval}"
743 fi
744 ],
745 [
746 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool
747 ])
748 if ! test -f "${KEYTOOL}"; then
749 AC_PATH_PROG(KEYTOOL, keytool)
750 fi
751 if ! test -f "${KEYTOOL}"; then
752 KEYTOOL=""
753 fi
754 if test -z "${KEYTOOL}" ; then
755 AC_MSG_WARN("keytool not found so signed part of run-netx-dist will fail")
756 fi
757 AC_MSG_RESULT(${KEYTOOL})
758 AC_SUBST(KEYTOOL)
759])
760
761AC_DEFUN_ONCE([IT_FIND_JARSIGNER],
762[
763 AC_REQUIRE([IT_CHECK_FOR_JDK])
764 AC_MSG_CHECKING([for jarsigner])
765 AC_ARG_WITH([jarsigner],
766 [AS_HELP_STRING(--with-jarsigner,specify location of jarsigner for signed part od run-netx-dist)],
767 [
768 if test "${withval}" = "yes" ; then
769 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner
770 else
771 JARSIGNER="${withval}"
772 fi
773 ],
774 [
775 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner
776 ])
777 if ! test -f "${JARSIGNER}"; then
778 AC_PATH_PROG(JARSIGNER, jarsigner,"")
779 fi
780 if ! test -f "${JARSIGNER}"; then
781 JARSIGNER=""
782 fi
783 if test -z "${JARSIGNER}"; then
784 AC_MSG_WARN("jarsigner not found so signed part of run-netx-dist will fail")
785 fi
786 AC_MSG_RESULT(${JARSIGNER})
787 AC_SUBST(JARSIGNER)
788])
789
790AC_DEFUN([IT_FIND_JAVADOC],
791[
792 AC_REQUIRE([IT_CHECK_FOR_JDK])
793 AC_MSG_CHECKING([for javadoc])
794 AC_ARG_WITH([javadoc],
795 [AS_HELP_STRING(--with-javadoc,specify location of Java documentation tool (javadoc))],
796 [
797 JAVADOC="${withval}"
798 ],
799 [
800 JAVADOC=${SYSTEM_JDK_DIR}/bin/javadoc
801 ])
802 if ! test -f "${JAVADOC}"; then
803 AC_PATH_PROG(JAVADOC, "${JAVADOC}")
804 fi
805 if test -z "${JAVADOC}"; then
806 AC_PATH_PROG(JAVADOC, "javadoc")
807 fi
808 if test -z "${JAVADOC}"; then
809 AC_PATH_PROG(JAVADOC, "gjdoc")
810 fi
811 if test -z "${JAVADOC}" && test "x$ENABLE_DOCS" = "xyes"; then
812 AC_MSG_ERROR("No Java documentation tool was found.")
813 fi
814 AC_MSG_RESULT(${JAVADOC})
815 AC_MSG_CHECKING([whether javadoc supports -J options])
816 CLASS=pkg/Test.java
817 mkdir tmp.$$
818 cd tmp.$$
819 mkdir pkg
820 cat << \EOF > $CLASS
821[/* [#]line __oline__ "configure" */
822package pkg;
823
824public class Test
825{
826 /**
827 * Does stuff.
828 *
829 *
830 * @param args arguments from cli.
831 */
832 public static void main(String[] args)
833 {
834 System.out.println("Hello World!");
835 }
836}
837]
838EOF
839 if $JAVADOC -J-Xmx896m pkg >&AS_MESSAGE_LOG_FD 2>&1; then
840 JAVADOC_KNOWS_J_OPTIONS=yes
841 else
842 JAVADOC_KNOWS_J_OPTIONS=no
843 fi
844 cd ..
845 rm -rf tmp.$$
846 AC_MSG_RESULT([${JAVADOC_KNOWS_J_OPTIONS}])
847 AC_SUBST(JAVADOC)
848 AC_SUBST(JAVADOC_KNOWS_J_OPTIONS)
849 AM_CONDITIONAL([JAVADOC_SUPPORTS_J_OPTIONS], test x"${JAVADOC_KNOWS_J_OPTIONS}" = "xyes")
850])
851
852dnl Checks that sun.applet.AppletViewerPanel is available
853dnl and public (via the patch in IcedTea6, applet_hole.patch)
854dnl Can be removed when that is upstream or unneeded
855AC_DEFUN([IT_CHECK_FOR_SUN_APPLET_ACCESSIBILITY],[
856AC_REQUIRE([IT_FIND_JAVAC])
857AC_REQUIRE([IT_FIND_JAVA])
858AC_CACHE_CHECK([if selected classes, fields and methods from sun.applet are accessible via reflection], it_cv_applet_hole, [
859CLASS=TestAppletViewer.java
860BYTECODE=$(echo $CLASS|sed 's#\.java##')
861mkdir -p tmp.$$
862cd tmp.$$
863cat << \EOF > $CLASS
864[/* [#]line __oline__ "configure" */
865import java.lang.reflect.*;
866
867public class TestAppletViewer
868{
869 public static void main(String[] args) throws Exception
870 {
871 Class<?> ap = Class.forName("sun.applet.AppletPanel");
872 Class<?> avp = Class.forName("sun.applet.AppletViewerPanel");
873 Field f1 = ap.getDeclaredField("applet");
874 Field f2 = avp.getDeclaredField("documentURL");
875 Method m1 = ap.getDeclaredMethod("run");
876 Method m2 = ap.getDeclaredMethod("runLoader");
877 Field f3 = avp.getDeclaredField("baseURL");
878 }
879}
880]
881EOF
882if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
883 if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
884 it_cv_applet_hole=yes;
885 else
886 it_cv_applet_hole=no;
887 fi
888else
889 it_cv_applet_hole=no;
890fi
891])
892rm -f $CLASS *.class
893cd ..
894rmdir tmp.$$
895if test x"${it_cv_applet_hole}" = "xno"; then
896 AC_MSG_ERROR([Some of the checked items is not avaiable. Check logs.])
897fi
898AC_PROVIDE([$0])dnl
899])
900
901AC_DEFUN_ONCE([IT_SET_VERSION],
902[
903 AC_REQUIRE([IT_OBTAIN_HG_REVISIONS])
904 AC_REQUIRE([IT_GET_PKGVERSION])
905 AC_MSG_CHECKING([what version string to use])
906 if test "x${ICEDTEA_REVISION}" != xnone; then
907 ICEDTEA_REV="+${ICEDTEA_REVISION}"
908 fi
909 if test "x${PKGVERSION}" != "xnone"; then
910 ICEDTEA_PKG=" (${PKGVERSION})"
911 fi
912 FULL_VERSION="${PACKAGE_VERSION}${ICEDTEA_REV}${ICEDTEA_PKG}"
913 AC_MSG_RESULT([${FULL_VERSION}])
914 AC_SUBST([FULL_VERSION])
915])
916
917dnl Allows you to configure (enable/disable/set path to) the browser
918dnl REQUIRED Parameters:
919dnl [browser name, variable to store path, default command to run browser (if not provided, assume it's the same as the browser name]
920AC_DEFUN([IT_FIND_BROWSER],
921[
922 AC_ARG_WITH([$1],
923 [AS_HELP_STRING(--with-$1,specify the location of $1)],
924 [
925 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then
926 $2=""
927 elif test -f "${withval}" ; then
928 $2="${withval}"
929 else
930 AC_MSG_CHECKING([for $1])
931 AC_MSG_RESULT([not found])
932 AC_MSG_FAILURE([invalid location specified to $1: ${withval}])
933 fi
934 ],
935 [
936 withval="yes"
937 ])
938
939 if test -f "${$2}"; then
940 AC_MSG_CHECKING([for $1])
941 AC_MSG_RESULT([${$2}])
942 elif test "${withval}" != "no"; then
943 if test $# -gt 2; then
944 AC_PATH_TOOL([$2], [$3], [], [])
945 else
946 AC_PATH_TOOL([$2], [$1], [], [])
947 fi
948 else
949 AC_MSG_CHECKING([for $1])
950 AC_MSG_RESULT([no])
951 fi
952])
953
954AC_DEFUN_ONCE([IT_SET_GLOBAL_BROWSERTESTS_BEHAVIOUR],
955[
956 AC_MSG_CHECKING([how browser test will be run])
957 AC_ARG_WITH([browser-tests],
958 [AS_HELP_STRING([--with-browser-tests],
959 [yes - as defined (default), no - all browser tests will be skipped, one - all "mutiple browsers" test will behave as "one" test, all - all browser tests will be run for all set browsers])],
960 [
961 BROWSER_SWITCH=${withval}
962 ],
963 [
964 BROWSER_SWITCH="yes"
965 ])
966 D_PARAM_PART="-Dmodified.browsers.run"
967 case "$BROWSER_SWITCH" in
968 "yes" )
969 BROWSER_TESTS_MODIFICATION="" ;;
970 "no" )
971 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=ignore" ;;
972 "one" )
973 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=one" ;;
974 "all" )
975 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=all" ;;
976 *)
977 AC_MSG_ERROR([unknown valkue of with-browser-tests ($BROWSER_SWITCH), so not use (yes) or set yes|no|one|all])
978 esac
979 AC_MSG_RESULT(${BROWSER_SWITCH})
980 AC_SUBST(BROWSER_TESTS_MODIFICATION)
981])
Note: See TracBrowser for help on using the repository browser.