#!/bin/ksh

# ICON
#
# ------------------------------------------
# Copyright (C) 2004-2026, DWD, MPI-M, DKRZ, KIT, ETH, MeteoSwiss
# Contact information: icon-model.org
# See AUTHORS.TXT for a list of authors
# See LICENSES/ for license information
# SPDX-License-Identifier: BSD-3-Clause
# ------------------------------------------

# usage get_icon <source icon-dev full path> <target icon-dev full path>
#  links the <source icon-dev full path> to <target icon-dev full path>.
#  useful for multiple setups, sharing the source code

set -x
icon_dev_from=$1
icon_dev_to=$2

if [ ! -d ${icon_dev_to} ] ; then
  mkdir -p ${icon_dev_to}
fi

# cd ${icon_dev_to}


#-----------------------------------------------------------------------------------
link_source_list()
{
  source_folder=$1
  source_files_list="$2"

  if [ x${source_folder} != "x" ] ; then
    if [ ! -d ${icon_dev_to}/${source_folder} ] ; then
      mkdir -p ${icon_dev_to}/${source_folder}
    fi
  fi

  if [ "${source_files_list}" == "all" ] ; then
    ln -s ${icon_dev_from}/${source_folder}*  ${icon_dev_to}/${source_folder}
  else
    for source_file in ${source_files_list}
    do
      ln -s ${icon_dev_from}/${source_folder}${source_file}  ${icon_dev_to}/${source_folder}
    done
  fi

}

#-----------------------------------------------------------------------------------
#link folder

link_source_list "" "src data doc include scripts support create_builds build_all
aclocal.m4 configure.ac configure make_my_runscript make_runscripts make_nat-ape-dec_runs
Makefile.in externals lapack blas conrib vertical_coord_tables"

link_source_list "config/" all
link_source_list "run/" all

#-----------------------------------------------------------------------------------

cat > ${icon_dev_to}/config/multiple_builds << EOF
#==============================================
# This file defines multiple builds for ICON
#==============================================

#==============================================
# Define the run scripts in run/ to be common along the following builds
run_scripts=*

#==============================================
# Define parameters for each build - examples:
build_folder=gcc_yMyO_hiopt configure_options=--with-fortran=gcc --with-mpi  --with-openmp --with-flags=hiopt
build_folder=gcc_nMnO configure_options=--with-fortran=gcc --without-mpi
build_folder=gcc_nMyO configure_options=--with-fortran=gcc --without-mpi --with-openmp
build_folder=gcc_yMnO configure_options=--with-fortran=gcc --with-mpi
build_folder=gcc_yMnO_hiopt configure_options=--with-fortran=gcc --with-mpi --with-flags=hiopt
build_folder=nag_nMnO configure_options=--with-fortran=nag --without-mpi
build_folder=nag_yMnO configure_options=--with-fortran=nag --with-mpi
build_folder=intel_nMyO configure_options=--with-fortran=intel --without-mpi --with-openmp
build_folder=intel_nMnO configure_options=--with-fortran=intel --without-mpi
build_folder=intel_yMnO configure_options=--with-fortran=intel --with-mpi
build_folder=intel_yMyO configure_options=--with-fortran=intel --with-mpi --with-openmp
build_folder=intel_yMnO_hiopt configure_options=--with-fortran=intel --with-mpi --with-flags=hiopt
build_folder=pgi_yMnO configure_options=--with-fortran=pgi  --with-mpi
EOF

exit
