view configure.ac @ 2969:3b6a1e8f4e00

Bump to icedtea-3.17.0pre02. Upstream changes: - JDK-6574989: TEST_BUG: javax/sound/sampled/Clip/bug5070081.java fails sometimes - JDK-7147060: com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java doesn't run in agentvm mode - JDK-8006205: [TESTBUG] NEED_TEST: please JTREGIFY test/compiler/7177917/Test7177917.java - JDK-8023697: failed class resolution reports different class name in detail message for the first and subsequent times - JDK-8025886: replace [[ and == bash extensions in regtest - JDK-8028591: NegativeArraySizeException in sun.security.util.DerInputStream.getUnalignedBitString() - JDK-8031625: javadoc problems referencing inner class constructors - JDK-8035493: JVMTI PopFrame capability must instruct compilers not to prune locals - JDK-8036088: Replace strtok() with its safe equivalent strtok_s() in DefaultProxySelector.c - JDK-8037866: Replace the Fun class in tests with lambdas - JDK-8038723, PR3806: Openup some PrinterJob tests - JDK-8039082: [TEST_BUG] Test java/awt/dnd/BadSerializationTest/BadSerializationTest.java fails - JDK-8041480, PR3806: ArrayIndexOutOfBoundsException when JTable contains certain string - JDK-8046274: Removing dependency on jakarta-regexp - JDK-8048933: -XX:+TraceExceptions output should include the message - JDK-8058779, PR3805: Faster implementation of String.replace(CharSequence, CharSequence) - JDK-8061616: HotspotDiagnosticMXBean.getVMOption() throws IllegalArgumentException for flags of type double - JDK-8067796: (process) Process.waitFor(timeout, unit) doesn't throw NPE if timeout is less than, or equal to zero when unit == null - JDK-8075774: Small readability and performance improvements for zipfs - JDK-8076151: [TESTBUG] Test java/awt/FontClass/CreateFont/fileaccess/FontFile.java fails - JDK-8076475: Misuses of strncpy/strncat - JDK-8080462, PR3801: Update SunPKCS11 provider with PKCS11 v2.40 support - JDK-8130125, PR3806: [TEST_BUG] add @modules to the several client tests unaffected by the automated bulk update - JDK-8130737: AffineTransformOp can't handle child raster with non-zero x-offset - JDK-8132206: move ScanTest.java into OpenJDK - JDK-8132376: Add @requires os.family to the client tests with access to internal OS-specific API - JDK-8132745: minor cleanup of java/util/Scanner/ScanTest.java - JDK-8137087: [TEST_BUG] Cygwin failure of java/awt/appletviewer/IOExceptionIfEncodedURLTest/IOExceptionIfEncodedURLTest.sh - JDK-8144015, PR3806: [PIT] failures of text layout font tests - JDK-8144023, PR3806: [PIT] failure of text measurements in javax/swing/text/html/parser/Parser/6836089/bug6836089.java - JDK-8144240, PR3806: [macosx][PIT] AIOOB in closed/javax/swing/text/GlyphPainter2/6427244/bug6427244.java - JDK-8145542, PR3806: The case failed automatically and thrown java.lang.ArrayIndexOutOfBoundsException exception - JDK-8145808: java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java hangs on Win. 8 - JDK-8146612: C2: Precedence edges specification violated - JDK-8148754: C2 loop unrolling fails due to unexpected graph shape - JDK-8148854: Class names "SomeClass" and "LSomeClass;" treated by JVM as an equivalent - JDK-8148886: SEGV in sun.java2d.marlin.Renderer._endRendering - JDK-8150986: serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java failing because expects HPROF JAVA PROFILE 1.0.1 file format - JDK-8151725, PR3806: [macosx] ArrayIndexOOB exception when displaying Devanagari text in JEditorPane - JDK-8151788: NullPointerException from ntlm.Client.type3 - JDK-8151834: Test SmallPrimeExponentP.java times out intermittently - JDK-8152358, PR3800: code and comment cleanups found during the hunt for 8077392 - JDK-8152545, PR3804: Use preprocessor instead of compiling a program to generate native nio constants - JDK-8152680, PR3806: Regression in GlyphVector.getGlyphCharIndex behaviour - JDK-8153430: jdk regression test MletParserLocaleTest, ParserInfiniteLoopTest reduce default timeout - JDK-8153583: Make OutputAnalyzer.reportDiagnosticSummary public - JDK-8154313: Generated javadoc scattered all over the place - JDK-8156169: Some sound tests rarely hangs because of incorrect synchronization - JDK-8158924, PR3806: Incorrect i18n text document layout - JDK-8163251: Hard coded loop limit prevents reading of smart card data greater than 8k - JDK-8165936: Potential Heap buffer overflow when seaching timezone info files - JDK-8166003, PR3806: [PIT][TEST_BUG] missing helper for javax/swing/text/GlyphPainter2/6427244/bug6427244.java - JDK-8166068, PR3806: test/java/awt/font/GlyphVector/GetGlyphCharIndexTest.java does not compile - JDK-8166148: Fix for JDK-8165936 broke solaris builds - JDK-8167300: Scheduling failures during gcm should be fatal - JDK-8167615: Opensource unit/regression tests for JavaSound - JDK-8169879, PR3806: [TEST_BUG] javax/swing/text/GlyphPainter2/6427244/bug6427244.java - compilation failed - JDK-8169925: PKCS #11 Cryptographic Token Interface license - JDK-8171934: ObjectSizeCalculator.getEffectiveMemoryLayoutSpecification() does not recognize OpenJDK's HotSpot VM - JDK-8172012: [TEST_BUG] delays needed in javax/swing/JTree/4633594/bug4633594.java - JDK-8172559: [PIT][TEST_BUG] Move @test to be 1st annotation in java/awt/image/Raster/TestChildRasterOp.java - JDK-8173300: [TESTBUG]compiler/tiered/NonTieredLevelsTest.java fails with compiler.whitebox.SimpleTestCaseHelper(int) must be compiled - JDK-8177334: Update xmldsig implementation to Apache Santuario 2.1.1 - JDK-8177628: Opensource unit/regression tests for ImageIO - JDK-8178374: Problematic ByteBuffer handling in CipherSpi.bufferCrypt method - JDK-8181841: A TSA server returns timestamp with precision higher than milliseconds - JDK-8183341: Better cleanup for javax/imageio/AllowSearch.java - JDK-8183349: Better cleanup for jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java and WriteAfterAbort.java - JDK-8183351: Better cleanup for jdk/test/javax/imageio/spi/AppletContextTest/BadPluginConfigurationTest.sh - JDK-8191512, PR3806: T2K font rasterizer code removal - JDK-8191522, PR3806: Remove Bigelow&Holmes Lucida fonts from JDK sources - JDK-8191678: [TESTBUG] Add keyword headful in java/awt FocusTransitionTest test. - JDK-8192953: sun/management/jmxremote/bootstrap/*.sh tests fail with error : revokeall.exe: Permission denied - JDK-8193137: Nashorn crashes when given an empty script file - JDK-8194298: Add support for per Socket configuration of TCP keepalive - JDK-8196969: JTreg Failure: serviceability/sa/ClhsdbJstack.java causes NPE - JDK-8198004: javax/swing/JFileChooser/6868611/bug6868611.java throws error - JDK-8200313: java/awt/Gtk/GtkVersionTest/GtkVersionTest.java fails - JDK-8201633: Problems with AES-GCM native acceleration - JDK-8203357: Container Metrics - JDK-8209113: Use WeakReference for lastFontStrike for created Fonts - JDK-8210147: adjust some WSAGetLastError usages in windows network coding - JDK-8211049: Second parameter of "initialize" method is not used - JDK-8211714: Need to update vm_version.cpp to recognise VS2017 minor versions - JDK-8214862: assert(proj != __null) at compile.cpp:3251 - JDK-8216283: Allow shorter method sampling interval than 10 ms - JDK-8217606: LdapContext#reconnect always opens a new connection - JDK-8217647: JFR: recordings on 32-bit systems unreadable - JDK-8217878: ENVELOPING XML signature no longer works in JDK 11 - JDK-8218629: XML Digital Signature throws NAMESPACE_ERR exception on OpenJDK 11, works 8/9/10 - JDK-8219566: JFR did not collect call stacks when MaxJavaStackTraceDepth is set to zero - JDK-8220165: Encryption using GCM results in RuntimeException- input length out of bound - JDK-8220293: Deadlock in JFR string pool - JDK-8220555: JFR tool shows potentially misleading message when it cannot access a file - JDK-8221569: JFR tool produces incorrect output when both --categories and --events are specified - JDK-8224217: RecordingInfo should use textual representation of path - JDK-8225068: Remove DocuSign root certificate that is expiring in May 2020 - JDK-8225069: Remove Comodo root certificate that is expiring in May 2020 - JDK-8226697: Several tests which need the @key headful keyword are missing it. - JDK-8227269: Slow class loading when running with JDWP - JDK-8229378: jdwp library loader in linker_md.c quietly truncates on buffer overflow - JDK-8229888: (zipfs) Updating an existing zip file does not preserve original permissions - JDK-8229899: Make java.io.File.isInvalid() less racy - JDK-8230303: JDB hangs when running monitor command - JDK-8230597: Update GIFlib library to the 5.2.1 - JDK-8230613: Better ASCII conversions - JDK-8230711: ConnectionGraph::unique_java_object(Node* N) return NULL if n is not in the CG - JDK-8230769: BufImg_SetupICM add ReleasePrimitiveArrayCritical call in early return - JDK-8230926: [macosx] Two apostrophes are entered instead of one with "U.S. International - PC" layout - JDK-8231779: crash HeapWord*ParallelScavengeHeap::failed_mem_allocate - JDK-8231800: Better listing of arrays - JDK-8232014: Expand DTD support - JDK-8233097: Fontmetrics for large Fonts has zero width - JDK-8233197: Invert JvmtiExport::post_vm_initialized() and Jfr:on_vm_start() start-up order for correct option parsing - JDK-8233255: Better Swing Buttons - JDK-8233880: Support compilers with multi-digit major version numbers - JDK-8234032: Improve basic calendar services - JDK-8234042: Better factory production of certificates - JDK-8234418: Better parsing with CertificateFactory - JDK-8234617: C1: Incorrect result of field load due to missing narrowing conversion - JDK-8234836: Improve serialization handling - JDK-8235243: handle VS2017 15.9 and VS2019 in abstract_vm_version - JDK-8235325: build failure on Linux after 8235243 - JDK-8235687: Contents/MacOS/libjli.dylib cannot be a symlink - JDK-8236191: Enhance OID processing - JDK-8236512, PR3801: PKCS11 Connection closed after Cipher.doFinal and NoPadding - JDK-8236996: Incorrect Roboto font rendering on Windows with subpixel antialiasing - JDK-8237117: Better ForkJoinPool behavior - JDK-8237592: Enhance certificate verification - JDK-8237951: CTW: C2 compilation fails with "malformed control flow" - JDK-8238002: Better matrix operations - JDK-8238225: Issues reported after replacing symlink at Contents/MacOS/libjli.dylib with binary - JDK-8238380: java.base/unix/native/libjava/childproc.c "multiple definition" link errors with GCC10 - JDK-8238386: (sctp) jdk.sctp/unix/native/libsctp/SctpNet.c "multiple definition" link errors with GCC10 - JDK-8238388: libj2gss/NativeFunc.o "multiple definition" link errors with GCC10 - JDK-8238804: Enhance key handling process - JDK-8238842: AIOOBE in GIFImageReader.initializeStringTable - JDK-8238843: Enhanced font handing - JDK-8238898: Missing hash characters for header on license file - JDK-8238920: Better Buffer support - JDK-8238925: Enhance WAV file playback - JDK-8239385: KerberosTicket client name refers wrongly to sAMAccountName in AD - JDK-8239819: XToolkit: Misread of screen information memory - JDK-8239852: java/util/concurrent tests fail with -XX:+VerifyGraphEdges: assert(!VerifyGraphEdges) failed: verification should have failed - JDK-8240119: Less Affine Transformations - JDK-8240295: hs_err elapsed time in seconds is not accurate enough - JDK-8240482: Improved WAV file playback - JDK-8240576: JVM crashes after transformation in C2 IdealLoopTree::merge_many_backedges - JDK-8241379: Update JCEKS support - JDK-8241522: Manifest improved jar headers redux - JDK-8241638: launcher time metrics always report 1 on Linux when _JAVA_LAUNCHER_DEBUG set - JDK-8241750: x86_32 build failure after JDK-8227269 - JDK-8241888: Mirror jdk.security.allowNonCaAnchor system property with a security one - JDK-8242136: Better XML namespace handling - JDK-8242498: Invalid "sun.awt.TimedWindowEvent" object leads to JVM crash - JDK-8242556: Cannot load RSASSA-PSS public key with non-null params from byte array - JDK-8242883: Incomplete backport of JDK-8078268: backport test part - JDK-8243059: Build fails when --with-vendor-name contains a comma - JDK-8243138: Enhance BaseLdapServer to support starttls extended request - JDK-8243474: [TESTBUG] removed three tests of 0 bytes - JDK-8243489: Thread CPU Load event may contain wrong data for CPU time under certain conditions - JDK-8243539: Copyright info (Year) should be updated for fix of 8241638 - JDK-8243541: (tz) Upgrade time-zone data to tzdata2020a - JDK-8244407: JVM crashes after transformation in C2 IdealLoopTree::split_fall_in - JDK-8244461: [JDK 8u] Build fails with glibc 2.32 - JDK-8244548: JDK 8u: sun.misc.Version.jdkUpdateVersion() returns wrong result - JDK-8244777: ClassLoaderStats VM Op uses constant hash value - JDK-8244818: Java2D Queue Flusher crash while moving application window to external monitor - JDK-8244843: JapanEraNameCompatTest fails - JDK-8245167: Top package in method profiling shows null in JMC - JDK-8246223: Windows build fails after JDK-8227269 - JDK-8246310: Clean commented-out code about ModuleEntry andPackageEntry in JFR - JDK-8246384: Enable JFR by default on supported architectures for October 2020 release - JDK-8246703: [TESTBUG] Add test for JDK-8233197 - JDK-8248399: Build installs jfr binary when JFR is disabled - JDK-8248643: Remove extra leading space in JDK-8240295 8u backport - JDK-8248715: New JavaTimeSupplementary localisation for 'in' installed in wrong package - JDK-8248851: CMS: Missing memory fences between free chunk check and klass read - JDK-8249610: Make sun.security.krb5.Config.getBooleanObject(String... keys) method public - JDK-8249677: Regression in 8u after JDK-8237117: Better ForkJoinPool behavior - JDK-8250546: Expect changed behaviour reported in JDK-8249846 - JDK-8250755: Better cleanup for jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java - JDK-8250875: Incorrect parameter type for update_number in JDK_Version::jdk_update - JDK-8251120, PR3793: [8u] HotSpot build assumes ENABLE_JFR is set to either true or false - PR3798: Fix format-overflow error on GCC 10, caused by passing NULL to a '%s' directive ChangeLog: 2020-10-25 Andrew John Hughes <gnu_andrew@member.fsf.org> Bump to icedtea-3.17.0pre02. * Makefile.am: (CORBA_CHANGESET): Update to icedtea-3.17.0pre02 tag. (JAXP_CHANGESET): Likewise. (JAXWS_CHANGESET): Likewise. (JDK_CHANGESET): Likewise. (LANGTOOLS_CHANGESET): Likewise. (OPENJDK_CHANGESET): Likewise. (NASHORN_CHANGESET): Likewise. (CORBA_SHA256SUM): Likewise. (JAXP_SHA256SUM): Likewise. (JAXWS_SHA256SUM): Likewise. (JDK_SHA256SUM): Likewise. (LANGTOOLS_SHA256SUM): Likewise. (OPENJDK_SHA256SUM): Likewise. (NASHORN_SHA256SUM): Likewise. * NEWS: Updated. * acinclude.m4: (IT_DETERMINE_VERSION): Set JDK_UPDATE_VERSION to 272 and BUILD_VERSION to b04. (IT_ENABLE_JFR): Set default to enabled, to match upstream 8u272. * configure.ac: Bump to 3.17.0pre02. * hotspot.map.in: Update to icedtea-3.17.0pre02 tag.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Mon, 26 Oct 2020 02:31:11 +0000
parents 69e945b715f5
children d97ed9be7d62
line wrap: on
line source

AC_INIT([icedtea], [3.17.0pre02], [distro-pkg-dev@openjdk.java.net])
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([1.9 tar-pax foreign])
AM_MAINTAINER_MODE([enable])
AC_CONFIG_FILES([Makefile])

# Older automake doesn't generate these correctly
abs_top_builddir=`pwd -P`
AC_SUBST(abs_top_builddir)
abs_top_srcdir=`dirname $0`
cd $abs_top_srcdir
abs_top_srcdir=`pwd`
cd $abs_top_builddir
AC_SUBST(abs_top_srcdir)

IT_DETERMINE_VERSION
AC_CONFIG_FILES([hotspot.map fsg.sh])
AC_CONFIG_FILES([jconsole.desktop])
AC_CONFIG_FILES([policytool.desktop])

AC_PROG_CC
AC_PROG_CXX
AM_PROG_AS

IT_CHECK_IF_BOOTSTRAPPING
IT_CHECK_IF_DOWNLOADING

IT_FIND_TOOLS([MAKE], [gmake make])
IT_FIND_TOOL([GZIP], [gzip])
IT_FIND_TOOLS([FIND], [gfind find])
IT_FIND_TOOLS([PATCH], [gpatch patch])
IT_FIND_TOOLS([TAR], [gtar tar])
IT_FIND_TOOL([CHMOD], [chmod])
IT_FIND_TOOLS([SHA256SUM], [gsha256sum sha256sum])
IT_FIND_TOOL([ZIP], [zip])
IT_FIND_TOOL([UNZIP], [unzip])
IT_FIND_TOOL([CPIO], [cpio])
IT_FIND_TOOL([FILE], [file])
IT_FIND_TOOL([READLINK], [readlink])
IT_FIND_TOOLS([FASTJAR], [fastjar jar])
IT_FIND_TOOLS([SED],[gsed sed])
AC_CHECK_TOOL([LDD], [ldd])
dnl OpenJDK's README-builds.html lists gawk as a build dependency so we
dnl check for it explicitly rather than using AC_PROG_AWK.
IT_FIND_TOOL([GAWK], [gawk])
IT_FIND_TOOL([WHICH], [which])
IT_FIND_TOOL([PERL], [perl])

if test "x$enable_downloading" = "xyes"; then
   IT_FIND_TOOL([WGET], [wget])
fi

AC_PATH_TOOL([LSB_RELEASE],[lsb_release])
AC_PATH_TOOL([LINUX32],[linux32])

IT_CHECK_FOR_MERCURIAL
IT_OBTAIN_HG_REVISIONS
IT_CHECK_FOR_RMDIR
IT_HSBUILD_WORKS_ON_THIS_ARCH
IT_CHECK_GCC_VERSION
IT_FIND_NUMBER_OF_PROCESSORS
IT_CP_SUPPORTS_REFLINK
IT_CAN_HARDLINK_TO_SOURCE_TREE
IT_DISABLE_TESTS
IT_DISABLE_HOTSPOT_TESTS
IT_DISABLE_LANGTOOLS_TESTS
IT_DISABLE_JDK_TESTS
IT_DISABLE_SYSTEMTAP_TESTS
IT_LOCATE_NSS
IT_ENABLE_NATIVE_DEBUGINFO
IT_ENABLE_JAVA_DEBUGINFO
IT_DISABLE_PRECOMPILED_HEADERS

# Use xvfb-run if found to run gui tests (check-jdk).
AC_CHECK_PROG(XVFB_RUN_CMD, xvfb-run, [xvfb-run -a -e xvfb-errors], [])
AC_SUBST(XVFB_RUN_CMD)

AC_MSG_CHECKING([whether to build documentation])
AC_ARG_ENABLE([docs],
	      [AS_HELP_STRING([--disable-docs],
	      		      [Disable generation of documentation])],
	      [ENABLE_DOCS="${enableval}"], [ENABLE_DOCS='yes'])
AM_CONDITIONAL([ENABLE_DOCS], [test x$ENABLE_DOCS = xyes])
AC_MSG_RESULT(${ENABLE_DOCS})

IT_VENDOR_OPTS
IT_GET_PKGVERSION
IT_GET_LSB_DATA

IT_SET_ARCH_SETTINGS
IT_SET_OS_DIRS
OPENJDK_BUILD_DIR=openjdk.build
AC_SUBST(OPENJDK_BUILD_DIR)

IT_CHECK_NUMBER_OF_PARALLEL_JOBS
IT_CHECK_FOR_JDK
IT_FIND_JAVA
IT_FIND_COMPILER
IT_FIND_JAVAH
IT_FIND_JAR
IT_FIND_RMIC
IT_FIND_NATIVE2ASCII
IT_USING_CACAO
if test "x$enable_bootstrap" = "xyes"; then
  IT_FIND_ECJ_JAR
fi
AC_CONFIG_FILES([javac], [chmod +x javac])
AC_CONFIG_FILES([javap], [chmod +x javap])
AC_CONFIG_FILES([javah], [chmod +x javah])

IT_CHECK_ENABLE_WARNINGS
IT_DIAMOND_CHECK
IT_JAVAC_OPTIONS_CHECK

IT_ENABLE_OPENJDK_CHECKSUM
IT_ENABLE_HOTSPOT_CHECKSUM
IT_ENABLE_CORBA_CHECKSUM
IT_ENABLE_JAXP_CHECKSUM
IT_ENABLE_JAXWS_CHECKSUM
IT_ENABLE_JDK_CHECKSUM
IT_ENABLE_LANGTOOLS_CHECKSUM
IT_ENABLE_NASHORN_CHECKSUM
IT_WITH_ALT_JAR_BINARY

IT_ENABLE_CACAO
IT_WITH_CACAO_HOME
IT_WITH_CACAO_SRC_DIR
IT_ENABLE_CACAO_CHECKSUM
IT_ENABLE_JAMVM
IT_ENABLE_JAMVM_CHECKSUM

IT_ENABLE_WERROR
IT_ENABLE_JAR_COMPRESSION
IT_ENABLE_ZERO_BUILD
IT_CHECK_ADDITIONAL_VMS
IT_WITH_TZDATA_DIR
IT_WITH_TAPSET_DIR
IT_WITH_CURVES
IT_ENABLE_HEADLESS
IT_ENABLE_JFR
IT_ENABLE_CCACHE
IT_ENABLE_SPLIT_DEBUGINFO

IT_WITH_VERSION_SUFFIX
IT_ENABLE_HG
IT_WITH_CACERTS_FILE

IT_WITH_PAX
AC_CONFIG_FILES([pax-mark-vm], [chmod +x pax-mark-vm])

AC_PATH_TOOL([HG],[hg])
if test "x${enable_hg}" = "xyes"; then
  if test "x${HG}" = x; then
    AC_MSG_ERROR([Mercurial not found; this is required for a hg build])
  fi
fi
AC_SUBST([HG])
IT_WITH_HG_REVISION

dnl pkgconfig cannot be used to find these headers and libraries.
AC_CHECK_HEADERS([cups/cups.h cups/ppd.h],[]
	,[AC_MSG_ERROR("CUPS headers were not found -
	try installing cups-devel.")])
AC_CHECK_HEADERS([X11/X.h],[]
	,[AC_MSG_ERROR("xorg headers were not found -
	try installing xorg-x11-proto-devel.")])

IT_CHECK_FOR_ZLIB
IT_CHECK_FOR_JPEG
IT_CHECK_FOR_PNG
IT_CHECK_FOR_GIF
IT_CHECK_FOR_LCMS
IT_CHECK_FOR_KERBEROS
IT_CHECK_FOR_PCSC
IT_CHECK_FOR_SCTP
IT_ENABLE_IMPROVED_FONT_RENDERING
AC_CONFIG_FILES([remove-intree-libraries.sh])

dnl Check for Xproto headers and libraries.
PKG_CHECK_MODULES(XPROTO, xproto,[XPROTO_FOUND=yes],[XPROTO_FOUND=no])
if test "x${XPROTO_FOUND}" = xno
then
  AC_MSG_ERROR([Could not find Xproto headers - \
  Try installing xorg-x11-proto-devel.])
fi
AC_SUBST(XPROTO_CFLAGS)
AC_SUBST(XPROTO_LIBS)

dnl Check for libXt headers and libraries.
PKG_CHECK_MODULES(XT, xt,[XT_FOUND=yes],[XT_FOUND=no])
if test "x${XT_FOUND}" = xno
then
  AC_MSG_ERROR([Could not find Xt - \
  Try installing libXt-devel.])
fi
AC_SUBST(XT_CFLAGS)
AC_SUBST(XT_LIBS)

dnl Check for libX11 headers and libraries.
PKG_CHECK_MODULES(X11, x11,[X11_FOUND=yes],[X11_FOUND=no])
if test "x${X11_FOUND}" = xno
then
  AC_MSG_ERROR([Could not find x11 - \
  Try installing libX11-devel.])
fi
AC_SUBST(X11_CFLAGS)
AC_SUBST(X11_LIBS)

dnl Check for libXinerama headers and libraries.
PKG_CHECK_MODULES(XINERAMA, xinerama,[XINERAMA_FOUND=yes]
	,[XINERAMA_FOUND=no])
if test "x${XINERAMA_FOUND}" = xno
then
  AC_MSG_ERROR([Could not find Xinerama - \
  Try installing libXinerama-devel.])
fi
AC_SUBST(XINERAMA_CFLAGS)
AC_SUBST(XINERAMA_LIBS)

PKG_CHECK_MODULES(XRENDER, xrender, [XRENDER_FOUND=yes], [XRENDER_FOUND=no])
if test "x${XRENDER_FOUND}" = xno
then
  AC_MSG_ERROR([Could not find Xrender extension - \
Try installing libXrender-devel.])
fi

PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, [XCOMPOSITE_FOUND=yes], [XCOMPOSITE_FOUND=no])
if test "x${XCOMPOSITE_FOUND}" = xno
then AC_MSG_ERROR([Could not find Xcomposite extension.  Try installing libXcomposite-devel.])
fi
AC_SUBST(XCOMPOSITE_CFLAGS)
AC_SUBST(XCOMPOSITE_LIBS)

AC_CHECK_HEADER([sys/sdt.h], [SDT_H_FOUND='yes'],
                [SDT_H_FOUND='no';
                   AC_MSG_WARN([systemtap support needs sys/sdt.h header])])

AC_MSG_CHECKING([working sys/sdt.h and g++ support])
AC_LANG_PUSH([C++])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
#include <sys/sdt.h>
class ProbeClass
{
private:
  int& ref;
  const char *name;

public:
  ProbeClass(int& v, const char *n) : ref(v), name(n)
  {
    DTRACE_PROBE2(_test_, cons, name, ref);
  }

  void method(int min)
  {
    DTRACE_PROBE3(_test_, meth, name, ref, min);
    ref -= min;
  }

  ~ProbeClass()
  {
    DTRACE_PROBE2(_test_, dest, name, ref);
  }
};
]],
[[
  int i = 64;
  DTRACE_PROBE1(_test_, call, i);
  ProbeClass inst = ProbeClass(i, "call");
  inst.method(24);
]])], [AC_MSG_RESULT([yes])], [SDT_H_FOUND='no'; AC_MSG_WARN([systemtap sdt.h or g++ too old])])
AC_LANG_POP([C++])
if test "x${SDT_H_FOUND}" = "xyes"; then
 AC_PATH_TOOL([STAP],[stap])
 if test x"${STAP}" = x ; then
   AC_MSG_WARN([stap not found in PATH; SystemTap tests will not be able to run])
 fi
 AC_SUBST(STAP)
fi

AM_CONDITIONAL([ENABLE_SYSTEMTAP], [test x$SDT_H_FOUND = xyes])

ABS_CLIENT_LIBJVM_SO="${prefix}/jre/lib/${INSTALL_ARCH_DIR}/client/libjvm.so"
ABS_SERVER_LIBJVM_SO="${prefix}/jre/lib/${INSTALL_ARCH_DIR}/server/libjvm.so"
AC_SUBST(ABS_CLIENT_LIBJVM_SO)
AC_SUBST(ABS_SERVER_LIBJVM_SO)
AC_CONFIG_FILES([tapset/hotspot.stp])
AC_CONFIG_FILES([tapset/hotspot_jni.stp])
AC_CONFIG_FILES([tapset/jstack.stp])
AC_CONFIG_FILES([tapset/hotspot_gc.stp])
AC_CONFIG_FILES([test/tapset/jstaptest.pl])

dnl Check for libXtst headers and libraries.
PKG_CHECK_MODULES(XTST, xtst,[XTST_FOUND=yes],[XTST_FOUND=no])
if test "x${XTST_FOUND}" = xno
then
  AC_MSG_ERROR([Could not find Xtst - \
  Try installing libXtst-devel.])
fi
AC_SUBST(XTST_CFLAGS)
AC_SUBST(XTST_LIBS)

dnl Check for alsa headers and libraries (only required for Linux).
if test "x${BUILD_OS_DIR}" = "xlinux"
then
  PKG_CHECK_MODULES(ALSA, alsa,[ALSA_FOUND=yes],[ALSA_FOUND=no])
  if test "x${ALSA_FOUND}" = xno
  then
    AC_MSG_ERROR([Could not find alsa - \
    Try installing alsa-lib-devel.])
  fi
AC_SUBST(ALSA_CFLAGS)
AC_SUBST(ALSA_LIBS)
fi

if test "x${ZERO_BUILD_TRUE}" = x || test "x${ADD_ZERO_BUILD_TRUE}" = x; then
  dnl Check for libffi headers and libraries.
  PKG_CHECK_MODULES(LIBFFI, libffi,[LIBFFI_FOUND=yes],[LIBFFI_FOUND=no])
  if test "x${LIBFFI_FOUND}" = xno
  then
    LIBFFI_FOUND=
    AC_CHECK_HEADER([ffi.h],[LIBFFI_CFLAGS=],[LIBFFI_FOUND=no])
    AC_SEARCH_LIBS([ffi_call], [ffi],[LIBFFI_LIBS=-lffi],[LIBFFI_FOUND=no])
    if test "x${LIBFFI_FOUND}" = xno
    then
      AC_MSG_ERROR([Could not find libffi headers - \
      Try installing libffi-devel, libffi-dev or libffi4-dev.])
    fi
  fi
fi
AC_SUBST(LIBFFI_CFLAGS)
AC_SUBST(LIBFFI_LIBS)

AC_ARG_WITH([llvm-config],
            [AS_HELP_STRING([--with-llvm-config],
                            [llvm-config binary (default is llvm-config)])],
            [
              if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
	        if which ${withval} >/dev/null 2>&1 && ${withval} --version >/dev/null 2>&1; then
		  LLVM_CONFIG=${withval}
		else
		  AC_MSG_ERROR([invalid argument for --with-llvm-config ($withval)])
		fi
              fi
            ])

if test "x${SHARK_BUILD_TRUE}" = x || test "x${ADD_SHARK_BUILD_TRUE}" = x; then
  if test "x${LLVM_CONFIG}" = x; then
    IT_FIND_TOOL([LLVM_CONFIG], [llvm-config])
  fi
  llvm_components="jit engine nativecodegen"
  LLVM_VERSION="`$LLVM_CONFIG --version`"
  dnl LLVM_CFLAGS
  LLVM_CFLAGS=
  for flag in $($LLVM_CONFIG --cxxflags $llvm_components); do
    if echo "$flag" | grep -q '^-[[ID]]'; then
      if test "$flag" != "-D_DEBUG"; then
        if test "x$LLVM_CFLAGS" != "x"; then
          LLVM_CFLAGS="$LLVM_CFLAGS "
        fi
        LLVM_CFLAGS="$LLVM_CFLAGS$flag"
      fi
    fi
  done
  LLVM_CFLAGS="$LLVM_CFLAGS -DSHARK_LLVM_VERSION=`echo $LLVM_VERSION | sed 's/\.//;s/svn.*//'`"
  dnl LLVM_LDFLAGS
  LLVM_LDFLAGS=
  for flag in $($LLVM_CONFIG --ldflags $llvm_components); do
    if echo "$flag" | grep -q '^-L'; then
      if test "x$LLVM_LDFLAGS" != "x"; then
        LLVM_LDFLAGS="$LLVM_LDFLAGS "
      fi
      LLVM_LDFLAGS="$LLVM_LDFLAGS$flag"
    fi
  done
  dnl LLVM_LIBS
  LIBS_SAVED=$LIBS
  LDFLAGS_SAVED=$LDFLAGS
  LDFLAGS=$LLVM_LDFLAGS
  AC_CHECK_LIB(LLVM-$LLVM_VERSION, LLVMGetNextInstruction,LLVM_SHARED_LIB=" -lLLVM-$LLVM_VERSION")
  LIBS=$LIBS_SAVED
  LDFLAGS=$LDFLAGS_SAVED
  LLVM_LIBS=
  for flag in $($LLVM_CONFIG --libs $llvm_components); do
    if test "x$LLVM_SHARED_LIB" != x && echo "$flag" | grep -q '^-lLLVM'; then
      continue
    fi
    if echo "$flag" | grep -q '^-l'; then
      if test "x$LLVM_LIBS" != "x"; then
        LLVM_LIBS="$LLVM_LIBS "
      fi
      LLVM_LIBS="$LLVM_LIBS$flag"
    fi
  done
  LLVM_LIBS="$LLVM_LIBS$LLVM_SHARED_LIB"
fi
AC_SUBST(LLVM_CFLAGS)
AC_SUBST(LLVM_LDFLAGS)
AC_SUBST(LLVM_LIBS)

# Arguments passed to configure.
AC_SUBST(CONFIGURE_ARGS)
CONFIGURE_ARGS="$ac_configure_args"

# Sanity check; make sure we have a JVM
if test "x$has_native_hotspot_port" = "xno" ; then
  if test "x${use_zero}" = "xno" ; then
    if test "x${ENABLE_CACAO}" = "xno" -a "x${ENABLE_JAMVM}" = "xno"; then
      AC_MSG_ERROR([No native HotSpot port available for ${host_cpu} and all alternatives disabled.])
    fi
  fi
fi

AC_OUTPUT