forked from OSchip/llvm-project
projects/sample: Import adapted form of current LLVM autoconf/Makefile setup so that projects/sample is standalone and not tied to the LLVM build setup.
- This currently just moves over all of the behavior from LLVM. Eventually all of the configure checks that are directly needed by the LLVM build setup should probably go away, and the project should manage their own configuration checks if necessary. - This is the 1st half of this work, the actual Makefile.common hasn't moved over yet. I've tried to stage this in such a way that incremental builds will properly reconfigure for most active developers (the Makefiles don't handle reconfiguring in a perfectly reliable way, and I haven't found an easy way to make them do so). llvm-svn: 142456
This commit is contained in:
parent
16ec8c103a
commit
1e5e5011ab
|
@ -1,7 +1,7 @@
|
||||||
# Set the name of the project here
|
# Set the name of the project here
|
||||||
PROJECT_NAME := sample
|
PROJECT_NAME := sample
|
||||||
PROJ_VERSION := 0.9
|
PROJ_VERSION := 0.9
|
||||||
|
|
||||||
# Set this variable to the top of the LLVM source tree.
|
# Set this variable to the top of the LLVM source tree.
|
||||||
LLVM_SRC_ROOT = @LLVM_SRC@
|
LLVM_SRC_ROOT = @LLVM_SRC@
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ LLVM_OBJ_ROOT = @LLVM_OBJ@
|
||||||
PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
|
PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
|
||||||
|
|
||||||
# Set the root directory of this project's object files
|
# Set the root directory of this project's object files
|
||||||
PROJ_OBJ_ROOT := $(subst //,/,@abs_top_objdir@)
|
PROJ_OBJ_ROOT := $(subst //,/,@abs_top_builddir@)
|
||||||
|
|
||||||
# Set the root directory of this project's install prefix
|
# Set the root directory of this project's install prefix
|
||||||
PROJ_INSTALL_ROOT := @prefix@
|
PROJ_INSTALL_ROOT := @prefix@
|
||||||
|
|
|
@ -0,0 +1,309 @@
|
||||||
|
#===-- Makefile.config - Local configuration for LLVM ------*- Makefile -*--===#
|
||||||
|
#
|
||||||
|
# The LLVM Compiler Infrastructure
|
||||||
|
#
|
||||||
|
# This file is distributed under the University of Illinois Open Source
|
||||||
|
# License. See LICENSE.TXT for details.
|
||||||
|
#
|
||||||
|
#===------------------------------------------------------------------------===#
|
||||||
|
#
|
||||||
|
# This file is included by Makefile.common. It defines paths and other
|
||||||
|
# values specific to a particular installation of LLVM.
|
||||||
|
#
|
||||||
|
#===------------------------------------------------------------------------===#
|
||||||
|
|
||||||
|
# Define LLVM specific info and directories based on the autoconf variables
|
||||||
|
LLVMVersion := @LLVM_VERSION@
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
# Directory Configuration
|
||||||
|
# This section of the Makefile determines what is where. To be
|
||||||
|
# specific, there are several locations that need to be defined:
|
||||||
|
#
|
||||||
|
# o LLVM_SRC_ROOT : The root directory of the LLVM source code.
|
||||||
|
# o LLVM_OBJ_ROOT : The root directory containing the built LLVM code.
|
||||||
|
#
|
||||||
|
# o PROJ_SRC_DIR : The directory containing the code to build.
|
||||||
|
# o PROJ_SRC_ROOT : The root directory of the code to build.
|
||||||
|
#
|
||||||
|
# o PROJ_OBJ_DIR : The directory in which compiled code will be placed.
|
||||||
|
# o PROJ_OBJ_ROOT : The root directory in which compiled code is placed.
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
PWD := @BINPWD@
|
||||||
|
|
||||||
|
# The macro below is expanded when 'realpath' is not built-in.
|
||||||
|
# Built-in 'realpath' is available on GNU Make 3.81.
|
||||||
|
realpath = $(shell cd $(1); $(PWD))
|
||||||
|
|
||||||
|
PROJ_OBJ_DIR := $(call realpath, .)
|
||||||
|
PROJ_OBJ_ROOT := $(call realpath, $(PROJ_OBJ_DIR)/$(LEVEL))
|
||||||
|
|
||||||
|
ifndef PROJ_SRC_ROOT
|
||||||
|
$(error Projects must define PROJ_SRC_ROOT)
|
||||||
|
endif
|
||||||
|
ifndef PROJ_OBJ_ROOT
|
||||||
|
$(error Projects must define PROJ_OBJ_ROOT)
|
||||||
|
endif
|
||||||
|
ifndef PROJ_INSTALL_ROOT
|
||||||
|
$(error Projects must define PROJ_INSTALL_ROOT)
|
||||||
|
endif
|
||||||
|
ifndef LLVM_SRC_ROOT
|
||||||
|
$(error Projects must define LLVM_SRC_ROOT)
|
||||||
|
endif
|
||||||
|
ifndef LLVM_OBJ_ROOT
|
||||||
|
$(error Projects must define LLVM_OBJ_ROOT)
|
||||||
|
endif
|
||||||
|
PROJ_SRC_DIR := $(call realpath, $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)))
|
||||||
|
prefix := $(PROJ_INSTALL_ROOT)
|
||||||
|
PROJ_prefix := $(prefix)
|
||||||
|
ifndef PROJ_VERSION
|
||||||
|
PROJ_VERSION := 1.0
|
||||||
|
endif
|
||||||
|
|
||||||
|
PROJ_bindir := $(PROJ_prefix)/bin
|
||||||
|
PROJ_libdir := $(PROJ_prefix)/lib
|
||||||
|
PROJ_datadir := $(PROJ_prefix)/share
|
||||||
|
PROJ_docsdir := $(PROJ_prefix)/docs/llvm
|
||||||
|
PROJ_etcdir := $(PROJ_prefix)/etc/llvm
|
||||||
|
PROJ_includedir := $(PROJ_prefix)/include
|
||||||
|
PROJ_infodir := $(PROJ_prefix)/info
|
||||||
|
PROJ_mandir := $(PROJ_prefix)/share/man
|
||||||
|
|
||||||
|
# Determine if we're on a unix type operating system
|
||||||
|
LLVM_ON_UNIX:=@LLVM_ON_UNIX@
|
||||||
|
LLVM_ON_WIN32:=@LLVM_ON_WIN32@
|
||||||
|
|
||||||
|
# Host operating system for which LLVM will be run.
|
||||||
|
OS=@OS@
|
||||||
|
HOST_OS=@HOST_OS@
|
||||||
|
# Target operating system for which LLVM will compile for.
|
||||||
|
TARGET_OS=@TARGET_OS@
|
||||||
|
|
||||||
|
# Target hardware architecture
|
||||||
|
ARCH=@ARCH@
|
||||||
|
|
||||||
|
# Indicates, whether we're cross-compiling LLVM or not
|
||||||
|
LLVM_CROSS_COMPILING=@LLVM_CROSS_COMPILING@
|
||||||
|
|
||||||
|
# Executable file extension for build platform (mainly for
|
||||||
|
# tablegen call if we're cross-compiling).
|
||||||
|
BUILD_EXEEXT=@BUILD_EXEEXT@
|
||||||
|
|
||||||
|
# Compilers for the build platflorm (mainly for tablegen
|
||||||
|
# call if we're cross-compiling).
|
||||||
|
BUILD_CC=@BUILD_CC@
|
||||||
|
BUILD_CXX=@BUILD_CXX@
|
||||||
|
|
||||||
|
# Triple for configuring build tools when cross-compiling
|
||||||
|
BUILD_TRIPLE=@build@
|
||||||
|
|
||||||
|
# Target triple (cpu-vendor-os) for which we should generate code
|
||||||
|
TARGET_TRIPLE=@target@
|
||||||
|
|
||||||
|
# Extra options to compile LLVM with
|
||||||
|
EXTRA_OPTIONS=@EXTRA_OPTIONS@
|
||||||
|
|
||||||
|
# Extra options to link LLVM with
|
||||||
|
EXTRA_LD_OPTIONS=@EXTRA_LD_OPTIONS@
|
||||||
|
|
||||||
|
# Endian-ness of the target
|
||||||
|
ENDIAN=@ENDIAN@
|
||||||
|
|
||||||
|
# Path to the C++ compiler to use. This is an optional setting, which defaults
|
||||||
|
# to whatever your gmake defaults to.
|
||||||
|
CXX = @CXX@
|
||||||
|
|
||||||
|
# Path to the CC binary, which use used by testcases for native builds.
|
||||||
|
CC := @CC@
|
||||||
|
|
||||||
|
# Linker flags.
|
||||||
|
LDFLAGS+=@LDFLAGS@
|
||||||
|
|
||||||
|
# Path to the library archiver program.
|
||||||
|
AR_PATH = @AR@
|
||||||
|
AR = @AR@
|
||||||
|
|
||||||
|
# Path to the nm program
|
||||||
|
NM_PATH = @NM@
|
||||||
|
|
||||||
|
# The pathnames of the programs we require to build
|
||||||
|
CMP := @CMP@
|
||||||
|
CP := @CP@
|
||||||
|
DATE := @DATE@
|
||||||
|
FIND := @FIND@
|
||||||
|
GREP := @GREP@
|
||||||
|
INSTALL := @INSTALL@
|
||||||
|
MKDIR := $(PROJ_SRC_ROOT)/autoconf/mkinstalldirs
|
||||||
|
MV := @MV@
|
||||||
|
RANLIB := @RANLIB@
|
||||||
|
RM := @RM@
|
||||||
|
SED := @SED@
|
||||||
|
TAR := @TAR@
|
||||||
|
|
||||||
|
# Paths to miscellaneous programs we hope are present but might not be
|
||||||
|
PERL := @PERL@
|
||||||
|
BZIP2 := @BZIP2@
|
||||||
|
CAT := @CAT@
|
||||||
|
DOT := @DOT@
|
||||||
|
DOXYGEN := @DOXYGEN@
|
||||||
|
GROFF := @GROFF@
|
||||||
|
GZIPBIN := @GZIPBIN@
|
||||||
|
OCAMLC := @OCAMLC@
|
||||||
|
OCAMLOPT := @OCAMLOPT@
|
||||||
|
OCAMLDEP := @OCAMLDEP@
|
||||||
|
OCAMLDOC := @OCAMLDOC@
|
||||||
|
GAS := @GAS@
|
||||||
|
POD2HTML := @POD2HTML@
|
||||||
|
POD2MAN := @POD2MAN@
|
||||||
|
PDFROFF := @PDFROFF@
|
||||||
|
RUNTEST := @RUNTEST@
|
||||||
|
TCLSH := @TCLSH@
|
||||||
|
ZIP := @ZIP@
|
||||||
|
|
||||||
|
HAVE_PERL := @HAVE_PERL@
|
||||||
|
HAVE_PTHREAD := @HAVE_PTHREAD@
|
||||||
|
|
||||||
|
LIBS := @LIBS@
|
||||||
|
|
||||||
|
# Targets that we should build
|
||||||
|
TARGETS_TO_BUILD=@TARGETS_TO_BUILD@
|
||||||
|
|
||||||
|
# Path to directory where object files should be stored during a build.
|
||||||
|
# Set OBJ_ROOT to "." if you do not want to use a separate place for
|
||||||
|
# object files.
|
||||||
|
OBJ_ROOT := .
|
||||||
|
|
||||||
|
# What to pass as rpath flag to g++
|
||||||
|
RPATH := @RPATH@
|
||||||
|
|
||||||
|
# What to pass as -rdynamic flag to g++
|
||||||
|
RDYNAMIC := @RDYNAMIC@
|
||||||
|
|
||||||
|
# These are options that can either be enabled here, or can be enabled on the
|
||||||
|
# make command line (ie, make ENABLE_PROFILING=1):
|
||||||
|
|
||||||
|
# When ENABLE_OPTIMIZED is enabled, LLVM code is optimized and output is put
|
||||||
|
# into the "Release" directories. Otherwise, LLVM code is not optimized and
|
||||||
|
# output is put in the "Debug" directories.
|
||||||
|
#ENABLE_OPTIMIZED = 1
|
||||||
|
@ENABLE_OPTIMIZED@
|
||||||
|
|
||||||
|
# When ENABLE_PROFILING is enabled, profile instrumentation is done
|
||||||
|
# and output is put into the "<Flavor>+Profile" directories, where
|
||||||
|
# <Flavor> is either Debug or Release depending on how other build
|
||||||
|
# flags are set. Otherwise, output is put in the <Flavor>
|
||||||
|
# directories.
|
||||||
|
#ENABLE_PROFILING = 1
|
||||||
|
@ENABLE_PROFILING@
|
||||||
|
|
||||||
|
# When DISABLE_ASSERTIONS is enabled, builds of all of the LLVM code will
|
||||||
|
# exclude assertion checks, otherwise they are included.
|
||||||
|
#DISABLE_ASSERTIONS = 1
|
||||||
|
@DISABLE_ASSERTIONS@
|
||||||
|
|
||||||
|
# When ENABLE_EXPENSIVE_CHECKS is enabled, builds of all of the LLVM
|
||||||
|
# code will include expensive checks, otherwise they are excluded.
|
||||||
|
#ENABLE_EXPENSIVE_CHECKS = 0
|
||||||
|
@ENABLE_EXPENSIVE_CHECKS@
|
||||||
|
|
||||||
|
# When DEBUG_RUNTIME is enabled, the runtime libraries will retain debug
|
||||||
|
# symbols.
|
||||||
|
#DEBUG_RUNTIME = 1
|
||||||
|
@DEBUG_RUNTIME@
|
||||||
|
|
||||||
|
# When DEBUG_SYMBOLS is enabled, the compiler libraries will retain debug
|
||||||
|
# symbols.
|
||||||
|
#DEBUG_SYMBOLS = 1
|
||||||
|
@DEBUG_SYMBOLS@
|
||||||
|
|
||||||
|
# The compiler flags to use for optimized builds.
|
||||||
|
OPTIMIZE_OPTION := @OPTIMIZE_OPTION@
|
||||||
|
|
||||||
|
# When ENABLE_PROFILING is enabled, the llvm source base is built with profile
|
||||||
|
# information to allow gprof to be used to get execution frequencies.
|
||||||
|
#ENABLE_PROFILING = 1
|
||||||
|
|
||||||
|
# When ENABLE_DOCS is disabled, docs/ will not be built.
|
||||||
|
ENABLE_DOCS = @ENABLE_DOCS@
|
||||||
|
|
||||||
|
# When ENABLE_DOXYGEN is enabled, the doxygen documentation will be built
|
||||||
|
ENABLE_DOXYGEN = @ENABLE_DOXYGEN@
|
||||||
|
|
||||||
|
# Do we want to enable threads?
|
||||||
|
ENABLE_THREADS := @ENABLE_THREADS@
|
||||||
|
|
||||||
|
# Do we want to build with position independent code?
|
||||||
|
ENABLE_PIC := @ENABLE_PIC@
|
||||||
|
|
||||||
|
# Do we want to build a shared library and link the tools with it?
|
||||||
|
ENABLE_SHARED := @ENABLE_SHARED@
|
||||||
|
|
||||||
|
# Do we want to link the stdc++ into a shared library? (Cygming)
|
||||||
|
ENABLE_EMBED_STDCXX := @ENABLE_EMBED_STDCXX@
|
||||||
|
|
||||||
|
# Use -fvisibility-inlines-hidden?
|
||||||
|
ENABLE_VISIBILITY_INLINES_HIDDEN := @ENABLE_VISIBILITY_INLINES_HIDDEN@
|
||||||
|
|
||||||
|
# Do we want to allow timestamping information into builds?
|
||||||
|
ENABLE_TIMESTAMPS := @ENABLE_TIMESTAMPS@
|
||||||
|
|
||||||
|
# This option tells the Makefiles to produce verbose output.
|
||||||
|
# It essentially prints the commands that make is executing
|
||||||
|
#VERBOSE = 1
|
||||||
|
|
||||||
|
# Enable JIT for this platform
|
||||||
|
TARGET_HAS_JIT = @TARGET_HAS_JIT@
|
||||||
|
|
||||||
|
# Environment variable to set to change the runtime shared library search path.
|
||||||
|
SHLIBPATH_VAR = @SHLIBPATH_VAR@
|
||||||
|
|
||||||
|
# Shared library extension for host platform.
|
||||||
|
SHLIBEXT = @SHLIBEXT@
|
||||||
|
|
||||||
|
# Executable file extension for host platform.
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
|
||||||
|
# Things we just assume are "there"
|
||||||
|
ECHO := echo
|
||||||
|
|
||||||
|
# Get the options for causing archives to link all their content instead of
|
||||||
|
# just missing symbols, and the inverse of that. This is used for certain LLVM
|
||||||
|
# tools that permit loadable modules. It ensures that the LLVM symbols will be
|
||||||
|
# available to those loadable modules.
|
||||||
|
LINKALL := @LINKALL@
|
||||||
|
NOLINKALL := @NOLINKALL@
|
||||||
|
|
||||||
|
# Get the value of HUGE_VAL_SANITY which will be either "yes" or "no" depending
|
||||||
|
# on the check.
|
||||||
|
HUGE_VAL_SANITY = @HUGE_VAL_SANITY@
|
||||||
|
|
||||||
|
# Bindings that we should build
|
||||||
|
BINDINGS_TO_BUILD := @BINDINGS_TO_BUILD@
|
||||||
|
ALL_BINDINGS := @ALL_BINDINGS@
|
||||||
|
OCAML_LIBDIR := @OCAML_LIBDIR@
|
||||||
|
|
||||||
|
# When compiling under Mingw/Cygwin, executables such as tblgen
|
||||||
|
# expect Windows paths, whereas the build system uses Unix paths.
|
||||||
|
# The function SYSPATH transforms Unix paths into Windows paths.
|
||||||
|
ifneq (,$(findstring -mno-cygwin, $(CXX)))
|
||||||
|
SYSPATH = $(shell echo $(1) | cygpath -m -f -)
|
||||||
|
else
|
||||||
|
SYSPATH = $(1)
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Location of the plugin header file for gold.
|
||||||
|
BINUTILS_INCDIR := @BINUTILS_INCDIR@
|
||||||
|
|
||||||
|
# Optional flags supported by the compiler
|
||||||
|
# -Wno-missing-field-initializers
|
||||||
|
NO_MISSING_FIELD_INITIALIZERS = @NO_MISSING_FIELD_INITIALIZERS@
|
||||||
|
# -Wno-variadic-macros
|
||||||
|
NO_VARIADIC_MACROS = @NO_VARIADIC_MACROS@
|
||||||
|
|
||||||
|
# Was polly found in tools/polly?
|
||||||
|
LLVM_HAS_POLLY = @LLVM_HAS_POLLY@
|
||||||
|
# Flags supported by the linker.
|
||||||
|
# bfd ld / gold --version-script=file
|
||||||
|
HAVE_LINK_VERSION_SCRIPT = @HAVE_LINK_VERSION_SCRIPT@
|
File diff suppressed because it is too large
Load Diff
|
@ -12,15 +12,13 @@ fi
|
||||||
cwd=`pwd`
|
cwd=`pwd`
|
||||||
if test -d ../../../autoconf/m4 ; then
|
if test -d ../../../autoconf/m4 ; then
|
||||||
cd ../../../autoconf/m4
|
cd ../../../autoconf/m4
|
||||||
llvm_m4=`pwd`
|
|
||||||
llvm_src_root=../..
|
llvm_src_root=../..
|
||||||
llvm_obj_root=../..
|
llvm_obj_root=../..
|
||||||
cd $cwd
|
cd $cwd
|
||||||
elif test -d ../../llvm/autoconf/m4 ; then
|
elif test -d ../../llvm/autoconf/m4 ; then
|
||||||
cd ../../llvm/autoconf/m4
|
cd ../../llvm/autoconf/m4
|
||||||
llvm_m4=`pwd`
|
llvm_src_root=../..
|
||||||
llvm_src_root=..
|
llvm_obj_root=../..
|
||||||
llvm_obj_root=..
|
|
||||||
cd $cwd
|
cd $cwd
|
||||||
else
|
else
|
||||||
while true ; do
|
while true ; do
|
||||||
|
@ -28,7 +26,6 @@ else
|
||||||
read -p "Enter full path to LLVM source:" REPLY
|
read -p "Enter full path to LLVM source:" REPLY
|
||||||
if test -d "$REPLY/autoconf/m4" ; then
|
if test -d "$REPLY/autoconf/m4" ; then
|
||||||
llvm_src_root="$REPLY"
|
llvm_src_root="$REPLY"
|
||||||
llvm_m4="$REPLY/autoconf/m4"
|
|
||||||
read -p "Enter full path to LLVM objects (empty for same as source):" REPLY
|
read -p "Enter full path to LLVM objects (empty for same as source):" REPLY
|
||||||
if test -d "$REPLY" ; then
|
if test -d "$REPLY" ; then
|
||||||
llvm_obj_root="$REPLY"
|
llvm_obj_root="$REPLY"
|
||||||
|
@ -39,13 +36,9 @@ else
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
# Patch the LLVM_ROOT in configure.ac, if it needs it
|
|
||||||
cp configure.ac configure.bak
|
|
||||||
sed -e "s#^LLVM_SRC_ROOT=.*#LLVM_SRC_ROOT=\"$llvm_src_root\"#" \
|
|
||||||
-e "s#^LLVM_OBJ_ROOT=.*#LLVM_OBJ_ROOT=\"$llvm_obj_root\"#" configure.bak > configure.ac
|
|
||||||
echo "Regenerating aclocal.m4 with aclocal"
|
echo "Regenerating aclocal.m4 with aclocal"
|
||||||
rm -f aclocal.m4
|
rm -f aclocal.m4
|
||||||
aclocal -I $llvm_m4 -I "$llvm_m4/.." || die "aclocal failed"
|
aclocal -I $cwd/m4 || die "aclocal failed"
|
||||||
echo "Regenerating configure with autoconf"
|
echo "Regenerating configure with autoconf"
|
||||||
autoconf --warnings=all -o ../configure configure.ac || die "autoconf failed"
|
autoconf --warnings=all -o ../configure configure.ac || die "autoconf failed"
|
||||||
cd ..
|
cd ..
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
global: main;
|
||||||
|
__progname;
|
||||||
|
environ;
|
||||||
|
|
||||||
|
local: *;
|
||||||
|
};
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,322 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# install - install a program, script, or datafile
|
||||||
|
|
||||||
|
scriptversion=2004-09-10.20
|
||||||
|
|
||||||
|
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||||
|
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||||
|
# following copyright and license.
|
||||||
|
#
|
||||||
|
# Copyright (C) 1994 X Consortium
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to
|
||||||
|
# deal in the Software without restriction, including without limitation the
|
||||||
|
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||||
|
# sell copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in
|
||||||
|
# all copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||||
|
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
|
||||||
|
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# Except as contained in this notice, the name of the X Consortium shall not
|
||||||
|
# be used in advertising or otherwise to promote the sale, use or other deal-
|
||||||
|
# ings in this Software without prior written authorization from the X Consor-
|
||||||
|
# tium.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# FSF changes to this file are in the public domain.
|
||||||
|
#
|
||||||
|
# Calling this script install-sh is preferred over install.sh, to prevent
|
||||||
|
# `make' implicit rules from creating a file called install from it
|
||||||
|
# when there is no Makefile.
|
||||||
|
#
|
||||||
|
# This script is compatible with the BSD install script, but was written
|
||||||
|
# from scratch. It can only install one file at a time, a restriction
|
||||||
|
# shared with many OS's install programs.
|
||||||
|
|
||||||
|
# set DOITPROG to echo to test this script
|
||||||
|
|
||||||
|
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||||
|
doit="${DOITPROG-}"
|
||||||
|
|
||||||
|
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||||
|
|
||||||
|
mvprog="${MVPROG-mv}"
|
||||||
|
cpprog="${CPPROG-cp}"
|
||||||
|
chmodprog="${CHMODPROG-chmod}"
|
||||||
|
chownprog="${CHOWNPROG-chown}"
|
||||||
|
chgrpprog="${CHGRPPROG-chgrp}"
|
||||||
|
stripprog="${STRIPPROG-strip}"
|
||||||
|
rmprog="${RMPROG-rm}"
|
||||||
|
mkdirprog="${MKDIRPROG-mkdir}"
|
||||||
|
|
||||||
|
chmodcmd="$chmodprog 0755"
|
||||||
|
chowncmd=
|
||||||
|
chgrpcmd=
|
||||||
|
stripcmd=
|
||||||
|
rmcmd="$rmprog -f"
|
||||||
|
mvcmd="$mvprog"
|
||||||
|
src=
|
||||||
|
dst=
|
||||||
|
dir_arg=
|
||||||
|
dstarg=
|
||||||
|
no_target_directory=
|
||||||
|
|
||||||
|
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||||
|
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||||
|
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||||
|
or: $0 [OPTION]... -d DIRECTORIES...
|
||||||
|
|
||||||
|
In the 1st form, copy SRCFILE to DSTFILE.
|
||||||
|
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
|
||||||
|
In the 4th, create DIRECTORIES.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-c (ignored)
|
||||||
|
-d create directories instead of installing files.
|
||||||
|
-g GROUP $chgrpprog installed files to GROUP.
|
||||||
|
-m MODE $chmodprog installed files to MODE.
|
||||||
|
-o USER $chownprog installed files to USER.
|
||||||
|
-s $stripprog installed files.
|
||||||
|
-t DIRECTORY install into DIRECTORY.
|
||||||
|
-T report an error if DSTFILE is a directory.
|
||||||
|
--help display this help and exit.
|
||||||
|
--version display version info and exit.
|
||||||
|
|
||||||
|
Environment variables override the default commands:
|
||||||
|
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||||
|
"
|
||||||
|
|
||||||
|
while test -n "$1"; do
|
||||||
|
case $1 in
|
||||||
|
-c) shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-d) dir_arg=true
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-g) chgrpcmd="$chgrpprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
--help) echo "$usage"; exit 0;;
|
||||||
|
|
||||||
|
-m) chmodcmd="$chmodprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-o) chowncmd="$chownprog $2"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-s) stripcmd=$stripprog
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-t) dstarg=$2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
-T) no_target_directory=true
|
||||||
|
shift
|
||||||
|
continue;;
|
||||||
|
|
||||||
|
--version) echo "$0 $scriptversion"; exit 0;;
|
||||||
|
|
||||||
|
*) # When -d is used, all remaining arguments are directories to create.
|
||||||
|
# When -t is used, the destination is already specified.
|
||||||
|
test -n "$dir_arg$dstarg" && break
|
||||||
|
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$dstarg"; then
|
||||||
|
# $@ is not empty: it contains at least $arg.
|
||||||
|
set fnord "$@" "$dstarg"
|
||||||
|
shift # fnord
|
||||||
|
fi
|
||||||
|
shift # arg
|
||||||
|
dstarg=$arg
|
||||||
|
done
|
||||||
|
break;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$1"; then
|
||||||
|
if test -z "$dir_arg"; then
|
||||||
|
echo "$0: no input file specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# It's OK to call `install-sh -d' without argument.
|
||||||
|
# This can happen when creating conditional directories.
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
for src
|
||||||
|
do
|
||||||
|
# Protect names starting with `-'.
|
||||||
|
case $src in
|
||||||
|
-*) src=./$src ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
dst=$src
|
||||||
|
src=
|
||||||
|
|
||||||
|
if test -d "$dst"; then
|
||||||
|
mkdircmd=:
|
||||||
|
chmodcmd=
|
||||||
|
else
|
||||||
|
mkdircmd=$mkdirprog
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
|
||||||
|
# might cause directories to be created, which would be especially bad
|
||||||
|
# if $src (and thus $dsttmp) contains '*'.
|
||||||
|
if test ! -f "$src" && test ! -d "$src"; then
|
||||||
|
echo "$0: $src does not exist." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$dstarg"; then
|
||||||
|
echo "$0: no destination specified." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
dst=$dstarg
|
||||||
|
# Protect names starting with `-'.
|
||||||
|
case $dst in
|
||||||
|
-*) dst=./$dst ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If destination is a directory, append the input filename; won't work
|
||||||
|
# if double slashes aren't ignored.
|
||||||
|
if test -d "$dst"; then
|
||||||
|
if test -n "$no_target_directory"; then
|
||||||
|
echo "$0: $dstarg: Is a directory" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
dst=$dst/`basename "$src"`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This sed command emulates the dirname command.
|
||||||
|
dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||||
|
|
||||||
|
# Make sure that the destination directory exists.
|
||||||
|
|
||||||
|
# Skip lots of stat calls in the usual case.
|
||||||
|
if test ! -d "$dstdir"; then
|
||||||
|
defaultIFS='
|
||||||
|
'
|
||||||
|
IFS="${IFS-$defaultIFS}"
|
||||||
|
|
||||||
|
oIFS=$IFS
|
||||||
|
# Some sh's can't handle IFS=/ for some reason.
|
||||||
|
IFS='%'
|
||||||
|
set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
|
||||||
|
IFS=$oIFS
|
||||||
|
|
||||||
|
pathcomp=
|
||||||
|
|
||||||
|
while test $# -ne 0 ; do
|
||||||
|
pathcomp=$pathcomp$1
|
||||||
|
shift
|
||||||
|
if test ! -d "$pathcomp"; then
|
||||||
|
$mkdirprog "$pathcomp"
|
||||||
|
# mkdir can fail with a `File exist' error in case several
|
||||||
|
# install-sh are creating the directory concurrently. This
|
||||||
|
# is OK.
|
||||||
|
test -d "$pathcomp" || exit
|
||||||
|
fi
|
||||||
|
pathcomp=$pathcomp/
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -n "$dir_arg"; then
|
||||||
|
$doit $mkdircmd "$dst" \
|
||||||
|
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
|
||||||
|
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
|
||||||
|
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
|
||||||
|
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
|
||||||
|
|
||||||
|
else
|
||||||
|
dstfile=`basename "$dst"`
|
||||||
|
|
||||||
|
# Make a couple of temp file names in the proper directory.
|
||||||
|
dsttmp=$dstdir/_inst.$$_
|
||||||
|
rmtmp=$dstdir/_rm.$$_
|
||||||
|
|
||||||
|
# Trap to clean up those temp files at exit.
|
||||||
|
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
|
||||||
|
trap '(exit $?); exit' 1 2 13 15
|
||||||
|
|
||||||
|
# Copy the file name to the temp name.
|
||||||
|
$doit $cpprog "$src" "$dsttmp" &&
|
||||||
|
|
||||||
|
# and set any options; do chmod last to preserve setuid bits.
|
||||||
|
#
|
||||||
|
# If any of these fail, we abort the whole thing. If we want to
|
||||||
|
# ignore errors from any of these, just make sure not to ignore
|
||||||
|
# errors from the above "$doit $cpprog $src $dsttmp" command.
|
||||||
|
#
|
||||||
|
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
|
||||||
|
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
|
||||||
|
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
|
||||||
|
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|
||||||
|
|| {
|
||||||
|
# The rename failed, perhaps because mv can't rename something else
|
||||||
|
# to itself, or perhaps because mv is so ancient that it does not
|
||||||
|
# support -f.
|
||||||
|
|
||||||
|
# Now remove or move aside any old file at destination location.
|
||||||
|
# We try this two ways since rm can't unlink itself on some
|
||||||
|
# systems and the destination file might be busy for other
|
||||||
|
# reasons. In this case, the final cleanup might fail but the new
|
||||||
|
# file should still install successfully.
|
||||||
|
{
|
||||||
|
if test -f "$dstdir/$dstfile"; then
|
||||||
|
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|
||||||
|
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|
||||||
|
|| {
|
||||||
|
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
|
||||||
|
(exit 1); exit
|
||||||
|
}
|
||||||
|
else
|
||||||
|
:
|
||||||
|
fi
|
||||||
|
} &&
|
||||||
|
|
||||||
|
# Now rename the file to the real destination.
|
||||||
|
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fi || { (exit 1); exit; }
|
||||||
|
done
|
||||||
|
|
||||||
|
# The final little trick to "correctly" pass the exit status to the exit trap.
|
||||||
|
{
|
||||||
|
(exit 0); exit
|
||||||
|
}
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,42 @@
|
||||||
|
# Check for the extension used for executables on build platform.
|
||||||
|
# This is necessary for cross-compiling where the build platform
|
||||||
|
# may differ from the host platform.
|
||||||
|
AC_DEFUN([AC_BUILD_EXEEXT],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([for executable suffix on build platform])
|
||||||
|
AC_CACHE_VAL(ac_cv_build_exeext,
|
||||||
|
[if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
|
||||||
|
ac_cv_build_exeext=.exe
|
||||||
|
else
|
||||||
|
ac_build_prefix=${build_alias}-
|
||||||
|
|
||||||
|
AC_CHECK_PROG(BUILD_CC, ${ac_build_prefix}gcc, ${ac_build_prefix}gcc)
|
||||||
|
if test -z "$BUILD_CC"; then
|
||||||
|
AC_CHECK_PROG(BUILD_CC, gcc, gcc)
|
||||||
|
if test -z "$BUILD_CC"; then
|
||||||
|
AC_CHECK_PROG(BUILD_CC, cc, cc, , , /usr/ucb/cc)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
test -z "$BUILD_CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||||
|
ac_build_link='${BUILD_CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AS_MESSAGE_LOG_FD'
|
||||||
|
rm -f conftest*
|
||||||
|
echo 'int main () { return 0; }' > conftest.$ac_ext
|
||||||
|
ac_cv_build_exeext=
|
||||||
|
if AC_TRY_EVAL(ac_build_link); then
|
||||||
|
for file in conftest.*; do
|
||||||
|
case $file in
|
||||||
|
*.c | *.o | *.obj | *.dSYM) ;;
|
||||||
|
*) ac_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([installation or configuration problem: compiler cannot create executables.])
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
test x"${ac_cv_build_exeext}" = x && ac_cv_build_exeext=blank
|
||||||
|
fi])
|
||||||
|
BUILD_EXEEXT=""
|
||||||
|
test x"${ac_cv_build_exeext}" != xblank && BUILD_EXEEXT=${ac_cv_build_exeext}
|
||||||
|
AC_MSG_RESULT(${ac_cv_build_exeext})
|
||||||
|
ac_build_exeext=$BUILD_EXEEXT
|
||||||
|
AC_SUBST(BUILD_EXEEXT)])
|
|
@ -0,0 +1,31 @@
|
||||||
|
#
|
||||||
|
# Determine if the printf() functions have the %a format character.
|
||||||
|
# This is modified from:
|
||||||
|
# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
|
||||||
|
AC_DEFUN([AC_C_PRINTF_A],
|
||||||
|
[AC_CACHE_CHECK([if printf has the %a format character],[llvm_cv_c_printf_a],
|
||||||
|
[AC_LANG_PUSH([C])
|
||||||
|
AC_RUN_IFELSE([
|
||||||
|
AC_LANG_PROGRAM([[
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
]],[[
|
||||||
|
volatile double A, B;
|
||||||
|
char Buffer[100];
|
||||||
|
A = 1;
|
||||||
|
A /= 10.0;
|
||||||
|
sprintf(Buffer, "%a", A);
|
||||||
|
B = atof(Buffer);
|
||||||
|
if (A != B)
|
||||||
|
return (1);
|
||||||
|
if (A != 0x1.999999999999ap-4)
|
||||||
|
return (1);
|
||||||
|
return (0);]])],
|
||||||
|
llvm_cv_c_printf_a=yes,
|
||||||
|
llvmac_cv_c_printf_a=no,
|
||||||
|
llvmac_cv_c_printf_a=no)
|
||||||
|
AC_LANG_POP([C])])
|
||||||
|
if test "$llvm_cv_c_printf_a" = "yes"; then
|
||||||
|
AC_DEFINE([HAVE_PRINTF_A],[1],[Define to have the %a format string])
|
||||||
|
fi
|
||||||
|
])
|
|
@ -0,0 +1,26 @@
|
||||||
|
#
|
||||||
|
# Check for GNU Make. This is originally from
|
||||||
|
# http://www.gnu.org/software/ac-archive/htmldoc/check_gnu_make.html
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_CHECK_GNU_MAKE],
|
||||||
|
[AC_CACHE_CHECK([for GNU make],[llvm_cv_gnu_make_command],
|
||||||
|
dnl Search all the common names for GNU make
|
||||||
|
[llvm_cv_gnu_make_command=''
|
||||||
|
for a in "$MAKE" make gmake gnumake ; do
|
||||||
|
if test -z "$a" ; then continue ; fi ;
|
||||||
|
if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null )
|
||||||
|
then
|
||||||
|
llvm_cv_gnu_make_command=$a ;
|
||||||
|
break;
|
||||||
|
fi
|
||||||
|
done])
|
||||||
|
dnl If there was a GNU version, then set @ifGNUmake@ to the empty string,
|
||||||
|
dnl '#' otherwise
|
||||||
|
if test "x$llvm_cv_gnu_make_command" != "x" ; then
|
||||||
|
ifGNUmake='' ;
|
||||||
|
else
|
||||||
|
ifGNUmake='#' ;
|
||||||
|
AC_MSG_RESULT("Not found");
|
||||||
|
fi
|
||||||
|
AC_SUBST(ifGNUmake)
|
||||||
|
])
|
|
@ -0,0 +1,9 @@
|
||||||
|
#
|
||||||
|
# Configure a Makefile without clobbering it if it exists and is not out of
|
||||||
|
# date. This macro is unique to LLVM.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_CONFIG_MAKEFILE],
|
||||||
|
[AC_CONFIG_COMMANDS($1,
|
||||||
|
[${srcdir}/autoconf/mkinstalldirs `dirname $1`
|
||||||
|
${SHELL} ${srcdir}/autoconf/install-sh -m 0644 -c ${srcdir}/$1 $1])
|
||||||
|
])
|
|
@ -0,0 +1,14 @@
|
||||||
|
#
|
||||||
|
# Provide the arguments and other processing needed for an LLVM project
|
||||||
|
#
|
||||||
|
AC_DEFUN([LLVM_CONFIG_PROJECT],
|
||||||
|
[AC_ARG_WITH([llvmsrc],
|
||||||
|
AS_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),
|
||||||
|
[llvm_src="$withval"],[llvm_src="]$1["])
|
||||||
|
AC_SUBST(LLVM_SRC,$llvm_src)
|
||||||
|
AC_ARG_WITH([llvmobj],
|
||||||
|
AS_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),
|
||||||
|
[llvm_obj="$withval"],[llvm_obj="]$2["])
|
||||||
|
AC_SUBST(LLVM_OBJ,$llvm_obj)
|
||||||
|
AC_CONFIG_COMMANDS([setup],,[llvm_src="${LLVM_SRC}"])
|
||||||
|
])
|
|
@ -0,0 +1,2 @@
|
||||||
|
AC_DEFUN([CXX_FLAG_CHECK],
|
||||||
|
[AC_SUBST($1, `$CXX $2 -fsyntax-only -xc /dev/null 2>/dev/null && echo $2`)])
|
|
@ -0,0 +1,118 @@
|
||||||
|
dnl Check for a standard program that has a bin, include and lib directory
|
||||||
|
dnl
|
||||||
|
dnl Parameters:
|
||||||
|
dnl $1 - prefix directory to check
|
||||||
|
dnl $2 - program name to check
|
||||||
|
dnl $3 - header file to check
|
||||||
|
dnl $4 - library file to check
|
||||||
|
AC_DEFUN([CHECK_STD_PROGRAM],
|
||||||
|
[m4_define([allcapsname],translit($2,a-z,A-Z))
|
||||||
|
if test -n "$1" -a -d "$1" -a -n "$2" -a -d "$1/bin" -a -x "$1/bin/$2" ; then
|
||||||
|
AC_SUBST([USE_]allcapsname(),["USE_]allcapsname()[ = 1"])
|
||||||
|
AC_SUBST(allcapsname(),[$1/bin/$2])
|
||||||
|
AC_SUBST(allcapsname()[_BIN],[$1/bin])
|
||||||
|
AC_SUBST(allcapsname()[_DIR],[$1])
|
||||||
|
if test -n "$3" -a -d "$1/include" -a -f "$1/include/$3" ; then
|
||||||
|
AC_SUBST(allcapsname()[_INC],[$1/include])
|
||||||
|
fi
|
||||||
|
if test -n "$4" -a -d "$1/lib" -a -f "$1/lib/$4" ; then
|
||||||
|
AC_SUBST(allcapsname()[_LIB],[$1/lib])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl Find a program via --with options, in the path, or well known places
|
||||||
|
dnl
|
||||||
|
dnl Parameters:
|
||||||
|
dnl $1 - program's executable name
|
||||||
|
dnl $2 - header file name to check (optional)
|
||||||
|
dnl $3 - library file name to check (optional)
|
||||||
|
dnl $4 - alternate (long) name for the program
|
||||||
|
AC_DEFUN([FIND_STD_PROGRAM],
|
||||||
|
[m4_define([allcapsname],translit($1,a-z,A-Z))
|
||||||
|
m4_define([stdprog_long_name],ifelse($4,,translit($1,[ !@#$%^&*()-+={}[]:;"',./?],[-]),translit($4,[ !@#$%^&*()-+={}[]:;"',./?],[-])))
|
||||||
|
AC_MSG_CHECKING([for ]stdprog_long_name()[ bin/lib/include locations])
|
||||||
|
AC_ARG_WITH($1,
|
||||||
|
AS_HELP_STRING([--with-]stdprog_long_name()[=DIR],
|
||||||
|
[Specify that the ]stdprog_long_name()[ install prefix is DIR]),
|
||||||
|
$1[pfxdir=$withval],$1[pfxdir=nada])
|
||||||
|
AC_ARG_WITH($1[-bin],
|
||||||
|
AS_HELP_STRING([--with-]stdprog_long_name()[-bin=DIR],
|
||||||
|
[Specify that the ]stdprog_long_name()[ binary is in DIR]),
|
||||||
|
$1[bindir=$withval],$1[bindir=nada])
|
||||||
|
AC_ARG_WITH($1[-lib],
|
||||||
|
AS_HELP_STRING([--with-]stdprog_long_name()[-lib=DIR],
|
||||||
|
[Specify that ]stdprog_long_name()[ libraries are in DIR]),
|
||||||
|
$1[libdir=$withval],$1[libdir=nada])
|
||||||
|
AC_ARG_WITH($1[-inc],
|
||||||
|
AS_HELP_STRING([--with-]stdprog_long_name()[-inc=DIR],
|
||||||
|
[Specify that the ]stdprog_long_name()[ includes are in DIR]),
|
||||||
|
$1[incdir=$withval],$1[incdir=nada])
|
||||||
|
eval pfxval=\$\{$1pfxdir\}
|
||||||
|
eval binval=\$\{$1bindir\}
|
||||||
|
eval incval=\$\{$1incdir\}
|
||||||
|
eval libval=\$\{$1libdir\}
|
||||||
|
if test "${pfxval}" != "nada" ; then
|
||||||
|
CHECK_STD_PROGRAM(${pfxval},$1,$2,$3)
|
||||||
|
elif test "${binval}" != "nada" ; then
|
||||||
|
if test "${libval}" != "nada" ; then
|
||||||
|
if test "${incval}" != "nada" ; then
|
||||||
|
if test -d "${binval}" ; then
|
||||||
|
if test -d "${incval}" ; then
|
||||||
|
if test -d "${libval}" ; then
|
||||||
|
AC_SUBST(allcapsname(),${binval}/$1)
|
||||||
|
AC_SUBST(allcapsname()[_BIN],${binval})
|
||||||
|
AC_SUBST(allcapsname()[_INC],${incval})
|
||||||
|
AC_SUBST(allcapsname()[_LIB],${libval})
|
||||||
|
AC_SUBST([USE_]allcapsname(),["USE_]allcapsname()[ = 1"])
|
||||||
|
AC_MSG_RESULT([found via --with options])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([failed])
|
||||||
|
AC_MSG_ERROR([The --with-]$1[-libdir value must be a directory])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([failed])
|
||||||
|
AC_MSG_ERROR([The --with-]$1[-incdir value must be a directory])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([failed])
|
||||||
|
AC_MSG_ERROR([The --with-]$1[-bindir value must be a directory])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([failed])
|
||||||
|
AC_MSG_ERROR([The --with-]$1[-incdir option must be specified])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([failed])
|
||||||
|
AC_MSG_ERROR([The --with-]$1[-libdir option must be specified])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
tmppfxdir=`which $1 2>&1`
|
||||||
|
if test -n "$tmppfxdir" -a -d "${tmppfxdir%*$1}" -a \
|
||||||
|
-d "${tmppfxdir%*$1}/.." ; then
|
||||||
|
tmppfxdir=`cd "${tmppfxdir%*$1}/.." ; pwd`
|
||||||
|
CHECK_STD_PROGRAM($tmppfxdir,$1,$2,$3)
|
||||||
|
AC_MSG_RESULT([found in PATH at ]$tmppfxdir)
|
||||||
|
else
|
||||||
|
checkresult="yes"
|
||||||
|
eval checkval=\$\{"USE_"allcapsname()\}
|
||||||
|
CHECK_STD_PROGRAM([/usr],$1,$2,$3)
|
||||||
|
if test -z "${checkval}" ; then
|
||||||
|
CHECK_STD_PROGRAM([/usr/local],$1,$2,$3)
|
||||||
|
if test -z "${checkval}" ; then
|
||||||
|
CHECK_STD_PROGRAM([/sw],$1,$2,$3)
|
||||||
|
if test -z "${checkval}" ; then
|
||||||
|
CHECK_STD_PROGRAM([/opt],$1,$2,$3)
|
||||||
|
if test -z "${checkval}" ; then
|
||||||
|
CHECK_STD_PROGRAM([/],$1,$2,$3)
|
||||||
|
if test -z "${checkval}" ; then
|
||||||
|
checkresult="no"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT($checkresult)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
|
@ -0,0 +1,36 @@
|
||||||
|
#
|
||||||
|
# This function determins if the the isinf function isavailable on this
|
||||||
|
# platform.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_FUNC_ISINF],[
|
||||||
|
AC_SINGLE_CXX_CHECK([ac_cv_func_isinf_in_math_h],
|
||||||
|
[isinf], [<math.h>],
|
||||||
|
[float f; isinf(f);])
|
||||||
|
if test "$ac_cv_func_isinf_in_math_h" = "yes" ; then
|
||||||
|
AC_DEFINE([HAVE_ISINF_IN_MATH_H],1,[Set to 1 if the isinf function is found in <math.h>])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SINGLE_CXX_CHECK([ac_cv_func_isinf_in_cmath],
|
||||||
|
[isinf], [<cmath>],
|
||||||
|
[float f; isinf(f);])
|
||||||
|
if test "$ac_cv_func_isinf_in_cmath" = "yes" ; then
|
||||||
|
AC_DEFINE([HAVE_ISINF_IN_CMATH],1,[Set to 1 if the isinf function is found in <cmath>])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SINGLE_CXX_CHECK([ac_cv_func_std_isinf_in_cmath],
|
||||||
|
[std::isinf], [<cmath>],
|
||||||
|
[float f; std::isinf(f)}])
|
||||||
|
if test "$ac_cv_func_std_isinf_in_cmath" = "yes" ; then
|
||||||
|
AC_DEFINE([HAVE_STD_ISINF_IN_CMATH],1,[Set to 1 if the std::isinf function is found in <cmath>])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SINGLE_CXX_CHECK([ac_cv_func_finite_in_ieeefp_h],
|
||||||
|
[finite], [<ieeefp.h>],
|
||||||
|
[float f; finite(f);])
|
||||||
|
if test "$ac_cv_func_finite_in_ieeefp_h" = "yes" ; then
|
||||||
|
AC_DEFINE([HAVE_FINITE_IN_IEEEFP_H],1,[Set to 1 if the finite function is found in <ieeefp.h>])
|
||||||
|
fi
|
||||||
|
|
||||||
|
])
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
#
|
||||||
|
# This function determines if the isnan function is available on this
|
||||||
|
# platform.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_FUNC_ISNAN],[
|
||||||
|
AC_SINGLE_CXX_CHECK([ac_cv_func_isnan_in_math_h],
|
||||||
|
[isnan], [<math.h>],
|
||||||
|
[float f; isnan(f);])
|
||||||
|
|
||||||
|
if test "$ac_cv_func_isnan_in_math_h" = "yes" ; then
|
||||||
|
AC_DEFINE([HAVE_ISNAN_IN_MATH_H],1,[Set to 1 if the isnan function is found in <math.h>])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SINGLE_CXX_CHECK([ac_cv_func_isnan_in_cmath],
|
||||||
|
[isnan], [<cmath>],
|
||||||
|
[float f; isnan(f);])
|
||||||
|
if test "$ac_cv_func_isnan_in_cmath" = "yes" ; then
|
||||||
|
AC_DEFINE([HAVE_ISNAN_IN_CMATH],1,[Set to 1 if the isnan function is found in <cmath>])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SINGLE_CXX_CHECK([ac_cv_func_std_isnan_in_cmath],
|
||||||
|
[std::isnan], [<cmath>],
|
||||||
|
[float f; std::isnan(f);])
|
||||||
|
if test "$ac_cv_func_std_isnan_in_cmath" = "yes" ; then
|
||||||
|
AC_DEFINE([HAVE_STD_ISNAN_IN_CMATH],1,[Set to 1 if the std::isnan function is found in <cmath>])
|
||||||
|
fi
|
||||||
|
])
|
|
@ -0,0 +1,26 @@
|
||||||
|
#
|
||||||
|
# Check for the ability to mmap a file.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_FUNC_MMAP_FILE],
|
||||||
|
[AC_CACHE_CHECK(for mmap of files,
|
||||||
|
ac_cv_func_mmap_file,
|
||||||
|
[ AC_LANG_PUSH([C])
|
||||||
|
AC_RUN_IFELSE([
|
||||||
|
AC_LANG_PROGRAM([[
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/mman.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
]],[[
|
||||||
|
int fd;
|
||||||
|
fd = creat ("foo",0777);
|
||||||
|
fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0);
|
||||||
|
unlink ("foo");
|
||||||
|
return (fd != (int) MAP_FAILED);]])],
|
||||||
|
[ac_cv_func_mmap_file=yes],[ac_cv_func_mmap_file=no],[ac_cv_func_mmap_file=no])
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
])
|
||||||
|
if test "$ac_cv_func_mmap_file" = yes; then
|
||||||
|
AC_DEFINE([HAVE_MMAP_FILE],[],[Define if mmap() can map files into memory])
|
||||||
|
AC_SUBST(MMAP_FILE,[yes])
|
||||||
|
fi
|
||||||
|
])
|
|
@ -0,0 +1,21 @@
|
||||||
|
#
|
||||||
|
# Check for anonymous mmap macros. This is modified from
|
||||||
|
# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_HEADER_MMAP_ANONYMOUS],
|
||||||
|
[AC_CACHE_CHECK(for MAP_ANONYMOUS vs. MAP_ANON,
|
||||||
|
ac_cv_header_mmap_anon,
|
||||||
|
[ AC_LANG_PUSH([C])
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
|
||||||
|
[[#include <sys/mman.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>]],
|
||||||
|
[[mmap (0, 1, PROT_READ, MAP_ANONYMOUS, -1, 0); return (0);]])],
|
||||||
|
ac_cv_header_mmap_anon=yes,
|
||||||
|
ac_cv_header_mmap_anon=no)
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
])
|
||||||
|
if test "$ac_cv_header_mmap_anon" = yes; then
|
||||||
|
AC_DEFINE([HAVE_MMAP_ANONYMOUS],[1],[Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if it uses MAP_ANON])
|
||||||
|
fi
|
||||||
|
])
|
|
@ -0,0 +1,20 @@
|
||||||
|
#
|
||||||
|
# This function determins if the the HUGE_VAL macro is compilable with the
|
||||||
|
# -pedantic switch or not. XCode < 2.4.1 doesn't get it right.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_HUGE_VAL_CHECK],[
|
||||||
|
AC_CACHE_CHECK([for HUGE_VAL sanity], [ac_cv_huge_val_sanity],[
|
||||||
|
AC_LANG_PUSH([C++])
|
||||||
|
ac_save_CXXFLAGS=$CXXFLAGS
|
||||||
|
CXXFLAGS=-pedantic
|
||||||
|
AC_RUN_IFELSE(
|
||||||
|
AC_LANG_PROGRAM(
|
||||||
|
[#include <math.h>],
|
||||||
|
[double x = HUGE_VAL; return x != x; ]),
|
||||||
|
[ac_cv_huge_val_sanity=yes],[ac_cv_huge_val_sanity=no],
|
||||||
|
[ac_cv_huge_val_sanity=yes])
|
||||||
|
CXXFLAGS=$ac_save_CXXFLAGS
|
||||||
|
AC_LANG_POP([C++])
|
||||||
|
])
|
||||||
|
AC_SUBST(HUGE_VAL_SANITY,$ac_cv_huge_val_sanity)
|
||||||
|
])
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,108 @@
|
||||||
|
#
|
||||||
|
# Get the linker version string.
|
||||||
|
#
|
||||||
|
# This macro is specific to LLVM.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_LINK_GET_VERSION],
|
||||||
|
[AC_CACHE_CHECK([for linker version],[llvm_cv_link_version],
|
||||||
|
[
|
||||||
|
version_string="$(ld -v 2>&1 | head -1)"
|
||||||
|
|
||||||
|
# Check for ld64.
|
||||||
|
if (echo "$version_string" | grep -q "ld64"); then
|
||||||
|
llvm_cv_link_version=$(echo "$version_string" | sed -e "s#.*ld64-\([^ ]*\)#\1#")
|
||||||
|
else
|
||||||
|
llvm_cv_link_version=$(echo "$version_string" | sed -e "s#[^0-9]*\([0-9.]*\).*#\1#")
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
AC_DEFINE_UNQUOTED([HOST_LINK_VERSION],"$llvm_cv_link_version",
|
||||||
|
[Linker version detected at compile time.])
|
||||||
|
])
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determine if the system can handle the -R option being passed to the linker.
|
||||||
|
#
|
||||||
|
# This macro is specific to LLVM.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_LINK_USE_R],
|
||||||
|
[AC_CACHE_CHECK([for compiler -Wl,-R<path> option],[llvm_cv_link_use_r],
|
||||||
|
[ AC_LANG_PUSH([C])
|
||||||
|
oldcflags="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -Wl,-R."
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
|
||||||
|
[llvm_cv_link_use_r=yes],[llvm_cv_link_use_r=no])
|
||||||
|
CFLAGS="$oldcflags"
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
])
|
||||||
|
if test "$llvm_cv_link_use_r" = yes ; then
|
||||||
|
AC_DEFINE([HAVE_LINK_R],[1],[Define if you can use -Wl,-R. to pass -R. to the linker, in order to add the current directory to the dynamic linker search path.])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determine if the system can handle the -R option being passed to the linker.
|
||||||
|
#
|
||||||
|
# This macro is specific to LLVM.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_LINK_EXPORT_DYNAMIC],
|
||||||
|
[AC_CACHE_CHECK([for compiler -Wl,-export-dynamic option],
|
||||||
|
[llvm_cv_link_use_export_dynamic],
|
||||||
|
[ AC_LANG_PUSH([C])
|
||||||
|
oldcflags="$CFLAGS"
|
||||||
|
CFLAGS="$CFLAGS -Wl,-export-dynamic"
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
|
||||||
|
[llvm_cv_link_use_export_dynamic=yes],[llvm_cv_link_use_export_dynamic=no])
|
||||||
|
CFLAGS="$oldcflags"
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
])
|
||||||
|
if test "$llvm_cv_link_use_export_dynamic" = yes ; then
|
||||||
|
AC_DEFINE([HAVE_LINK_EXPORT_DYNAMIC],[1],[Define if you can use -Wl,-export-dynamic.])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
#
|
||||||
|
# Determine if the system can handle the --version-script option being
|
||||||
|
# passed to the linker.
|
||||||
|
#
|
||||||
|
# This macro is specific to LLVM.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_LINK_VERSION_SCRIPT],
|
||||||
|
[AC_CACHE_CHECK([for compiler -Wl,--version-script option],
|
||||||
|
[llvm_cv_link_use_version_script],
|
||||||
|
[ AC_LANG_PUSH([C])
|
||||||
|
oldcflags="$CFLAGS"
|
||||||
|
|
||||||
|
# The following code is from the autoconf manual,
|
||||||
|
# "11.13: Limitations of Usual Tools".
|
||||||
|
# Create a temporary directory $tmp in $TMPDIR (default /tmp).
|
||||||
|
# Use mktemp if possible; otherwise fall back on mkdir,
|
||||||
|
# with $RANDOM to make collisions less likely.
|
||||||
|
: ${TMPDIR=/tmp}
|
||||||
|
{
|
||||||
|
tmp=`
|
||||||
|
(umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null
|
||||||
|
` &&
|
||||||
|
test -n "$tmp" && test -d "$tmp"
|
||||||
|
} || {
|
||||||
|
tmp=$TMPDIR/foo$$-$RANDOM
|
||||||
|
(umask 077 && mkdir "$tmp")
|
||||||
|
} || exit $?
|
||||||
|
|
||||||
|
echo "{" > "$tmp/export.map"
|
||||||
|
echo " global: main;" >> "$tmp/export.map"
|
||||||
|
echo " local: *;" >> "$tmp/export.map"
|
||||||
|
echo "};" >> "$tmp/export.map"
|
||||||
|
|
||||||
|
CFLAGS="$CFLAGS -Wl,--version-script=$tmp/export.map"
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],
|
||||||
|
[llvm_cv_link_use_version_script=yes],[llvm_cv_link_use_version_script=no])
|
||||||
|
rm "$tmp/export.map"
|
||||||
|
rmdir "$tmp"
|
||||||
|
CFLAGS="$oldcflags"
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
])
|
||||||
|
if test "$llvm_cv_link_use_version_script" = yes ; then
|
||||||
|
AC_SUBST(HAVE_LINK_VERSION_SCRIPT,1)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# Some Linux machines run a 64-bit kernel with a 32-bit userspace. 'uname -m'
|
||||||
|
# shows these as x86_64. Ask the system 'gcc' what it thinks.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_IS_LINUX_MIXED],
|
||||||
|
[AC_CACHE_CHECK(for 32-bit userspace on 64-bit system,llvm_cv_linux_mixed,
|
||||||
|
[ AC_LANG_PUSH([C])
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
|
||||||
|
[[#ifndef __x86_64__
|
||||||
|
error: Not x86-64 even if uname says so!
|
||||||
|
#endif
|
||||||
|
]])],
|
||||||
|
[llvm_cv_linux_mixed=no],
|
||||||
|
[llvm_cv_linux_mixed=yes])
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
])
|
||||||
|
])
|
|
@ -0,0 +1,418 @@
|
||||||
|
## ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*-
|
||||||
|
## Copyright (C) 1999-2000 Free Software Foundation, Inc.
|
||||||
|
##
|
||||||
|
## This file is free software; the Free Software Foundation gives
|
||||||
|
## unlimited permission to copy and/or distribute it, with or without
|
||||||
|
## modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# serial 7 AC_LIB_LTDL
|
||||||
|
|
||||||
|
# AC_WITH_LTDL
|
||||||
|
# ------------
|
||||||
|
# Clients of libltdl can use this macro to allow the installer to
|
||||||
|
# choose between a shipped copy of the ltdl sources or a preinstalled
|
||||||
|
# version of the library.
|
||||||
|
AC_DEFUN([AC_WITH_LTDL],
|
||||||
|
[AC_REQUIRE([AC_LIB_LTDL])
|
||||||
|
AC_SUBST([LIBLTDL])
|
||||||
|
AC_SUBST([INCLTDL])
|
||||||
|
|
||||||
|
# Unless the user asks us to check, assume no installed ltdl exists.
|
||||||
|
use_installed_libltdl=no
|
||||||
|
|
||||||
|
AC_ARG_WITH([included_ltdl],
|
||||||
|
[ --with-included-ltdl use the GNU ltdl sources included here])
|
||||||
|
|
||||||
|
if test "x$with_included_ltdl" != xyes; then
|
||||||
|
# We are not being forced to use the included libltdl sources, so
|
||||||
|
# decide whether there is a useful installed version we can use.
|
||||||
|
AC_CHECK_HEADER([ltdl.h],
|
||||||
|
[AC_CHECK_LIB([ltdl], [lt_dlcaller_register],
|
||||||
|
[with_included_ltdl=no],
|
||||||
|
[with_included_ltdl=yes])
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$enable_ltdl_install" != xyes; then
|
||||||
|
# If the user did not specify an installable libltdl, then default
|
||||||
|
# to a convenience lib.
|
||||||
|
AC_LIBLTDL_CONVENIENCE
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$with_included_ltdl" = xno; then
|
||||||
|
# If the included ltdl is not to be used. then Use the
|
||||||
|
# preinstalled libltdl we found.
|
||||||
|
AC_DEFINE([HAVE_LTDL], [1],
|
||||||
|
[Define this if a modern libltdl is already installed])
|
||||||
|
LIBLTDL=-lltdl
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Report our decision...
|
||||||
|
AC_MSG_CHECKING([whether to use included libltdl])
|
||||||
|
AC_MSG_RESULT([$with_included_ltdl])
|
||||||
|
|
||||||
|
AC_CONFIG_SUBDIRS([libltdl])
|
||||||
|
])# AC_WITH_LTDL
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LIB_LTDL
|
||||||
|
# -----------
|
||||||
|
# Perform all the checks necessary for compilation of the ltdl objects
|
||||||
|
# -- including compiler checks and header checks.
|
||||||
|
AC_DEFUN([AC_LIB_LTDL],
|
||||||
|
[AC_PREREQ(2.60)
|
||||||
|
AC_REQUIRE([AC_PROG_CC])
|
||||||
|
AC_REQUIRE([AC_C_CONST])
|
||||||
|
AC_REQUIRE([AC_HEADER_STDC])
|
||||||
|
AC_REQUIRE([AC_HEADER_DIRENT])
|
||||||
|
AC_REQUIRE([_LT_AC_CHECK_DLFCN])
|
||||||
|
AC_REQUIRE([AC_LTDL_ENABLE_INSTALL])
|
||||||
|
AC_REQUIRE([AC_LTDL_SHLIBEXT])
|
||||||
|
AC_REQUIRE([AC_LTDL_SHLIBPATH])
|
||||||
|
AC_REQUIRE([AC_LTDL_SYSSEARCHPATH])
|
||||||
|
AC_REQUIRE([AC_LTDL_OBJDIR])
|
||||||
|
AC_REQUIRE([AC_LTDL_DLPREOPEN])
|
||||||
|
AC_REQUIRE([AC_LTDL_DLLIB])
|
||||||
|
AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])
|
||||||
|
AC_REQUIRE([AC_LTDL_DLSYM_USCORE])
|
||||||
|
AC_REQUIRE([AC_LTDL_SYS_DLOPEN_DEPLIBS])
|
||||||
|
AC_REQUIRE([AC_LTDL_FUNC_ARGZ])
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS([assert.h ctype.h errno.h malloc.h memory.h stdlib.h \
|
||||||
|
stdio.h unistd.h])
|
||||||
|
AC_CHECK_HEADERS([dl.h sys/dl.h dld.h mach-o/dyld.h])
|
||||||
|
AC_CHECK_HEADERS([string.h strings.h], [break])
|
||||||
|
|
||||||
|
AC_CHECK_FUNCS([strchr index], [break])
|
||||||
|
AC_CHECK_FUNCS([strrchr rindex], [break])
|
||||||
|
AC_CHECK_FUNCS([memcpy bcopy], [break])
|
||||||
|
AC_CHECK_FUNCS([memmove strcmp])
|
||||||
|
AC_CHECK_FUNCS([closedir opendir readdir])
|
||||||
|
])# AC_LIB_LTDL
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_ENABLE_INSTALL
|
||||||
|
# ----------------------
|
||||||
|
AC_DEFUN([AC_LTDL_ENABLE_INSTALL],
|
||||||
|
[AC_ARG_ENABLE([ltdl-install],
|
||||||
|
[AS_HELP_STRING([--enable-ltdl-install],[install libltdl])])
|
||||||
|
|
||||||
|
AM_CONDITIONAL(INSTALL_LTDL, test x"${enable_ltdl_install-no}" != xno)
|
||||||
|
AM_CONDITIONAL(CONVENIENCE_LTDL, test x"${enable_ltdl_convenience-no}" != xno)
|
||||||
|
])# AC_LTDL_ENABLE_INSTALL
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_SYS_DLOPEN_DEPLIBS
|
||||||
|
# --------------------------
|
||||||
|
AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS],
|
||||||
|
[AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
|
AC_CACHE_CHECK([whether deplibs are loaded by dlopen],
|
||||||
|
[libltdl_cv_sys_dlopen_deplibs],
|
||||||
|
[# PORTME does your system automatically load deplibs for dlopen?
|
||||||
|
# or its logical equivalent (e.g. shl_load for HP-UX < 11)
|
||||||
|
# For now, we just catch OSes we know something about -- in the
|
||||||
|
# future, we'll try test this programmatically.
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=unknown
|
||||||
|
case "$host_os" in
|
||||||
|
aix3*|aix4.1.*|aix4.2.*)
|
||||||
|
# Unknown whether this is true for these versions of AIX, but
|
||||||
|
# we want this `case' here to explicitly catch those versions.
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=unknown
|
||||||
|
;;
|
||||||
|
aix[[45]]*)
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
darwin*)
|
||||||
|
# Assuming the user has installed a libdl from somewhere, this is true
|
||||||
|
# If you are looking for one http://www.opendarwin.org/projects/dlcompat
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
|
||||||
|
# GNU and its variants, using gnu ld.so (Glibc)
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
hpux10*|hpux11*)
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
interix*)
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
irix[[12345]]*|irix6.[[01]]*)
|
||||||
|
# Catch all versions of IRIX before 6.2, and indicate that we don't
|
||||||
|
# know how it worked for any of those versions.
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=unknown
|
||||||
|
;;
|
||||||
|
irix*)
|
||||||
|
# The case above catches anything before 6.2, and it's known that
|
||||||
|
# at 6.2 and later dlopen does load deplibs.
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
netbsd*)
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
openbsd*)
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
osf[[1234]]*)
|
||||||
|
# dlopen did load deplibs (at least at 4.x), but until the 5.x series,
|
||||||
|
# it did *not* use an RPATH in a shared library to find objects the
|
||||||
|
# library depends on, so we explicitly say `no'.
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=no
|
||||||
|
;;
|
||||||
|
osf5.0|osf5.0a|osf5.1)
|
||||||
|
# dlopen *does* load deplibs and with the right loader patch applied
|
||||||
|
# it even uses RPATH in a shared library to search for shared objects
|
||||||
|
# that the library depends on, but there's no easy way to know if that
|
||||||
|
# patch is installed. Since this is the case, all we can really
|
||||||
|
# say is unknown -- it depends on the patch being installed. If
|
||||||
|
# it is, this changes to `yes'. Without it, it would be `no'.
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=unknown
|
||||||
|
;;
|
||||||
|
osf*)
|
||||||
|
# the two cases above should catch all versions of osf <= 5.1. Read
|
||||||
|
# the comments above for what we know about them.
|
||||||
|
# At > 5.1, deplibs are loaded *and* any RPATH in a shared library
|
||||||
|
# is used to find them so we can finally say `yes'.
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
solaris*)
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
|
||||||
|
libltdl_cv_sys_dlopen_deplibs=yes
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
])
|
||||||
|
if test "$libltdl_cv_sys_dlopen_deplibs" != yes; then
|
||||||
|
AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1],
|
||||||
|
[Define if the OS needs help to load dependent libraries for dlopen().])
|
||||||
|
fi
|
||||||
|
])# AC_LTDL_SYS_DLOPEN_DEPLIBS
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_SHLIBEXT
|
||||||
|
# ----------------
|
||||||
|
AC_DEFUN([AC_LTDL_SHLIBEXT],
|
||||||
|
[AC_REQUIRE([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
|
||||||
|
AC_CACHE_CHECK([which extension is used for loadable modules],
|
||||||
|
[libltdl_cv_shlibext],
|
||||||
|
[
|
||||||
|
module=yes
|
||||||
|
eval libltdl_cv_shlibext=$shrext_cmds
|
||||||
|
])
|
||||||
|
if test -n "$libltdl_cv_shlibext"; then
|
||||||
|
AC_DEFINE_UNQUOTED([LTDL_SHLIB_EXT], ["$libltdl_cv_shlibext"],
|
||||||
|
[Define to the extension used for shared libraries, say, ".so".])
|
||||||
|
fi
|
||||||
|
])# AC_LTDL_SHLIBEXT
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_SHLIBPATH
|
||||||
|
# -----------------
|
||||||
|
AC_DEFUN([AC_LTDL_SHLIBPATH],
|
||||||
|
[AC_REQUIRE([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
|
||||||
|
AC_CACHE_CHECK([which variable specifies run-time library path],
|
||||||
|
[libltdl_cv_shlibpath_var], [libltdl_cv_shlibpath_var="$shlibpath_var"])
|
||||||
|
if test -n "$libltdl_cv_shlibpath_var"; then
|
||||||
|
AC_DEFINE_UNQUOTED([LTDL_SHLIBPATH_VAR], ["$libltdl_cv_shlibpath_var"],
|
||||||
|
[Define to the name of the environment variable that determines the dynamic library search path.])
|
||||||
|
fi
|
||||||
|
])# AC_LTDL_SHLIBPATH
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_SYSSEARCHPATH
|
||||||
|
# ---------------------
|
||||||
|
AC_DEFUN([AC_LTDL_SYSSEARCHPATH],
|
||||||
|
[AC_REQUIRE([AC_LIBTOOL_SYS_DYNAMIC_LINKER])
|
||||||
|
AC_CACHE_CHECK([for the default library search path],
|
||||||
|
[libltdl_cv_sys_search_path],
|
||||||
|
[libltdl_cv_sys_search_path="$sys_lib_dlsearch_path_spec"])
|
||||||
|
if test -n "$libltdl_cv_sys_search_path"; then
|
||||||
|
sys_search_path=
|
||||||
|
for dir in $libltdl_cv_sys_search_path; do
|
||||||
|
if test -z "$sys_search_path"; then
|
||||||
|
sys_search_path="$dir"
|
||||||
|
else
|
||||||
|
sys_search_path="$sys_search_path$PATH_SEPARATOR$dir"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
AC_DEFINE_UNQUOTED([LTDL_SYSSEARCHPATH], ["$sys_search_path"],
|
||||||
|
[Define to the system default library search path.])
|
||||||
|
fi
|
||||||
|
])# AC_LTDL_SYSSEARCHPATH
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_OBJDIR
|
||||||
|
# --------------
|
||||||
|
AC_DEFUN([AC_LTDL_OBJDIR],
|
||||||
|
[AC_CACHE_CHECK([for objdir],
|
||||||
|
[libltdl_cv_objdir],
|
||||||
|
[libltdl_cv_objdir="$objdir"
|
||||||
|
if test -n "$objdir"; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
rm -f .libs 2>/dev/null
|
||||||
|
mkdir .libs 2>/dev/null
|
||||||
|
if test -d .libs; then
|
||||||
|
libltdl_cv_objdir=.libs
|
||||||
|
else
|
||||||
|
# MS-DOS does not allow filenames that begin with a dot.
|
||||||
|
libltdl_cv_objdir=_libs
|
||||||
|
fi
|
||||||
|
rmdir .libs 2>/dev/null
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
AC_DEFINE_UNQUOTED([LTDL_OBJDIR], ["$libltdl_cv_objdir/"],
|
||||||
|
[Define to the sub-directory in which libtool stores uninstalled libraries.])
|
||||||
|
])# AC_LTDL_OBJDIR
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_DLPREOPEN
|
||||||
|
# -----------------
|
||||||
|
AC_DEFUN([AC_LTDL_DLPREOPEN],
|
||||||
|
[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
|
||||||
|
AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen],
|
||||||
|
[libltdl_cv_preloaded_symbols],
|
||||||
|
[if test -n "$lt_cv_sys_global_symbol_pipe"; then
|
||||||
|
libltdl_cv_preloaded_symbols=yes
|
||||||
|
else
|
||||||
|
libltdl_cv_preloaded_symbols=no
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test x"$libltdl_cv_preloaded_symbols" = xyes; then
|
||||||
|
AC_DEFINE([HAVE_PRELOADED_SYMBOLS], [1],
|
||||||
|
[Define if libtool can extract symbol lists from object files.])
|
||||||
|
fi
|
||||||
|
])# AC_LTDL_DLPREOPEN
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_DLLIB
|
||||||
|
# -------------
|
||||||
|
AC_DEFUN([AC_LTDL_DLLIB],
|
||||||
|
[LIBADD_DL=
|
||||||
|
AC_SUBST(LIBADD_DL)
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
|
||||||
|
AC_CHECK_FUNC([shl_load],
|
||||||
|
[AC_DEFINE([HAVE_SHL_LOAD], [1],
|
||||||
|
[Define if you have the shl_load function.])],
|
||||||
|
[AC_CHECK_LIB([dld], [shl_load],
|
||||||
|
[AC_DEFINE([HAVE_SHL_LOAD], [1],
|
||||||
|
[Define if you have the shl_load function.])
|
||||||
|
LIBADD_DL="$LIBADD_DL -ldld"],
|
||||||
|
[AC_CHECK_LIB([dl], [dlopen],
|
||||||
|
[AC_DEFINE([HAVE_LIBDL], [1],
|
||||||
|
[Define if you have the libdl library or equivalent.])
|
||||||
|
LIBADD_DL="-ldl" libltdl_cv_lib_dl_dlopen="yes"],
|
||||||
|
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H
|
||||||
|
# include <dlfcn.h>
|
||||||
|
#endif
|
||||||
|
]], [[dlopen(0, 0);]])],[AC_DEFINE([HAVE_LIBDL], [1],
|
||||||
|
[Define if you have the libdl library or equivalent.]) libltdl_cv_func_dlopen="yes"],[AC_CHECK_LIB([svld], [dlopen],
|
||||||
|
[AC_DEFINE([HAVE_LIBDL], [1],
|
||||||
|
[Define if you have the libdl library or equivalent.])
|
||||||
|
LIBADD_DL="-lsvld" libltdl_cv_func_dlopen="yes"],
|
||||||
|
[AC_CHECK_LIB([dld], [dld_link],
|
||||||
|
[AC_DEFINE([HAVE_DLD], [1],
|
||||||
|
[Define if you have the GNU dld library.])
|
||||||
|
LIBADD_DL="$LIBADD_DL -ldld"],
|
||||||
|
[AC_CHECK_FUNC([_dyld_func_lookup],
|
||||||
|
[AC_DEFINE([HAVE_DYLD], [1],
|
||||||
|
[Define if you have the _dyld_func_lookup function.])])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes
|
||||||
|
then
|
||||||
|
lt_save_LIBS="$LIBS"
|
||||||
|
LIBS="$LIBS $LIBADD_DL"
|
||||||
|
AC_CHECK_FUNCS([dlerror])
|
||||||
|
LIBS="$lt_save_LIBS"
|
||||||
|
fi
|
||||||
|
AC_LANG_POP
|
||||||
|
])# AC_LTDL_DLLIB
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_SYMBOL_USCORE
|
||||||
|
# ---------------------
|
||||||
|
# does the compiler prefix global symbols with an underscore?
|
||||||
|
AC_DEFUN([AC_LTDL_SYMBOL_USCORE],
|
||||||
|
[AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])
|
||||||
|
AC_CACHE_CHECK([for _ prefix in compiled symbols],
|
||||||
|
[ac_cv_sys_symbol_underscore],
|
||||||
|
[ac_cv_sys_symbol_underscore=no
|
||||||
|
cat > conftest.$ac_ext <<EOF
|
||||||
|
void nm_test_func(){}
|
||||||
|
int main(){nm_test_func;return 0;}
|
||||||
|
EOF
|
||||||
|
if AC_TRY_EVAL(ac_compile); then
|
||||||
|
# Now try to grab the symbols.
|
||||||
|
ac_nlist=conftest.nm
|
||||||
|
if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then
|
||||||
|
# See whether the symbols have a leading underscore.
|
||||||
|
if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then
|
||||||
|
ac_cv_sys_symbol_underscore=yes
|
||||||
|
else
|
||||||
|
if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD
|
||||||
|
cat conftest.c >&AS_MESSAGE_LOG_FD
|
||||||
|
fi
|
||||||
|
rm -rf conftest*
|
||||||
|
])
|
||||||
|
])# AC_LTDL_SYMBOL_USCORE
|
||||||
|
|
||||||
|
|
||||||
|
# AC_LTDL_DLSYM_USCORE
|
||||||
|
# --------------------
|
||||||
|
AC_DEFUN([AC_LTDL_DLSYM_USCORE],
|
||||||
|
[AC_REQUIRE([AC_LTDL_SYMBOL_USCORE])
|
||||||
|
if test x"$ac_cv_sys_symbol_underscore" = xyes; then
|
||||||
|
if test x"$libltdl_cv_func_dlopen" = xyes ||
|
||||||
|
test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then
|
||||||
|
AC_CACHE_CHECK([whether we have to add an underscore for dlsym],
|
||||||
|
[libltdl_cv_need_uscore],
|
||||||
|
[libltdl_cv_need_uscore=unknown
|
||||||
|
save_LIBS="$LIBS"
|
||||||
|
LIBS="$LIBS $LIBADD_DL"
|
||||||
|
_LT_AC_TRY_DLOPEN_SELF(
|
||||||
|
[libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes],
|
||||||
|
[], [libltdl_cv_need_uscore=cross])
|
||||||
|
LIBS="$save_LIBS"
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x"$libltdl_cv_need_uscore" = xyes; then
|
||||||
|
AC_DEFINE([NEED_USCORE], [1],
|
||||||
|
[Define if dlsym() requires a leading underscore in symbol names.])
|
||||||
|
fi
|
||||||
|
])# AC_LTDL_DLSYM_USCORE
|
||||||
|
|
||||||
|
# AC_LTDL_FUNC_ARGZ
|
||||||
|
# -----------------
|
||||||
|
AC_DEFUN([AC_LTDL_FUNC_ARGZ],
|
||||||
|
[AC_CHECK_HEADERS([argz.h])
|
||||||
|
|
||||||
|
AC_CHECK_TYPES([error_t],
|
||||||
|
[],
|
||||||
|
[AC_DEFINE([error_t], [int],
|
||||||
|
[Define to a type to use for `error_t' if it is not otherwise available.])],
|
||||||
|
[#if HAVE_ARGZ_H
|
||||||
|
# include <argz.h>
|
||||||
|
#endif])
|
||||||
|
|
||||||
|
AC_CHECK_FUNCS([argz_append argz_create_sep argz_insert argz_next argz_stringify])
|
||||||
|
])# AC_LTDL_FUNC_ARGZ
|
|
@ -0,0 +1,17 @@
|
||||||
|
#
|
||||||
|
# When allocating RWX memory, check whether we need to use /dev/zero
|
||||||
|
# as the file descriptor or not.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_NEED_DEV_ZERO_FOR_MMAP],
|
||||||
|
[AC_CACHE_CHECK([if /dev/zero is needed for mmap],
|
||||||
|
ac_cv_need_dev_zero_for_mmap,
|
||||||
|
[if test "$llvm_cv_os_type" = "Interix" ; then
|
||||||
|
ac_cv_need_dev_zero_for_mmap=yes
|
||||||
|
else
|
||||||
|
ac_cv_need_dev_zero_for_mmap=no
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test "$ac_cv_need_dev_zero_for_mmap" = yes; then
|
||||||
|
AC_DEFINE([NEED_DEV_ZERO_FOR_MMAP],[1],
|
||||||
|
[Define if /dev/zero should be used when mapping RWX memory, or undefine if its not necessary])
|
||||||
|
fi])
|
|
@ -0,0 +1,16 @@
|
||||||
|
dnl Check for a reasonable version of Perl.
|
||||||
|
dnl $1 - Minimum Perl version. Typically 5.006.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([LLVM_PROG_PERL], [
|
||||||
|
AC_PATH_PROG(PERL, [perl], [none])
|
||||||
|
if test "$PERL" != "none"; then
|
||||||
|
AC_MSG_CHECKING(for Perl $1 or newer)
|
||||||
|
if $PERL -e 'use $1;' 2>&1 > /dev/null; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
else
|
||||||
|
PERL=none
|
||||||
|
AC_MSG_RESULT(not found)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
dnl This macro checks for tclsh which is required to run dejagnu. On some
|
||||||
|
dnl platforms (notably FreeBSD), tclsh is named tclshX.Y - this handles
|
||||||
|
dnl that for us so we can get the latest installed tclsh version.
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([DJ_AC_PATH_TCLSH], [
|
||||||
|
no_itcl=true
|
||||||
|
AC_MSG_CHECKING(for the tclsh program in tclinclude directory)
|
||||||
|
AC_ARG_WITH(tclinclude,
|
||||||
|
AS_HELP_STRING([--with-tclinclude],
|
||||||
|
[directory where tcl headers are]),
|
||||||
|
[with_tclinclude=${withval}],[with_tclinclude=''])
|
||||||
|
AC_CACHE_VAL(ac_cv_path_tclsh,[
|
||||||
|
dnl first check to see if --with-itclinclude was specified
|
||||||
|
if test x"${with_tclinclude}" != x ; then
|
||||||
|
if test -f ${with_tclinclude}/tclsh ; then
|
||||||
|
ac_cv_path_tclsh=`(cd ${with_tclinclude}; pwd)`
|
||||||
|
elif test -f ${with_tclinclude}/src/tclsh ; then
|
||||||
|
ac_cv_path_tclsh=`(cd ${with_tclinclude}/src; pwd)`
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([${with_tclinclude} directory doesn't contain tclsh])
|
||||||
|
fi
|
||||||
|
fi])
|
||||||
|
|
||||||
|
dnl see if one is installed
|
||||||
|
if test x"${ac_cv_path_tclsh}" = x ; then
|
||||||
|
AC_MSG_RESULT(none)
|
||||||
|
AC_PATH_PROGS([TCLSH],[tclsh8.4 tclsh8.4.8 tclsh8.4.7 tclsh8.4.6 tclsh8.4.5 tclsh8.4.4 tclsh8.4.3 tclsh8.4.2 tclsh8.4.1 tclsh8.4.0 tclsh8.3 tclsh8.3.5 tclsh8.3.4 tclsh8.3.3 tclsh8.3.2 tclsh8.3.1 tclsh8.3.0 tclsh])
|
||||||
|
if test x"${TCLSH}" = x ; then
|
||||||
|
ac_cv_path_tclsh='';
|
||||||
|
else
|
||||||
|
ac_cv_path_tclsh="${TCLSH}";
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(${ac_cv_path_tclsh})
|
||||||
|
TCLSH="${ac_cv_path_tclsh}"
|
||||||
|
AC_SUBST(TCLSH)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
#
|
||||||
|
# This function determins if the the srand48,drand48,lrand48 functions are
|
||||||
|
# available on this platform.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_FUNC_RAND48],[
|
||||||
|
AC_SINGLE_CXX_CHECK([ac_cv_func_rand48],
|
||||||
|
[srand48/lrand48/drand48], [<stdlib.h>],
|
||||||
|
[srand48(0);lrand48();drand48();])
|
||||||
|
if test "$ac_cv_func_rand48" = "yes" ; then
|
||||||
|
AC_DEFINE([HAVE_RAND48],1,[Define to 1 if srand48/lrand48/drand48 exist in <stdlib.h>])
|
||||||
|
fi
|
||||||
|
])
|
|
@ -0,0 +1,31 @@
|
||||||
|
dnl Check a program for version sanity. The test runs a program, passes it an
|
||||||
|
dnl argument to make it print out some identification string, and filters that
|
||||||
|
dnl output with a regular expression. If the output is non-empty, the program
|
||||||
|
dnl passes the sanity check.
|
||||||
|
dnl $1 - Name or full path of the program to run
|
||||||
|
dnl $2 - Argument to pass to print out identification string
|
||||||
|
dnl $3 - grep RE to match identification string
|
||||||
|
dnl $4 - set to 1 to make errors only a warning
|
||||||
|
AC_DEFUN([CHECK_PROGRAM_SANITY],
|
||||||
|
[
|
||||||
|
AC_MSG_CHECKING([sanity for program ]$1)
|
||||||
|
sanity="0"
|
||||||
|
sanity_path=`which $1 2>/dev/null`
|
||||||
|
if test "$?" -eq 0 -a -x "$sanity_path" ; then
|
||||||
|
sanity=`$1 $2 2>&1 | grep "$3"`
|
||||||
|
if test -z "$sanity" ; then
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
sanity="0"
|
||||||
|
if test "$4" -eq 1 ; then
|
||||||
|
AC_MSG_WARN([Program ]$1[ failed to pass sanity check.])
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([Program ]$1[ failed to pass sanity check.])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
sanity="1"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([not found])
|
||||||
|
fi
|
||||||
|
])
|
|
@ -0,0 +1,10 @@
|
||||||
|
dnl AC_SINGLE_CXX_CHECK(CACHEVAR, FUNCTION, HEADER, PROGRAM)
|
||||||
|
dnl $1, $2, $3, $4,
|
||||||
|
dnl
|
||||||
|
AC_DEFUN([AC_SINGLE_CXX_CHECK],
|
||||||
|
[AC_CACHE_CHECK([for $2 in $3], [$1],
|
||||||
|
[AC_LANG_PUSH([C++])
|
||||||
|
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include $3],[$4]),[$1=yes],[$1=no])
|
||||||
|
AC_LANG_POP([C++])])
|
||||||
|
])
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
#
|
||||||
|
# Determine if the compiler accepts -fvisibility-inlines-hidden
|
||||||
|
#
|
||||||
|
# This macro is specific to LLVM.
|
||||||
|
#
|
||||||
|
AC_DEFUN([AC_CXX_USE_VISIBILITY_INLINES_HIDDEN],
|
||||||
|
[AC_CACHE_CHECK([for compiler -fvisibility-inlines-hidden option],
|
||||||
|
[llvm_cv_cxx_visibility_inlines_hidden],
|
||||||
|
[ AC_LANG_PUSH([C++])
|
||||||
|
oldcxxflags="$CXXFLAGS"
|
||||||
|
CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
|
||||||
|
[llvm_cv_cxx_visibility_inlines_hidden=yes],[llvm_cv_cxx_visibility_inlines_hidden=no])
|
||||||
|
CXXFLAGS="$oldcxxflags"
|
||||||
|
AC_LANG_POP([C++])
|
||||||
|
])
|
||||||
|
if test "$llvm_cv_cxx_visibility_inlines_hidden" = yes ; then
|
||||||
|
AC_SUBST([ENABLE_VISIBILITY_INLINES_HIDDEN],[1])
|
||||||
|
else
|
||||||
|
AC_SUBST([ENABLE_VISIBILITY_INLINES_HIDDEN],[0])
|
||||||
|
fi
|
||||||
|
])
|
|
@ -0,0 +1,150 @@
|
||||||
|
#! /bin/sh
|
||||||
|
# mkinstalldirs --- make directory hierarchy
|
||||||
|
|
||||||
|
scriptversion=2004-02-15.20
|
||||||
|
|
||||||
|
# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
|
||||||
|
# Created: 1993-05-16
|
||||||
|
# Public domain.
|
||||||
|
#
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
errstatus=0
|
||||||
|
dirmode=""
|
||||||
|
|
||||||
|
usage="\
|
||||||
|
Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
|
||||||
|
|
||||||
|
Create each directory DIR (with mode MODE, if specified), including all
|
||||||
|
leading file name components.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>."
|
||||||
|
|
||||||
|
# process command line arguments
|
||||||
|
while test $# -gt 0 ; do
|
||||||
|
case $1 in
|
||||||
|
-h | --help | --h*) # -h for help
|
||||||
|
echo "$usage"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
-m) # -m PERM arg
|
||||||
|
shift
|
||||||
|
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
|
||||||
|
dirmode=$1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--version)
|
||||||
|
echo "$0 $scriptversion"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
--) # stop option processing
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
-*) # unknown option
|
||||||
|
echo "$usage" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*) # first non-opt arg
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
for file
|
||||||
|
do
|
||||||
|
if test -d "$file"; then
|
||||||
|
shift
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
case $# in
|
||||||
|
0) exit 0 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
|
||||||
|
# mkdir -p a/c at the same time, both will detect that a is missing,
|
||||||
|
# one will create a, then the other will try to create a and die with
|
||||||
|
# a "File exists" error. This is a problem when calling mkinstalldirs
|
||||||
|
# from a parallel make. We use --version in the probe to restrict
|
||||||
|
# ourselves to GNU mkdir, which is thread-safe.
|
||||||
|
case $dirmode in
|
||||||
|
'')
|
||||||
|
if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
|
||||||
|
# echo "mkdir -p -- $*"
|
||||||
|
exec mkdir -p -- "$@"
|
||||||
|
else
|
||||||
|
# On NextStep and OpenStep, the `mkdir' command does not
|
||||||
|
# recognize any option. It will interpret all options as
|
||||||
|
# directories to create, and then abort because `.' already
|
||||||
|
# exists.
|
||||||
|
test -d ./-p && rmdir ./-p
|
||||||
|
test -d ./--version && rmdir ./--version
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
|
||||||
|
test ! -d ./--version; then
|
||||||
|
# echo "mkdir -m $dirmode -p -- $*"
|
||||||
|
exec mkdir -m "$dirmode" -p -- "$@"
|
||||||
|
else
|
||||||
|
# Clean up after NextStep and OpenStep mkdir.
|
||||||
|
for d in ./-m ./-p ./--version "./$dirmode";
|
||||||
|
do
|
||||||
|
test -d $d && rmdir $d
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
for file
|
||||||
|
do
|
||||||
|
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
|
||||||
|
shift
|
||||||
|
|
||||||
|
pathcomp=
|
||||||
|
for d
|
||||||
|
do
|
||||||
|
pathcomp="$pathcomp$d"
|
||||||
|
case $pathcomp in
|
||||||
|
-*) pathcomp=./$pathcomp ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test ! -d "$pathcomp"; then
|
||||||
|
# echo "mkdir $pathcomp"
|
||||||
|
|
||||||
|
mkdir "$pathcomp" || lasterr=$?
|
||||||
|
|
||||||
|
if test ! -d "$pathcomp"; then
|
||||||
|
errstatus=$lasterr
|
||||||
|
else
|
||||||
|
if test ! -z "$dirmode"; then
|
||||||
|
# echo "chmod $dirmode $pathcomp"
|
||||||
|
lasterr=""
|
||||||
|
chmod "$dirmode" "$pathcomp" || lasterr=$?
|
||||||
|
|
||||||
|
if test ! -z "$lasterr"; then
|
||||||
|
errstatus=$lasterr
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
pathcomp="$pathcomp/"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
exit $errstatus
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-end: "$"
|
||||||
|
# End:
|
Loading…
Reference in New Issue