1#    Copyright (c) 2014 Intel Corporation.  All Rights Reserved.
2#
3#    Redistribution and use in source and binary forms, with or without
4#    modification, are permitted provided that the following conditions
5#    are met:
6#
7#      * Redistributions of source code must retain the above copyright
8#        notice, this list of conditions and the following disclaimer.
9#      * Redistributions in binary form must reproduce the above copyright
10#        notice, this list of conditions and the following disclaimer in the
11#        documentation and/or other materials provided with the distribution.
12#      * Neither the name of Intel Corporation nor the names of its
13#        contributors may be used to endorse or promote products derived
14#        from this software without specific prior written permission.
15#
16#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17#    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18#    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19#    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20#    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21#    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22#    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23#    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25#    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26#    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28# Process this file with autoconf to produce a configure script, like so:
29# aclocal -I .. -I ../config && autoconf && automake
30
31AC_INIT([MIC Offload Runtime Library], [1.0], ,[liboffloadmic])
32
33AC_CANONICAL_SYSTEM
34target_alias=${target_alias-$host_alias}
35AC_SUBST(target_alias)
36
37AM_INIT_AUTOMAKE(foreign no-dist)
38AM_MAINTAINER_MODE
39
40AC_PROG_CC
41AC_PROG_CXX
42AC_CONFIG_FILES([Makefile liboffloadmic_host.spec liboffloadmic_target.spec])
43AM_ENABLE_MULTILIB(, ..)
44AC_CONFIG_SUBDIRS(plugin)
45AC_FUNC_ALLOCA
46AC_CHECK_HEADERS([mm_malloc.h], [], [AC_MSG_ERROR(["Couldn't find mm_malloc.h"])])
47AC_CHECK_FUNCS([__secure_getenv secure_getenv])
48
49# Get target configure.
50. ${srcdir}/configure.tgt
51if test -n "$UNSUPPORTED"; then
52  AC_MSG_ERROR([Configuration ${target} is unsupported])
53fi
54
55if test "${multilib}" = "yes"; then
56  multilib_arg="--enable-multilib"
57else
58  multilib_arg=
59fi
60
61AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
62AC_ARG_ENABLE([version-specific-runtime-libs],
63  AC_HELP_STRING([--enable-version-specific-runtime-libs],
64		 [Specify that runtime libraries should be installed in a compiler-specific directory]),
65  [case "$enableval" in
66    yes) enable_version_specific_runtime_libs=yes ;;
67    no)  enable_version_specific_runtime_libs=no ;;
68    *)   AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
69   esac],
70  [enable_version_specific_runtime_libs=no])
71AC_MSG_RESULT($enable_version_specific_runtime_libs)
72
73# Make sure liboffloadmic is enabled
74case "$enable_liboffloadmic" in
75  host | target)
76    ;;
77  *)
78    AC_MSG_ERROR([Liboffloadmic is disabled]) ;;
79esac
80AM_CONDITIONAL(LIBOFFLOADMIC_HOST, [test x"$enable_liboffloadmic" = xhost])
81
82GCC_WITH_TOOLEXECLIBDIR
83
84# Calculate toolexeclibdir.
85# Also toolexecdir, though it's only used in toolexeclibdir.
86case ${enable_version_specific_runtime_libs} in
87  yes)
88    # Need the gcc compiler version to know where to install libraries
89    # and header files if --enable-version-specific-runtime-libs option
90    # is selected.
91    toolexecdir='$(libdir)/gcc/$(target_alias)'
92    toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
93    ;;
94  no)
95    if test -n "$with_cross_host" &&
96       test x"$with_cross_host" != x"no"; then
97      # Install a library built with a cross compiler in tooldir, not libdir.
98      toolexecdir='$(exec_prefix)/$(target_alias)'
99      case ${with_toolexeclibdir} in
100	no)
101	  toolexeclibdir='$(toolexecdir)/lib'
102	  ;;
103	*)
104	  toolexeclibdir=${with_toolexeclibdir}
105	  ;;
106      esac
107    else
108      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
109      toolexeclibdir='$(libdir)'
110    fi
111    multi_os_directory=`$CC -print-multi-os-directory`
112    case $multi_os_directory in
113      .) ;; # Avoid trailing /.
114      *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
115    esac
116    ;;
117esac
118
119AC_LIBTOOL_DLOPEN
120AM_PROG_LIBTOOL
121# Forbid libtool to hardcode RPATH, because we want to be able to specify
122# library search directory using LD_LIBRARY_PATH
123hardcode_into_libs=no
124AC_SUBST(toolexecdir)
125AC_SUBST(toolexeclibdir)
126
127AC_SUBST(lt_cv_dlopen_libs)
128
129if test $enable_shared = yes; then
130  link_offloadmic_host="-loffloadmic_host %{static: $LIBS}"
131  link_offloadmic_target="-loffloadmic_target %{static: $LIBS}"
132else
133  link_offloadmic_host="-loffloadmic_host $LIBS"
134  link_offloadmic_target="-loffloadmic_target $LIBS"
135fi
136AC_SUBST(link_offloadmic_host)
137AC_SUBST(link_offloadmic_target)
138
139# Determine what GCC version number to use in filesystem paths.
140GCC_BASE_VER
141
142# Must be last
143AC_OUTPUT
144