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

Last change on this file since 418 was 418, checked in by dmik, 13 years ago

Merge icedtea-web v1.3 to trunk.

File size: 24.6 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
362dnl ITW_GTK_CHECK_VERSION([gtk version])
363AC_DEFUN([ITW_GTK_CHECK_VERSION],
364[
365 AC_MSG_CHECKING([for GTK$1 version])
366 GTK_VER=`$PKG_CONFIG --modversion gtk+-$1.0`
367 AC_MSG_RESULT([$GTK_VER])
368])
369
370dnl ITW_GTK_CHECK([gtk version])
371AC_DEFUN([ITW_GTK_CHECK],
372[
373 case "$1" in
374 default)
375 PKG_CHECK_MODULES(GTK, gtk+-3.0,
376 [ITW_GTK_CHECK_VERSION([3])],
377 [PKG_CHECK_MODULES(GTK, gtk+-2.0,
378 [ITW_GTK_CHECK_VERSION([2])],
379 [AC_MSG_ERROR([GTK $1 not found])]
380 )]
381 )
382 ;;
383 *)
384 PKG_CHECK_MODULES(GTK, gtk+-$1.0,
385 [ITW_GTK_CHECK_VERSION([$1])],
386 [AC_MSG_ERROR([GTK $1 not found])]
387 )
388 ;;
389 esac
390])
391
392AC_DEFUN_ONCE([IT_CHECK_PLUGIN_DEPENDENCIES],
393[
394dnl Check for plugin support headers and libraries.
395dnl FIXME: use unstable
396AC_REQUIRE([IT_CHECK_PLUGIN])
397if test "x${enable_plugin}" = "xyes" ; then
398 AC_ARG_WITH([gtk],
399 [AS_HELP_STRING([--with-gtk=[2|3|default]],
400 [the GTK+ version to use (default: 3)])],
401 [case "$with_gtk" in
402 2|3|default) ;;
403 *) AC_MSG_ERROR([invalid GTK version specified]) ;;
404 esac],
405 [with_gtk=default])
406 ITW_GTK_CHECK([$with_gtk])
407 PKG_CHECK_MODULES(GLIB, glib-2.0)
408 AC_SUBST(GLIB_CFLAGS)
409 AC_SUBST(GLIB_LIBS)
410 AC_SUBST(GTK_CFLAGS)
411 AC_SUBST(GTK_LIBS)
412
413 PKG_CHECK_MODULES(MOZILLA, npapi-sdk, [
414 AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version],[
415 # XXX: use NPAPI versions instead
416 xulrunner_cv_collapsed_version=20000000
417 ])
418 ], [
419 PKG_CHECK_MODULES(MOZILLA, mozilla-plugin)
420 ])
421
422 AC_SUBST(MOZILLA_CFLAGS)
423 AC_SUBST(MOZILLA_LIBS)
424fi
425AM_CONDITIONAL(ENABLE_PLUGIN, test "x${enable_plugin}" = "xyes")
426])
427
428AC_DEFUN_ONCE([IT_CHECK_XULRUNNER_VERSION],
429[
430AC_REQUIRE([IT_CHECK_PLUGIN_DEPENDENCIES])
431if test "x${enable_plugin}" = "xyes"
432then
433 AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version],[
434 if pkg-config --modversion libxul >/dev/null 2>&1
435 then
436 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}'`
437 elif pkg-config --modversion mozilla-plugin >/dev/null 2>&1
438 then
439 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}'`
440 else
441 AC_MSG_FAILURE([cannot determine xulrunner version])
442 fi])
443 AC_SUBST(MOZILLA_VERSION_COLLAPSED, $xulrunner_cv_collapsed_version)
444fi
445])
446
447dnl Generic macro to check for a Java class
448dnl Takes the name of the class as an argument. The macro name
449dnl is usually the name of the class with '.'
450dnl replaced by '_' and all letters capitalised.
451dnl e.g. IT_CHECK_FOR_CLASS([JAVA_UTIL_SCANNER],[java.util.Scanner])
452dnl Test class has to be in sun.applet for some internal classes
453AC_DEFUN([IT_CHECK_FOR_CLASS],[
454AC_REQUIRE([IT_FIND_JAVAC])
455AC_REQUIRE([IT_FIND_JAVA])
456AC_CACHE_CHECK([if $2 is available], it_cv_$1, [
457CLASS=sun/applet/Test.java
458BYTECODE=$(echo $CLASS|sed 's#\.java##')
459mkdir -p tmp.$$/$(dirname $CLASS)
460cd tmp.$$
461cat << \EOF > $CLASS
462[/* [#]line __oline__ "configure" */
463package sun.applet;
464
465import $2;
466
467public class Test
468{
469 public static void main(String[] args)
470 throws Exception
471 {
472 System.out.println(Class.forName("$2"));
473 }
474}
475]
476EOF
477if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
478 if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
479 it_cv_$1=yes;
480 else
481 it_cv_$1=no;
482 fi
483else
484 it_cv_$1=no;
485fi
486])
487rm -f $CLASS *.class
488cd ..
489# should be rmdir but has to be rm -rf due to sun.applet usage
490rm -rf tmp.$$
491if test x"${it_cv_$1}" = "xno"; then
492 AC_MSG_ERROR([$2 not found.])
493fi
494AC_PROVIDE([$0])dnl
495])
496
497AC_DEFUN_ONCE([IT_CHECK_FOR_MERCURIAL],
498[
499 AC_PATH_TOOL([HG],[hg])
500 AC_SUBST([HG])
501])
502
503AC_DEFUN_ONCE([IT_OBTAIN_HG_REVISIONS],
504[
505 AC_REQUIRE([IT_CHECK_FOR_MERCURIAL])
506 ICEDTEA_REVISION="none";
507 if which ${HG} >&AS_MESSAGE_LOG_FD 2>&1; then
508 AC_MSG_CHECKING([for IcedTea Mercurial revision ID])
509 if test -e ${abs_top_srcdir}/.hg ; then
510 ICEDTEA_REVISION="r`(cd ${abs_top_srcdir}; ${HG} id -i)`" ;
511 fi ;
512 AC_MSG_RESULT([${ICEDTEA_REVISION}])
513 AC_SUBST([ICEDTEA_REVISION])
514 fi;
515 AM_CONDITIONAL([HAS_ICEDTEA_REVISION], test "x${ICEDTEA_REVISION}" != xnone)
516])
517
518AC_DEFUN_ONCE([IT_GET_PKGVERSION],
519[
520AC_MSG_CHECKING([for distribution package version])
521AC_ARG_WITH([pkgversion],
522 [AS_HELP_STRING([--with-pkgversion=PKG],
523 [Use PKG in the version string in addition to "IcedTea"])],
524 [case "$withval" in
525 yes) AC_MSG_ERROR([package version not specified]) ;;
526 no) PKGVERSION=none ;;
527 *) PKGVERSION="$withval" ;;
528 esac],
529 [PKGVERSION=none])
530AC_MSG_RESULT([${PKGVERSION}])
531AM_CONDITIONAL(HAS_PKGVERSION, test "x${PKGVERSION}" != "xnone")
532AC_SUBST(PKGVERSION)
533])
534
535AC_DEFUN_ONCE([IT_CHECK_GLIB_VERSION],[
536 PKG_CHECK_MODULES([GLIB2_V_216],[glib-2.0 >= 2.16],[],[AC_DEFINE([LEGACY_GLIB])])
537 ])
538
539AC_DEFUN_ONCE([IT_CHECK_XULRUNNER_API_VERSION],
540[
541 AC_MSG_CHECKING([for legacy xulrunner api])
542 AC_LANG_PUSH(C++)
543 CXXFLAGS_BACKUP=$CXXFLAGS
544 CXXFLAGS=$CXXFLAGS" "$MOZILLA_CFLAGS
545 AC_TRY_COMPILE([
546 #include <npfunctions.h>
547 const char* NP_GetMIMEDescription ()
548 {return (char*) "yap!";}
549 ],[],[
550 AC_MSG_RESULT(no)
551 ],[
552 AC_MSG_RESULT(yes)
553 AC_DEFINE([LEGACY_XULRUNNERAPI])
554 ])
555 CXXFLAGS=$CXXFLAGS_BACKUP
556 AC_LANG_POP(C++)
557])
558
559AC_DEFUN([IT_CHECK_WITH_GCJ],
560[
561 AC_MSG_CHECKING([whether to compile ecj natively])
562 AC_ARG_WITH([gcj],
563 [AS_HELP_STRING(--with-gcj,location of gcj for natively compiling ecj)],
564 [
565 GCJ="${withval}"
566 ],
567 [
568 GCJ="no"
569 ])
570 AC_MSG_RESULT([${GCJ}])
571 if test "x${GCJ}" = xyes; then
572 AC_PATH_TOOL([GCJ],[gcj])
573 fi
574 AC_SUBST([GCJ])
575])
576
577AC_DEFUN([IT_USING_ECJ],[
578AC_CACHE_CHECK([if we are using ecj as javac], it_cv_ecj, [
579if $JAVAC -version 2>&1| grep '^Eclipse' >&AS_MESSAGE_LOG_FD ; then
580 it_cv_ecj=yes;
581else
582 it_cv_ecj=no;
583fi
584])
585USING_ECJ=$it_cv_ecj
586AC_SUBST(USING_ECJ)
587AC_PROVIDE([$0])dnl
588])
589
590AC_DEFUN([FIND_TOOL],
591[AC_PATH_TOOL([$1],[$2])
592 if test x"$$1" = x ; then
593 AC_MSG_ERROR([$2 program not found in PATH])
594 fi
595 AC_SUBST([$1])
596])
597
598AC_DEFUN([IT_SET_ARCH_SETTINGS],
599[
600 case "${host_cpu}" in
601 x86_64)
602 BUILD_ARCH_DIR=amd64
603 INSTALL_ARCH_DIR=amd64
604 JRE_ARCH_DIR=amd64
605 ARCHFLAG="-m64"
606 ;;
607 i?86)
608 BUILD_ARCH_DIR=i586
609 INSTALL_ARCH_DIR=i386
610 JRE_ARCH_DIR=i386
611 ARCH_PREFIX=${LINUX32}
612 ARCHFLAG="-m32"
613 ;;
614 alpha*)
615 BUILD_ARCH_DIR=alpha
616 INSTALL_ARCH_DIR=alpha
617 JRE_ARCH_DIR=alpha
618 ;;
619 arm*)
620 BUILD_ARCH_DIR=arm
621 INSTALL_ARCH_DIR=arm
622 JRE_ARCH_DIR=arm
623 ;;
624 mips)
625 BUILD_ARCH_DIR=mips
626 INSTALL_ARCH_DIR=mips
627 JRE_ARCH_DIR=mips
628 ;;
629 mipsel)
630 BUILD_ARCH_DIR=mipsel
631 INSTALL_ARCH_DIR=mipsel
632 JRE_ARCH_DIR=mipsel
633 ;;
634 powerpc)
635 BUILD_ARCH_DIR=ppc
636 INSTALL_ARCH_DIR=ppc
637 JRE_ARCH_DIR=ppc
638 ARCH_PREFIX=${LINUX32}
639 ARCHFLAG="-m32"
640 ;;
641 powerpc64)
642 BUILD_ARCH_DIR=ppc64
643 INSTALL_ARCH_DIR=ppc64
644 JRE_ARCH_DIR=ppc64
645 ARCHFLAG="-m64"
646 ;;
647 sparc)
648 BUILD_ARCH_DIR=sparc
649 INSTALL_ARCH_DIR=sparc
650 JRE_ARCH_DIR=sparc
651 ARCH_PREFIX=${LINUX32}
652 ARCHFLAG="-m32"
653 ;;
654 sparc64)
655 BUILD_ARCH_DIR=sparcv9
656 INSTALL_ARCH_DIR=sparcv9
657 JRE_ARCH_DIR=sparc64
658 ARCHFLAG="-m64"
659 ;;
660 s390)
661 BUILD_ARCH_DIR=s390
662 INSTALL_ARCH_DIR=s390
663 JRE_ARCH_DIR=s390
664 ARCH_PREFIX=${LINUX32}
665 ARCHFLAG="-m31"
666 ;;
667 s390x)
668 BUILD_ARCH_DIR=s390x
669 INSTALL_ARCH_DIR=s390x
670 JRE_ARCH_DIR=s390x
671 ARCHFLAG="-m64"
672 ;;
673 sh*)
674 BUILD_ARCH_DIR=sh
675 INSTALL_ARCH_DIR=sh
676 JRE_ARCH_DIR=sh
677 ;;
678 *)
679 BUILD_ARCH_DIR=`uname -m`
680 INSTALL_ARCH_DIR=$BUILD_ARCH_DIR
681 JRE_ARCH_DIR=$INSTALL_ARCH_DIR
682 ;;
683 esac
684 AC_SUBST(BUILD_ARCH_DIR)
685 AC_SUBST(INSTALL_ARCH_DIR)
686 AC_SUBST(JRE_ARCH_DIR)
687 AC_SUBST(ARCH_PREFIX)
688 AC_SUBST(ARCHFLAG)
689])
690
691AC_DEFUN_ONCE([IT_FIND_JAVA],
692[
693 AC_REQUIRE([IT_CHECK_FOR_JRE])
694 AC_MSG_CHECKING([for a Java virtual machine])
695 AC_ARG_WITH([java],
696 [AS_HELP_STRING(--with-java,specify location of the 1.5 java vm)],
697 [
698 JAVA="${withval}"
699 ],
700 [
701 JAVA="${SYSTEM_JRE_DIR}/bin/java"
702 ])
703 if ! test -f "${JAVA}"; then
704 AC_PATH_PROG(JAVA, "${JAVA}")
705 fi
706 if test -z "${JAVA}"; then
707 AC_PATH_PROG(JAVA, "java")
708 fi
709 if test -z "${JAVA}"; then
710 AC_PATH_PROG(JAVA, "gij")
711 fi
712 if test -z "${JAVA}"; then
713 AC_MSG_ERROR("A 1.5-compatible Java VM is required.")
714 fi
715 AC_MSG_RESULT(${JAVA})
716 AC_SUBST(JAVA)
717 JAVA_VERSION=`$JAVA -version 2>&1 | sed -n '1s/@<:@^"@:>@*"\(.*\)"$/\1/p'`
718 case "${JAVA_VERSION}" in
719 1.7*) VERSION_DEFS='-DHAVE_JAVA7';;
720 esac
721 AC_SUBST(VERSION_DEFS)
722])
723
724AC_DEFUN_ONCE([IT_FIND_KEYTOOL],
725[
726 AC_REQUIRE([IT_CHECK_FOR_JDK])
727 AC_MSG_CHECKING([for keytool])
728 AC_ARG_WITH([keytool],
729 [AS_HELP_STRING(--with-keytool,specify location of keytool for signed part of run-netx-dist)],
730 [
731 if test "${withval}" = "yes" ; then
732 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool
733 else
734 KEYTOOL="${withval}"
735 fi
736 ],
737 [
738 KEYTOOL=${SYSTEM_JDK_DIR}/bin/keytool
739 ])
740 if ! test -f "${KEYTOOL}"; then
741 AC_PATH_PROG(KEYTOOL, keytool)
742 fi
743 if ! test -f "${KEYTOOL}"; then
744 KEYTOOL=""
745 fi
746 if test -z "${KEYTOOL}" ; then
747 AC_MSG_WARN("keytool not found so signed part of run-netx-dist will fail")
748 fi
749 AC_MSG_RESULT(${KEYTOOL})
750 AC_SUBST(KEYTOOL)
751])
752
753AC_DEFUN_ONCE([IT_FIND_JARSIGNER],
754[
755 AC_REQUIRE([IT_CHECK_FOR_JDK])
756 AC_MSG_CHECKING([for jarsigner])
757 AC_ARG_WITH([jarsigner],
758 [AS_HELP_STRING(--with-jarsigner,specify location of jarsigner for signed part od run-netx-dist)],
759 [
760 if test "${withval}" = "yes" ; then
761 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner
762 else
763 JARSIGNER="${withval}"
764 fi
765 ],
766 [
767 JARSIGNER=${SYSTEM_JDK_DIR}/bin/jarsigner
768 ])
769 if ! test -f "${JARSIGNER}"; then
770 AC_PATH_PROG(JARSIGNER, jarsigner,"")
771 fi
772 if ! test -f "${JARSIGNER}"; then
773 JARSIGNER=""
774 fi
775 if test -z "${JARSIGNER}"; then
776 AC_MSG_WARN("jarsigner not found so signed part of run-netx-dist will fail")
777 fi
778 AC_MSG_RESULT(${JARSIGNER})
779 AC_SUBST(JARSIGNER)
780])
781
782AC_DEFUN([IT_FIND_JAVADOC],
783[
784 AC_REQUIRE([IT_CHECK_FOR_JDK])
785 AC_MSG_CHECKING([for javadoc])
786 AC_ARG_WITH([javadoc],
787 [AS_HELP_STRING(--with-javadoc,specify location of Java documentation tool (javadoc))],
788 [
789 JAVADOC="${withval}"
790 ],
791 [
792 JAVADOC=${SYSTEM_JDK_DIR}/bin/javadoc
793 ])
794 if ! test -f "${JAVADOC}"; then
795 AC_PATH_PROG(JAVADOC, "${JAVADOC}")
796 fi
797 if test -z "${JAVADOC}"; then
798 AC_PATH_PROG(JAVADOC, "javadoc")
799 fi
800 if test -z "${JAVADOC}"; then
801 AC_PATH_PROG(JAVADOC, "gjdoc")
802 fi
803 if test -z "${JAVADOC}" && test "x$ENABLE_DOCS" = "xyes"; then
804 AC_MSG_ERROR("No Java documentation tool was found.")
805 fi
806 AC_MSG_RESULT(${JAVADOC})
807 AC_MSG_CHECKING([whether javadoc supports -J options])
808 CLASS=pkg/Test.java
809 mkdir tmp.$$
810 cd tmp.$$
811 mkdir pkg
812 cat << \EOF > $CLASS
813[/* [#]line __oline__ "configure" */
814package pkg;
815
816public class Test
817{
818 /**
819 * Does stuff.
820 *
821 *
822 * @param args arguments from cli.
823 */
824 public static void main(String[] args)
825 {
826 System.out.println("Hello World!");
827 }
828}
829]
830EOF
831 if $JAVADOC -J-Xmx896m pkg >&AS_MESSAGE_LOG_FD 2>&1; then
832 JAVADOC_KNOWS_J_OPTIONS=yes
833 else
834 JAVADOC_KNOWS_J_OPTIONS=no
835 fi
836 cd ..
837 rm -rf tmp.$$
838 AC_MSG_RESULT([${JAVADOC_KNOWS_J_OPTIONS}])
839 AC_SUBST(JAVADOC)
840 AC_SUBST(JAVADOC_KNOWS_J_OPTIONS)
841 AM_CONDITIONAL([JAVADOC_SUPPORTS_J_OPTIONS], test x"${JAVADOC_KNOWS_J_OPTIONS}" = "xyes")
842])
843
844dnl Checks that sun.applet.AppletViewerPanel is available
845dnl and public (via the patch in IcedTea6, applet_hole.patch)
846dnl Can be removed when that is upstream or unneeded
847AC_DEFUN([IT_CHECK_FOR_APPLETVIEWERPANEL_HOLE],[
848AC_REQUIRE([IT_FIND_JAVAC])
849AC_REQUIRE([IT_FIND_JAVA])
850AC_CACHE_CHECK([if sun.applet.AppletViewerPanel is available and public], it_cv_applet_hole, [
851CLASS=TestAppletViewer.java
852BYTECODE=$(echo $CLASS|sed 's#\.java##')
853mkdir -p tmp.$$
854cd tmp.$$
855cat << \EOF > $CLASS
856[/* [#]line __oline__ "configure" */
857import java.lang.reflect.Modifier;
858
859public class TestAppletViewer
860{
861 public static void main(String[] args)
862 {
863 try
864 {
865 Class<?> clazz = Class.forName("sun.applet.AppletViewerPanel");
866 if (Modifier.isPublic(clazz.getModifiers()))
867 {
868 System.err.println("Found public sun.applet.AppletViewerPanel");
869 System.exit(0);
870 }
871 System.err.println("Found non-public sun.applet.AppletViewerPanel");
872 System.exit(2);
873 }
874 catch (ClassNotFoundException e)
875 {
876 System.err.println("Could not find sun.applet.AppletViewerPanel");
877 System.exit(1);
878 }
879 }
880}
881]
882EOF
883if $JAVAC -cp . $JAVACFLAGS -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
884 if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
885 it_cv_applet_hole=yes;
886 else
887 it_cv_applet_hole=$?;
888 fi
889else
890 it_cv_applet_hole=3;
891fi
892])
893rm -f $CLASS *.class
894cd ..
895rmdir tmp.$$
896if test x"${it_cv_applet_hole}" = "x1"; then
897 AC_MSG_ERROR([sun.applet.AppletViewerPanel is not available.])
898elif test x"${it_cv_applet_hole}" = "x2"; then
899 AC_MSG_ERROR([sun.applet.AppletViewerPanel is not public.])
900elif test x"${it_cv_applet_hole}" = "x3"; then
901 AC_MSG_ERROR([Compilation failed. See config.log.])
902fi
903AC_PROVIDE([$0])dnl
904])
905
906AC_DEFUN_ONCE([IT_SET_VERSION],
907[
908 AC_REQUIRE([IT_OBTAIN_HG_REVISIONS])
909 AC_REQUIRE([IT_GET_PKGVERSION])
910 AC_MSG_CHECKING([what version string to use])
911 if test "x${ICEDTEA_REVISION}" != xnone; then
912 ICEDTEA_REV="+${ICEDTEA_REVISION}"
913 fi
914 if test "x${PKGVERSION}" != "xnone"; then
915 ICEDTEA_PKG=" (${PKGVERSION})"
916 fi
917 FULL_VERSION="${PACKAGE_VERSION}${ICEDTEA_REV}${ICEDTEA_PKG}"
918 AC_MSG_RESULT([${FULL_VERSION}])
919 AC_SUBST([FULL_VERSION])
920])
921
922dnl Allows you to configure (enable/disable/set path to) the browser
923dnl REQUIRED Parameters:
924dnl [browser name, variable to store path, default command to run browser (if not provided, assume it's the same as the browser name]
925AC_DEFUN([IT_FIND_BROWSER],
926[
927 AC_ARG_WITH([$1],
928 [AS_HELP_STRING(--with-$1,specify the location of $1)],
929 [
930 if test "${withval}" = "no" || test "${withval}" = "yes" || test "${withval}" = "" ; then
931 $2=""
932 elif test -f "${withval}" ; then
933 $2="${withval}"
934 else
935 AC_MSG_CHECKING([for $1])
936 AC_MSG_RESULT([not found])
937 AC_MSG_FAILURE([invalid location specified to $1: ${withval}])
938 fi
939 ],
940 [
941 withval="yes"
942 ])
943
944 if test -f "${$2}"; then
945 AC_MSG_CHECKING([for $1])
946 AC_MSG_RESULT([${$2}])
947 elif test "${withval}" != "no"; then
948 if test $# -gt 2; then
949 AC_PATH_TOOL([$2], [$3], [], [])
950 else
951 AC_PATH_TOOL([$2], [$1], [], [])
952 fi
953 else
954 AC_MSG_CHECKING([for $1])
955 AC_MSG_RESULT([no])
956 fi
957])
958
959AC_DEFUN_ONCE([IT_SET_GLOBAL_BROWSERTESTS_BEHAVIOUR],
960[
961 AC_MSG_CHECKING([how browser test will be run])
962 AC_ARG_WITH([browser-tests],
963 [AS_HELP_STRING([--with-browser-tests],
964 [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])],
965 [
966 BROWSER_SWITCH=${withval}
967 ],
968 [
969 BROWSER_SWITCH="yes"
970 ])
971 D_PARAM_PART="-Dmodified.browsers.run"
972 case "$BROWSER_SWITCH" in
973 "yes" )
974 BROWSER_TESTS_MODIFICATION="" ;;
975 "no" )
976 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=ignore" ;;
977 "one" )
978 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=one" ;;
979 "all" )
980 BROWSER_TESTS_MODIFICATION="$D_PARAM_PART=all" ;;
981 *)
982 AC_MSG_ERROR([unknown valkue of with-browser-tests ($BROWSER_SWITCH), so not use (yes) or set yes|no|one|all])
983 esac
984 AC_MSG_RESULT(${BROWSER_SWITCH})
985 AC_SUBST(BROWSER_TESTS_MODIFICATION)
986])
Note: See TracBrowser for help on using the repository browser.