libraries.m4 revision 2024:cc16e2a24f94
138494Sobrien# 2310490Scy# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. 338494Sobrien# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 438494Sobrien# 538494Sobrien# This code is free software; you can redistribute it and/or modify it 638494Sobrien# under the terms of the GNU General Public License version 2 only, as 738494Sobrien# published by the Free Software Foundation. Oracle designates this 838494Sobrien# particular file as subject to the "Classpath" exception as provided 938494Sobrien# by Oracle in the LICENSE file that accompanied this code. 1038494Sobrien# 1138494Sobrien# This code is distributed in the hope that it will be useful, but WITHOUT 1238494Sobrien# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1338494Sobrien# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1438494Sobrien# version 2 for more details (a copy is included in the LICENSE file that 1538494Sobrien# accompanied this code). 1638494Sobrien# 1738494Sobrien# You should have received a copy of the GNU General Public License version 1838494Sobrien# 2 along with this work; if not, write to the Free Software Foundation, 19310490Scy# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2038494Sobrien# 2138494Sobrien# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2238494Sobrien# or visit www.oracle.com if you need additional information or have any 2338494Sobrien# questions. 2438494Sobrien# 2538494Sobrien 2638494Sobrien# Major library component reside in separate files. 2738494Sobrienm4_include([lib-alsa.m4]) 2838494Sobrienm4_include([lib-bundled.m4]) 2938494Sobrienm4_include([lib-cups.m4]) 3038494Sobrienm4_include([lib-ffi.m4]) 3138494Sobrienm4_include([lib-freetype.m4]) 3238494Sobrienm4_include([lib-std.m4]) 3338494Sobrienm4_include([lib-x11.m4]) 3438494Sobrien 3538494Sobrien################################################################################ 36174294Sobrien# Determine which libraries are needed for this configuration 3738494Sobrien################################################################################ 3838494SobrienAC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES], 3938494Sobrien[ 4038494Sobrien # Check if X11 is needed 4138494Sobrien if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then 4238494Sobrien # No X11 support on windows or macosx 4338494Sobrien NEEDS_LIB_X11=false 4438494Sobrien else 4538494Sobrien if test "x$SUPPORT_HEADFUL" = xno; then 4638494Sobrien # No X11 support if building headless-only 4738494Sobrien NEEDS_LIB_X11=false 4838494Sobrien else 4938494Sobrien # All other instances need X11 5038494Sobrien NEEDS_LIB_X11=true 5138494Sobrien fi 5238494Sobrien fi 5338494Sobrien 5438494Sobrien # Check if cups is needed 5538494Sobrien if test "x$OPENJDK_TARGET_OS" = xwindows; then 5638494Sobrien # Windows have a separate print system 5738494Sobrien NEEDS_LIB_CUPS=false 5838494Sobrien else 5938494Sobrien NEEDS_LIB_CUPS=true 6038494Sobrien fi 6138494Sobrien 6238494Sobrien # Check if freetype is needed 6338494Sobrien if test "x$OPENJDK" = "xtrue"; then 6438494Sobrien NEEDS_LIB_FREETYPE=true 6538494Sobrien else 6638494Sobrien NEEDS_LIB_FREETYPE=false 6738494Sobrien fi 6838494Sobrien 6938494Sobrien # Check if alsa is needed 7038494Sobrien if test "x$OPENJDK_TARGET_OS" = xlinux; then 7138494Sobrien NEEDS_LIB_ALSA=true 7238494Sobrien else 7338494Sobrien NEEDS_LIB_ALSA=false 7438494Sobrien fi 7538494Sobrien 7638494Sobrien # Check if ffi is needed 7738494Sobrien if HOTSPOT_CHECK_JVM_VARIANT(zero) || HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then 7838494Sobrien NEEDS_LIB_FFI=true 7938494Sobrien else 8038494Sobrien NEEDS_LIB_FFI=false 8138494Sobrien fi 8238494Sobrien]) 8338494Sobrien 8438494Sobrien################################################################################ 8538494Sobrien# Parse library options, and setup needed libraries 8638494Sobrien################################################################################ 8738494SobrienAC_DEFUN_ONCE([LIB_SETUP_LIBRARIES], 8838494Sobrien[ 8938494Sobrien LIB_SETUP_STD_LIBS 9038494Sobrien LIB_SETUP_X11 9138494Sobrien LIB_SETUP_CUPS 9238494Sobrien LIB_SETUP_FREETYPE 9338494Sobrien LIB_SETUP_ALSA 9438494Sobrien LIB_SETUP_LIBFFI 95310490Scy LIB_SETUP_LLVM 9638494Sobrien LIB_SETUP_BUNDLED_LIBS 9738494Sobrien LIB_SETUP_MISC_LIBS 9838494Sobrien]) 9938494Sobrien 10038494Sobrien################################################################################ 10138494Sobrien# Setup llvm (Low-Level VM) 10238494Sobrien################################################################################ 10338494SobrienAC_DEFUN_ONCE([LIB_SETUP_LLVM], 10438494Sobrien[ 10538494Sobrien if HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then 10638494Sobrien AC_CHECK_PROG([LLVM_CONFIG], [llvm-config], [llvm-config]) 10738494Sobrien 10838494Sobrien if test "x$LLVM_CONFIG" != xllvm-config; then 10942629Sobrien AC_MSG_ERROR([llvm-config not found in $PATH.]) 11038494Sobrien fi 11138494Sobrien 11238494Sobrien llvm_components="jit mcjit engine nativecodegen native" 11338494Sobrien unset LLVM_CFLAGS 11438494Sobrien for flag in $("$LLVM_CONFIG" --cxxflags); do 11538494Sobrien if echo "${flag}" | grep -q '^-@<:@ID@:>@'; then 11638494Sobrien if test "${flag}" != "-D_DEBUG" ; then 11738494Sobrien if test "${LLVM_CFLAGS}" != "" ; then 11838494Sobrien LLVM_CFLAGS="${LLVM_CFLAGS} " 11938494Sobrien fi 12038494Sobrien LLVM_CFLAGS="${LLVM_CFLAGS}${flag}" 12138494Sobrien fi 12238494Sobrien fi 12338494Sobrien done 12438494Sobrien llvm_version=$("${LLVM_CONFIG}" --version | sed 's/\.//; s/svn.*//') 12538494Sobrien LLVM_CFLAGS="${LLVM_CFLAGS} -DSHARK_LLVM_VERSION=${llvm_version}" 12638494Sobrien 12738494Sobrien unset LLVM_LDFLAGS 12838494Sobrien for flag in $("${LLVM_CONFIG}" --ldflags); do 12938494Sobrien if echo "${flag}" | grep -q '^-L'; then 13038494Sobrien if test "${LLVM_LDFLAGS}" != ""; then 13138494Sobrien LLVM_LDFLAGS="${LLVM_LDFLAGS} " 13238494Sobrien fi 13338494Sobrien LLVM_LDFLAGS="${LLVM_LDFLAGS}${flag}" 13438494Sobrien fi 13552894Sobrien done 136310490Scy 13738494Sobrien unset LLVM_LIBS 13838494Sobrien for flag in $("${LLVM_CONFIG}" --libs ${llvm_components}); do 13938494Sobrien if echo "${flag}" | grep -q '^-l'; then 14038494Sobrien if test "${LLVM_LIBS}" != ""; then 14138494Sobrien LLVM_LIBS="${LLVM_LIBS} " 14238494Sobrien fi 14338494Sobrien LLVM_LIBS="${LLVM_LIBS}${flag}" 14438494Sobrien fi 14538494Sobrien done 14638494Sobrien 14738494Sobrien # Due to https://llvm.org/bugs/show_bug.cgi?id=16902, llvm does not 14838494Sobrien # always properly detect -ltinfo 14938494Sobrien LLVM_LIBS="${LLVM_LIBS} -ltinfo" 15038494Sobrien 15138494Sobrien AC_SUBST(LLVM_CFLAGS) 15238494Sobrien AC_SUBST(LLVM_LDFLAGS) 15338494Sobrien AC_SUBST(LLVM_LIBS) 15438494Sobrien fi 15538494Sobrien]) 15651292Sobrien 15738494Sobrien################################################################################ 15838494Sobrien# Setup various libraries, typically small system libraries 15938494Sobrien################################################################################ 16038494SobrienAC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS], 16138494Sobrien[ 16238494Sobrien # Setup libm (the maths library) 16338494Sobrien if test "x$OPENJDK_TARGET_OS" != "xwindows"; then 16438494Sobrien AC_CHECK_LIB(m, cos, [], [ 16538494Sobrien AC_MSG_NOTICE([Maths library was not found]) 16638494Sobrien ]) 16738494Sobrien LIBM="-lm" 16838494Sobrien else 16938494Sobrien LIBM="" 17038494Sobrien fi 17138494Sobrien AC_SUBST(LIBM) 17238494Sobrien 17338494Sobrien # Setup libdl (for dynamic library loading) 17438494Sobrien save_LIBS="$LIBS" 17538494Sobrien LIBS="" 17638494Sobrien AC_CHECK_LIB(dl, dlopen) 17738494Sobrien LIBDL="$LIBS" 17838494Sobrien AC_SUBST(LIBDL) 17938494Sobrien LIBS="$save_LIBS" 18038494Sobrien 18138494Sobrien # Deprecated libraries, keep the flags for backwards compatibility 18238494Sobrien if test "x$OPENJDK_TARGET_OS" = "xwindows"; then 18338494Sobrien BASIC_DEPRECATED_ARG_WITH([dxsdk]) 18438494Sobrien BASIC_DEPRECATED_ARG_WITH([dxsdk-lib]) 18538494Sobrien BASIC_DEPRECATED_ARG_WITH([dxsdk-include]) 18638494Sobrien fi 18738494Sobrien 18838494Sobrien # Control if libzip can use mmap. Available for purposes of overriding. 18938494Sobrien LIBZIP_CAN_USE_MMAP=true 19038494Sobrien AC_SUBST(LIBZIP_CAN_USE_MMAP) 19138494Sobrien]) 19238494Sobrien