@@ -15,19 +15,19 @@ set -e
1515unset PMI_RANK
1616
1717# name of the script
18- APP_NAME=$( basename $0 )
18+ APP_NAME=" $( basename " $0 " ) "
1919
2020# directory and parent directory of this script
21- PARENT_DIR=" $( dirname $BASH_SOURCE ) /.."
21+ PARENT_DIR=" $( dirname " $BASH_SOURCE " ) /.."
2222
2323# prefer perl exe set by neuron wrappers in case of wheel
24- PERL_EXE=${CORENRN_PERLEXE:-@ PERL_EXECUTABLE@ }
24+ PERL_EXE=" ${CORENRN_PERLEXE:-@ PERL_EXECUTABLE@ } "
2525# in case of mac installer, wrapper is not used and hence
2626# check if binary exist. otherwise, just rely on perl being
2727# in default $PATH
28- if [ ! -f " ${PERL_EXE} " ]; then PERL_EXE=$( which perl) ; fi
28+ if [ ! -f " ${PERL_EXE} " ]; then PERL_EXE=" $( which perl) " ; fi
2929
30- ROOT_DIR=$( ${PERL_EXE} -e " use Cwd 'abs_path'; print abs_path('$PARENT_DIR ')" )
30+ ROOT_DIR=" $( " ${PERL_EXE} " -e " use Cwd 'abs_path'; print abs_path('$PARENT_DIR ')" ) "
3131
3232# default arguments : number of parallel builds and default mod file path
3333PARALLEL_BUILDS=4
101101
102102# if defined mods dir be in $1
103103if [ $# -eq 1 ]; then
104- # Note: due to bug #712 makefile wont handle mod dir with spaces, so we let it fail here
105- params_MODS_PATH=$1
104+ params_MODS_PATH=" $1 "
106105fi
107106
107+ shopt -s nullglob
108108# warn if no mod files provided
109- if [ -d $params_MODS_PATH ]; then
110- ls $params_MODS_PATH /* .mod & > /dev/null || echo " WARNING: No mod files found, compiling default ones only!"
109+ if [ -d " $params_MODS_PATH " ]; then
110+ files=( " $params_MODS_PATH " /* .mod )
111+ if [ ${# files} -eq 0 ]; then
112+ echo " WARNING: No mod files found in '$( realpath ${params_MODS_PATH} ) ', compiling default ones only!"
113+ fi
111114else
112115 echo " FATAL: Invalid mods directory: '$params_MODS_PATH '"
113116 exit 1
114117fi
115118
116119# temporary directory where mod files will be copied
117- temp_mod_dir=@CMAKE_HOST_SYSTEM_PROCESSOR@/corenrn/mod2c
118- mkdir -p $temp_mod_dir
120+ temp_mod_dir=" @CMAKE_HOST_SYSTEM_PROCESSOR@/corenrn/mod2c"
121+ mkdir -p " $temp_mod_dir "
119122
120123# copy mod files with include files. note that ${ROOT_DIR}/share
121124# has inbuilt mod files and user provided mod files are in $params_MODS_PATH.
122125set +e
123- for mod_dir in ${ROOT_DIR} /share/modfile $params_MODS_PATH ;
126+ for mod_dir in " ${ROOT_DIR} /share/modfile" " $params_MODS_PATH " ;
124127do
125128 # copy mod files and include files
126- files=` ls $mod_dir /* .mod $mod_dir /* .inc $mod_dir /* .h* 2> /dev/null `
127- for f in $ files;
129+ files=( " $mod_dir /" * .mod " $mod_dir /" * .inc " $mod_dir /" * .h* )
130+ for f in " ${ files[@]} " ;
128131 do
129132 # copy mod files only if it's changed (to avoid rebuild)
130- target_file_path=$temp_mod_dir /` basename $f `
131- if ! diff -q $f $target_file_path & > /dev/null; then
132- cp $f $target_file_path
133+ target_file_path=" $temp_mod_dir /$( basename " $f " ) "
134+ if ! diff -q " $f " " $target_file_path " & > /dev/null; then
135+ cp " $f " " $target_file_path "
133136 fi
134137 done
135138done
136139set -e
137140
138141# use new mod files directory for compilation
139- params_MODS_PATH=$temp_mod_dir
142+ params_MODS_PATH=" $temp_mod_dir "
140143
141144# build params to make command
142145make_params=(" ROOT=${ROOT_DIR} " )
0 commit comments