Skip to content
Snippets Groups Projects
Commit 266a968d authored by Mulas, Giacomo's avatar Mulas, Giacomo
Browse files

Merge branch 'master' into magma_refinement

parents ee5ce55b 311d62e5
No related branches found
No related tags found
No related merge requests found
Showing with 1035 additions and 84734 deletions
...@@ -5,7 +5,7 @@ build/error.log ...@@ -5,7 +5,7 @@ build/error.log
build/inclusion/* build/inclusion/*
build/libnptm/* build/libnptm/*
build/libtool build/libtool
build/Makefile build/Makefile.in
build/sphere/* build/sphere/*
build/testing/* build/testing/*
build/trapping/* build/trapping/*
......
...@@ -48,7 +48,7 @@ compatibility_stage: ...@@ -48,7 +48,7 @@ compatibility_stage:
- cd build_gnu11 - cd build_gnu11
- cp -r ../build/* . - cp -r ../build/* .
- CXX=g++-11 F77=gfortran-11 ./configure - CXX=g++-11 F77=gfortran-11 ./configure
- make clean - make wipe
- make -j - make -j
- echo "Running make with gnu compilers version 12..." - echo "Running make with gnu compilers version 12..."
- cd .. - cd ..
...@@ -57,7 +57,7 @@ compatibility_stage: ...@@ -57,7 +57,7 @@ compatibility_stage:
- cd build_gnu12 - cd build_gnu12
- cp -r ../build/* . - cp -r ../build/* .
- CXX=g++-12 F77=gfortran-12 ./configure - CXX=g++-12 F77=gfortran-12 ./configure
- make clean - make wipe
- make -j - make -j
- echo "Running make with gnu compilers version 13..." - echo "Running make with gnu compilers version 13..."
- cd .. - cd ..
...@@ -66,7 +66,7 @@ compatibility_stage: ...@@ -66,7 +66,7 @@ compatibility_stage:
- cd build_gnu13 - cd build_gnu13
- cp -r ../build/* . - cp -r ../build/* .
- CXX=g++-13 F77=gfortran-13 ./configure - CXX=g++-13 F77=gfortran-13 ./configure
- make clean - make wipe
- make -j - make -j
- echo "Running make with gnu compilers version 14..." - echo "Running make with gnu compilers version 14..."
- cd .. - cd ..
...@@ -75,7 +75,7 @@ compatibility_stage: ...@@ -75,7 +75,7 @@ compatibility_stage:
- cd build_gnu14 - cd build_gnu14
- cp -r ../build/* . - cp -r ../build/* .
- CXX=g++-14 F77=gfortran-14 ./configure - CXX=g++-14 F77=gfortran-14 ./configure
- make clean - make wipe
- make -j - make -j
- echo "Running make with refinement with gnu compilers version 14..." - echo "Running make with refinement with gnu compilers version 14..."
- cd .. - cd ..
...@@ -84,7 +84,7 @@ compatibility_stage: ...@@ -84,7 +84,7 @@ compatibility_stage:
- cd build_gnu14_refine - cd build_gnu14_refine
- cp -r ../build/* . - cp -r ../build/* .
- CXX=g++-14 F77=gfortran-14 ./configure --enable-refinement - CXX=g++-14 F77=gfortran-14 ./configure --enable-refinement
- make clean - make wipe
- make -j - make -j
- echo "Running make with flang version 16 and clang version 16..." - echo "Running make with flang version 16 and clang version 16..."
- cd .. - cd ..
...@@ -92,8 +92,8 @@ compatibility_stage: ...@@ -92,8 +92,8 @@ compatibility_stage:
- mkdir build_clang16 - mkdir build_clang16
- cd build_clang16 - cd build_clang16
- cp -r ../build/* . - cp -r ../build/* .
- CXX=clang++-16 F77=flang-new-16 ./configure --with-fflags="-O3" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/13" --disable-openmp - CXX=clang++-16 F77=flang-new-16 ./configure --with-fflags="-O3 -std=legacy" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-16/lib -L/usr/lib/gcc/x86_64-linux-gnu/13" --disable-openmp
- make clean - make wipe
- make -j - make -j
- echo "Running make with flang version 17 and clang version 17..." - echo "Running make with flang version 17 and clang version 17..."
- cd .. - cd ..
...@@ -101,8 +101,8 @@ compatibility_stage: ...@@ -101,8 +101,8 @@ compatibility_stage:
- mkdir build_clang17 - mkdir build_clang17
- cd build_clang17 - cd build_clang17
- cp -r ../build/* . - cp -r ../build/* .
- CXX=clang++-17 F77=flang-new-17 ./configure --with-fflags="-O3" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-17/lib -L/usr/lib/gcc/x86_64-linux-gnu/13" --disable-openmp - CXX=clang++-17 F77=flang-new-17 ./configure --with-fflags="-O3 -std=legacy" --with-include="-I/usr/include/c++/13 -I/usr/include/x86_64-linux-gnu/c++/13" --with-ldflags="-L/usr/lib/llvm-17/lib -L/usr/lib/gcc/x86_64-linux-gnu/13" --disable-openmp
- make clean - make wipe
- make -j - make -j
#- echo "Running make with Intel ifort and Intel icpx..." #- echo "Running make with Intel ifort and Intel icpx..."
- cd .. - cd ..
...@@ -113,7 +113,7 @@ compatibility_stage: ...@@ -113,7 +113,7 @@ compatibility_stage:
#- export LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib #- export LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib
#- export PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH #- export PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH
#- CXX=icpx F77=ifort ./configure --with-fflags="-O3 -diag-disable=10448" --disable-openmp #- CXX=icpx F77=ifort ./configure --with-fflags="-O3 -diag-disable=10448" --disable-openmp
#- make clean #- make wipe
#- make -j #- make -j
- echo "Running make with Intel ifx and Intel icpx..." - echo "Running make with Intel ifx and Intel icpx..."
#- cd .. #- cd ..
...@@ -123,8 +123,8 @@ compatibility_stage: ...@@ -123,8 +123,8 @@ compatibility_stage:
- cp -r ../build/* . - cp -r ../build/* .
- export LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib - export LD_LIBRARY_PATH=/opt/intel/oneapi/compiler/latest/lib
- export PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH - export PATH=/opt/intel/oneapi/compiler/latest/bin:$PATH
- CXX=icpx F77=ifx ./configure --with-fflags="-O3" --disable-openmp - CXX=icpx F77=ifx ./configure --with-fflags="-O3 -std=legacy" --disable-openmp
- make clean - make wipe
- make -j - make -j
building_stage: building_stage:
...@@ -155,7 +155,7 @@ building_stage: ...@@ -155,7 +155,7 @@ building_stage:
- cd build - cd build
- echo "Configuring with default compilers (MAGMA disabled)..." - echo "Configuring with default compilers (MAGMA disabled)..."
- ./configure --without-magma --without-cublas --disable-offload --enable-refinement - ./configure --without-magma --without-cublas --disable-offload --enable-refinement
- make clean - make wipe
- echo "Building the default configuration..." - echo "Building the default configuration..."
- make -j - make -j
- echo "Building the documentation..." - echo "Building the documentation..."
......
include Makefile.in
ifeq ($(BUILDFORTRAN), yes)
FORTRAN_OBJS=../src/cluster/clu.o ../src/cluster/edfb_clu.o ../src/inclusion/edfb_inclu.o ../src/inclusion/inclu.o ../src/sphere/edfb_sph.o ../src/sphere/sph.o ../src/trapping/frfme.o ../src/trapping/lffft.o
FORTRAN_BINS=cluster/clu cluster/edfb_clu inclusion/edfb_inclu inclusion/inclu sphere/edfb_sph sphere/sph trapping/frfme trapping/lffft
else
FORTRAN_OBJS=
FORTRAN_BINS=
endif # BUILDFORTRAN
ifeq ($(LIBMODE), shared)
NPTM_LIB=libnptm/libnptm.so
CXXFLAGSLIB=-fPIC -DPIC
else
NPTM_LIB=libnptm/libnptm.a
CXXFLAGSLIB=-static
endif # LIBMODE
NP_LIBNPTM_SRCS=../src/libnptm/algebraic.cpp ../src/libnptm/clu_subs.cpp ../src/libnptm/Commons.cpp ../src/libnptm/Configuration.cpp ../src/libnptm/cublas_calls.cpp ../src/libnptm/file_io.cpp ../src/libnptm/inclu_subs.cpp ../src/libnptm/logging.cpp ../src/libnptm/lapack_calls.cpp ../src/libnptm/magma_calls.cpp ../src/libnptm/Parsers.cpp ../src/libnptm/sph_subs.cpp ../src/libnptm/tfrfme.cpp ../src/libnptm/tra_subs.cpp ../src/libnptm/TransitionMatrix.cpp ../src/libnptm/utils.cpp
NP_LIBNPTM_OBJS=../src/libnptm/algebraic.o ../src/libnptm/clu_subs.o ../src/libnptm/Commons.o ../src/libnptm/Configuration.o ../src/libnptm/cublas_calls.o ../src/libnptm/file_io.o ../src/libnptm/inclu_subs.o ../src/libnptm/logging.o ../src/libnptm/lapack_calls.o ../src/libnptm/magma_calls.o ../src/libnptm/Parsers.o ../src/libnptm/sph_subs.o ../src/libnptm/tfrfme.o ../src/libnptm/tra_subs.o ../src/libnptm/TransitionMatrix.o ../src/libnptm/utils.o
NP_CLUSTER_OBJS=../src/cluster/np_cluster.o ../src/cluster/cluster.o
NP_CLUSTER_BINS=cluster/np_cluster
NP_INCLUSION_OBJS=../src/inclusion/np_inclusion.o ../src/inclusion/inclusion.o
NP_INCLUSION_BINS=inclusion/np_inclusion
NP_SPHERE_OBJS=../src/sphere/np_sphere.o ../src/sphere/sphere.o
NP_SPHERE_BINS=sphere/np_sphere
NP_TRAPPING_OBJS=../src/trapping/np_trapping.o ../src/trapping/cfrfme.o ../src/trapping/clffft.o
NP_TRAPPING_BINS=trapping/np_trapping
NP_TESTING_OBJS=../src/testing/test_ParticleDescriptor.o ../src/testing/test_TEDF.o ../src/testing/test_TTMS.o
NP_TESTING_BINS=testing/test_ParticleDescriptor testing/test_TEDF testing/test_TTMS
all: $(NPTM_LIB) $(FORTRAN_BINS) $(NP_CLUSTER_BINS) $(NP_INCLUSION_BINS) $(NP_SPHERE_BINS) $(NP_TRAPPING_BINS) $(NP_TESTING_BINS)
libnptm/libnptm.a: $(NP_LIBNPTM_OBJS)
$(AR) $(ARFLAGS) $@ $(NP_LIBNPTM_OBJS)
libnptm/libnptm.so: $(NP_LIBNPTM_OBJS)
$(CXX) $(CXXFLAGS) $(NP_LIBNPTM_OBJS) -shared -o $@ $(CXXLDFLAGS)
chmod ugo-x $@
cluster/clu: ../src/cluster/clu.o
$(FC) $(FCFLAGS) $? -o $@
cluster/edfb_clu: ../src/cluster/edfb_clu.o
$(FC) $(FCFLAGS) $? -o $@
cluster/np_cluster: $(NPTM_LIB) $(NP_CLUSTER_OBJS)
$(CXX) $(CXXFLAGS) $(NP_CLUSTER_OBJS) -o $@ $(CXXLDFLAGS)
inclusion/edfb_inclu: ../src/inclusion/edfb_inclu.o
$(FC) $(FCFLAGS) $? -o $@
inclusion/inclu: ../src/inclusion/inclu.o
$(FC) $(FCFLAGS) $? -o $@
inclusion/np_inclusion: $(NPTM_LIB) $(NP_INCLUSION_OBJS)
$(CXX) $(CXXFLAGS) $(NP_INCLUSION_OBJS) -o $@ $(CXXLDFLAGS)
sphere/edfb_sph: ../src/sphere/edfb_sph.o
$(FC) $(FCFLAGS) $? -o $@
sphere/sph: ../src/sphere/sph.o
$(FC) $(FCFLAGS) $? -o $@
sphere/np_sphere: $(NPTM_LIB) $(NP_SPHERE_OBJS)
$(CXX) $(CXXFLAGS) $(NP_SPHERE_OBJS) -o $@ $(CXXLDFLAGS)
trapping/frfme: ../src/trapping/frfme.o
$(FC) $(FCFLAGS) $? -o $@
trapping/lffft: ../src/trapping/lffft.o
$(FC) $(FCFLAGS) $? -o $@
trapping/np_trapping: $(NPTM_LIB) $(NP_TRAPPING_OBJS)
$(CXX) $(CXXFLAGS) $(NP_TRAPPING_OBJS) -o $@ $(CXXLDFLAGS)
testing/test_ParticleDescriptor: $(NPTM_LIB) ../src/testing/test_ParticleDescriptor.o
$(CXX) $(CXXFLAGS) ../src/testing/test_ParticleDescriptor.o -o $@ $(CXXLDFLAGS)
testing/test_TEDF: $(NPTM_LIB) ../src/testing/test_TEDF.o
$(CXX) $(CXXFLAGS) ../src/testing/test_TEDF.o -o $@ $(CXXLDFLAGS)
testing/test_TTMS: $(NPTM_LIB) ../src/testing/test_TTMS.o
$(CXX) $(CXXFLAGS) ../src/testing/test_TTMS.o -o $@ $(CXXLDFLAGS)
../src/cluster/clu.o: ../src/cluster/clu.f
$(FC) $(FCFLAGS) -c $? -o $@
../src/cluster/edfb_clu.o: ../src/cluster/edfb_clu.f
$(FC) $(FCFLAGS) -c $? -o $@
../src/cluster/np_cluster.o: ../src/cluster/np_cluster.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
../src/cluster/cluster.o: ../src/cluster/cluster.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
../src/inclusion/edfb_inclu.o: ../src/inclusion/edfb_inclu.f
$(FC) $(FCFLAGS) -c $? -o $@
../src/inclusion/inclu.o: ../src/inclusion/inclu.f
$(FC) $(FCFLAGS) -c $? -o $@
../src/inclusion/np_inclusion.o: ../src/inclusion/np_inclusion.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
../src/inclusion/inclusion.o: ../src/inclusion/inclusion.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
../src/sphere/edfb_sph.o: ../src/sphere/edfb_sph.f
$(FC) $(FCFLAGS) -c $? -o $@
../src/sphere/sph.o: ../src/sphere/sph.f
$(FC) $(FCFLAGS) -c $? -o $@
../src/sphere/np_sphere.o: ../src/sphere/np_sphere.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
../src/sphere/sphere.o: ../src/sphere/sphere.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
../src/trapping/frfme.o: ../src/trapping/frfme.f
$(FC) $(FCFLAGS) -c $? -o $@
../src/trapping/lffft.o: ../src/trapping/lffft.f
$(FC) $(FCFLAGS) -c $? -o $@
../src/trapping/np_trapping.o: ../src/trapping/np_trapping.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
../src/trapping/cfrfme.o: ../src/trapping/cfrfme.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
../src/trapping/clffft.o: ../src/trapping/clffft.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
../src/libnptm/%.o: ../src/libnptm/%.cpp
$(CXX) $(CXXFLAGS) $(CXXFLAGSLIB) -c $< -o $@
../src/testing/%.o: ../src/testing/%.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
.PHONY: clean wipe
clean:
rm -rf $(FORTRAN_OBJS) $(NP_LIBNPTM_OBJS) $(NP_CLUSTER_OBJS) $(NP_INCLUSION_OBJS) $(NP_SPHERE_OBJS) $(NP_TRAPPING_OBJS) $(NP_TESTING_OBJS)
wipe:
rm -rf $(FORTRAN_OBJS) $(NP_LIBNPTM_OBJS) $(NP_CLUSTER_OBJS) $(NP_INCLUSION_OBJS) $(NP_SPHERE_OBJS) $(NP_TRAPPING_OBJS) $(NP_TESTING_OBJS)
rm -rf $(FORTRAN_BINS) libnptm/libnptm.a libnptm/libnptm.so $(NP_CLUSTER_BINS) $(NP_INCLUSION_BINS) $(NP_SPHERE_BINS) $(NP_TRAPPING_BINS) $(NP_TESTING_BINS)
File moved
File moved
This diff is collapsed.
#! /bin/sh
# Wrapper for Microsoft lib.exe
me=ar-lib
scriptversion=2019-07-04.01; # UTC
# Copyright (C) 2010-2021 Free Software Foundation, Inc.
# Written by Peter Rosin <peda@lysator.liu.se>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
# func_error message
func_error ()
{
echo "$me: $1" 1>&2
exit 1
}
file_conv=
# func_file_conv build_file
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv in
mingw)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin | msys)
file=`cygpath -m "$file" || echo "$file"`
;;
wine)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_at_file at_file operation archive
# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
# for each of them.
# When interpreting the content of the @FILE, do NOT use func_file_conv,
# since the user would need to supply preconverted file names to
# binutils ar, at least for MinGW.
func_at_file ()
{
operation=$2
archive=$3
at_file_contents=`cat "$1"`
eval set x "$at_file_contents"
shift
for member
do
$AR -NOLOGO $operation:"$member" "$archive" || exit $?
done
}
case $1 in
'')
func_error "no command. Try '$0 --help' for more information."
;;
-h | --h*)
cat <<EOF
Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
Members may be specified in a file named with @FILE.
EOF
exit $?
;;
-v | --v*)
echo "$me, version $scriptversion"
exit $?
;;
esac
if test $# -lt 3; then
func_error "you must specify a program, an action and an archive"
fi
AR=$1
shift
while :
do
if test $# -lt 2; then
func_error "you must specify a program, an action and an archive"
fi
case $1 in
-lib | -LIB \
| -ltcg | -LTCG \
| -machine* | -MACHINE* \
| -subsystem* | -SUBSYSTEM* \
| -verbose | -VERBOSE \
| -wx* | -WX* )
AR="$AR $1"
shift
;;
*)
action=$1
shift
break
;;
esac
done
orig_archive=$1
shift
func_file_conv "$orig_archive"
archive=$file
# strip leading dash in $action
action=${action#-}
delete=
extract=
list=
quick=
replace=
index=
create=
while test -n "$action"
do
case $action in
d*) delete=yes ;;
x*) extract=yes ;;
t*) list=yes ;;
q*) quick=yes ;;
r*) replace=yes ;;
s*) index=yes ;;
S*) ;; # the index is always updated implicitly
c*) create=yes ;;
u*) ;; # TODO: don't ignore the update modifier
v*) ;; # TODO: don't ignore the verbose modifier
*)
func_error "unknown action specified"
;;
esac
action=${action#?}
done
case $delete$extract$list$quick$replace,$index in
yes,* | ,yes)
;;
yesyes*)
func_error "more than one action specified"
;;
*)
func_error "no action specified"
;;
esac
if test -n "$delete"; then
if test ! -f "$orig_archive"; then
func_error "archive not found"
fi
for member
do
case $1 in
@*)
func_at_file "${1#@}" -REMOVE "$archive"
;;
*)
func_file_conv "$1"
$AR -NOLOGO -REMOVE:"$file" "$archive" || exit $?
;;
esac
done
elif test -n "$extract"; then
if test ! -f "$orig_archive"; then
func_error "archive not found"
fi
if test $# -gt 0; then
for member
do
case $1 in
@*)
func_at_file "${1#@}" -EXTRACT "$archive"
;;
*)
func_file_conv "$1"
$AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $?
;;
esac
done
else
$AR -NOLOGO -LIST "$archive" | tr -d '\r' | sed -e 's/\\/\\\\/g' \
| while read member
do
$AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
done
fi
elif test -n "$quick$replace"; then
if test ! -f "$orig_archive"; then
if test -z "$create"; then
echo "$me: creating $orig_archive"
fi
orig_archive=
else
orig_archive=$archive
fi
for member
do
case $1 in
@*)
func_file_conv "${1#@}"
set x "$@" "@$file"
;;
*)
func_file_conv "$1"
set x "$@" "$file"
;;
esac
shift
shift
done
if test -n "$orig_archive"; then
$AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $?
else
$AR -NOLOGO -OUT:"$archive" "$@" || exit $?
fi
elif test -n "$list"; then
if test ! -f "$orig_archive"; then
func_error "archive not found"
fi
$AR -NOLOGO -LIST "$archive" || exit $?
fi
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/* | msys/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand '-c -o'.
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
ofile=
cfile=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
# So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#! /bin/sh
# Common wrapper for a few potentially missing GNU programs.
scriptversion=2018-03-07.03; # UTC
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
case $1 in
--is-lightweight)
# Used by our autoconf macros to check whether the available missing
# script is modern enough.
exit 0
;;
--run)
# Back-compat with the calling convention used by older automake.
shift
;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
to PROGRAM being missing or too old.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
Supported PROGRAM values:
aclocal autoconf autoheader autom4te automake makeinfo
bison yacc flex lex help2man
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
'g' are ignored when checking the name.
Send bug reports to <bug-automake@gnu.org>."
exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)"
exit $?
;;
-*)
echo 1>&2 "$0: unknown '$1' option"
echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
# Run the given program, remember its exit status.
"$@"; st=$?
# If it succeeded, we are done.
test $st -eq 0 && exit 0
# Also exit now if we it failed (or wasn't found), and '--version' was
# passed; such an option is passed most likely to detect whether the
# program is present and works.
case $2 in --version|--help) exit $st;; esac
# Exit code 63 means version mismatch. This often happens when the user
# tries to use an ancient version of a tool on a file that requires a
# minimum version.
if test $st -eq 63; then
msg="probably too old"
elif test $st -eq 127; then
# Program was missing.
msg="missing on your system"
else
# Program was found and executed, but failed. Give up.
exit $st
fi
perl_URL=https://www.perl.org/
flex_URL=https://github.com/westes/flex
gnu_software_URL=https://www.gnu.org/software
program_details ()
{
case $1 in
aclocal|automake)
echo "The '$1' program is part of the GNU Automake package:"
echo "<$gnu_software_URL/automake>"
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/autoconf>"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
autoconf|autom4te|autoheader)
echo "The '$1' program is part of the GNU Autoconf package:"
echo "<$gnu_software_URL/autoconf/>"
echo "It also requires GNU m4 and Perl in order to run:"
echo "<$gnu_software_URL/m4/>"
echo "<$perl_URL>"
;;
esac
}
give_advice ()
{
# Normalize program name to check for.
normalized_program=`echo "$1" | sed '
s/^gnu-//; t
s/^gnu//; t
s/^g//; t'`
printf '%s\n' "'$1' is $msg."
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
case $normalized_program in
autoconf*)
echo "You should only need it if you modified 'configure.ac',"
echo "or m4 files included by it."
program_details 'autoconf'
;;
autoheader*)
echo "You should only need it if you modified 'acconfig.h' or"
echo "$configure_deps."
program_details 'autoheader'
;;
automake*)
echo "You should only need it if you modified 'Makefile.am' or"
echo "$configure_deps."
program_details 'automake'
;;
aclocal*)
echo "You should only need it if you modified 'acinclude.m4' or"
echo "$configure_deps."
program_details 'aclocal'
;;
autom4te*)
echo "You might have modified some maintainer files that require"
echo "the 'autom4te' program to be rebuilt."
program_details 'autom4te'
;;
bison*|yacc*)
echo "You should only need it if you modified a '.y' file."
echo "You may want to install the GNU Bison package:"
echo "<$gnu_software_URL/bison/>"
;;
lex*|flex*)
echo "You should only need it if you modified a '.l' file."
echo "You may want to install the Fast Lexical Analyzer package:"
echo "<$flex_URL>"
;;
help2man*)
echo "You should only need it if you modified a dependency" \
"of a man page."
echo "You may want to install the GNU Help2man package:"
echo "<$gnu_software_URL/help2man/>"
;;
makeinfo*)
echo "You should only need it if you modified a '.texi' file, or"
echo "any other file indirectly affecting the aspect of the manual."
echo "You might want to install the Texinfo package:"
echo "<$gnu_software_URL/texinfo/>"
echo "The spurious makeinfo call might also be the consequence of"
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
echo "want to install GNU make:"
echo "<$gnu_software_URL/make/>"
;;
*)
echo "You might have modified some files without having the proper"
echo "tools for further handling them. Check the 'README' file, it"
echo "often tells you about the needed prerequisites for installing"
echo "this package. You may also peek at any GNU archive site, in"
echo "case some other package contains this missing '$1' program."
;;
esac
}
give_advice "$1" | sed -e '1s/^/WARNING: /' \
-e '2,$s/^/ /' >&2
# Propagate the correct exit status (expected to be 127 for a program
# not found, 63 for a program that failed due to version mismatch).
exit $st
# Local variables:
# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC0"
# time-stamp-end: "; # UTC"
# End:
This diff is collapsed.
configure.sh
\ No newline at end of file
This diff is collapsed.
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment