Changeset 26156


Ignore:
Timestamp:
03/26/21 19:25:46 (4 years ago)
Author:
jdquinn
Message:

CHG: Further configuration changes to make Chaco work under MSYS2 MinGW; moved SEMIC libraries to /lib; changed awk for cut in IdFromString as there seems to be a quoting issues under Windows and/or MSYS2; expanded Windows Basic build test suite

Location:
issm/trunk-jpl
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile

    r26145 r26156  
    1 ifeq "$(origin AR)" "undefined"
    2         AR = ar
    3 endif
    4 
    5 ifeq "$(origin RANLIB)" "undefined"
    6         RANLIB = ranlib
    7 endif
    8 
    91DEST_DIR =      ../exec
    102DEST=           ${DEST_DIR}/chaco
    113CC =            gcc
    12 IFLAG =         -Imain
    13 CFLAGS =        -fpic -fno-omit-frame-pointer -pthread -fexceptions -g -I/mingw64/x86_64-w64-mingw32/include -Wno-implicit-function-declaration
     4IFLAG =         -Imain -I/mingw64/x86_64-w64-mingw32/include
     5CFLAGS =        -fPIC -fno-omit-frame-pointer -pthread -fexceptions -g -Wno-implicit-function-declaration -D_MSYS2_
    146OFLAGS =        -O2
     7#AR =             /usr/ccs/bin/ar rcv   # for solaris 2
     8#AR =             /usr/bin/ar rcv
     9AR =             ar cr
     10#RANLIB =         /usr/ccs/bin/ranlib   # for solaris 2
     11#RANLIB =         /usr/bin/ranlib
     12RANLIB =         ranlib
    1513
    1614FILES.c=        main/user_params.c main/interface.c main/main.c \
     
    9694                util/vecscale.c
    9795
     96
     97FILESMINUSBLAS.c=       main/user_params.c main/interface.c main/main.c \
     98                submain/balance.c submain/divide.c submain/submain.c \
     99                input/input_assign.c \
     100                input/check_input.c input/input.c input/input_geom.c \
     101                input/input_graph.c input/read_params.c input/reflect_input.c \
     102                input/read_val.c \
     103                graph/check_graph.c graph/free_graph.c \
     104                graph/reformat.c graph/subgraph.c graph/graph_out.c \
     105                inertial/eigenvec2.c inertial/eigenvec3.c inertial/inertial.c \
     106                inertial/inertial1d.c inertial/inertial2d.c \
     107                inertial/inertial3d.c inertial/make_subgeom.c \
     108                klspiff/buckets.c klspiff/buckets_bi.c klspiff/buckets1.c \
     109                klspiff/bilistops.c klspiff/coarsen_kl.c klspiff/count_weights.c \
     110                klspiff/compress_ewgts.c klspiff/kl_init.c klspiff/kl_output.c \
     111                klspiff/klspiff.c klspiff/make_bndy_list.c \
     112                klspiff/make_kl_list.c klspiff/nway_kl.c \
     113                klvspiff/bpm_improve.c klvspiff/bucketsv.c \
     114                klvspiff/clear_dvals.c klvspiff/coarsen_klv.c \
     115                klvspiff/countup_vtx_sep.c klvspiff/find_bndy.c klvspiff/flow.c \
     116                klvspiff/klv_init.c klvspiff/klvspiff.c klvspiff/make_bpgraph.c \
     117                klvspiff/make_sep_list.c klvspiff/matching.c klvspiff/nway_klv.c \
     118                klvspiff/flatten.c \
     119                coarsen/coarsen.c coarsen/interpolate.c coarsen/makefgraph.c \
     120                coarsen/makeccoords.c \
     121                coarsen/coarsen1.c coarsen/makev2cv.c \
     122                coarsen/maxmatch.c coarsen/maxmatch1.c coarsen/maxmatch2.c \
     123                coarsen/maxmatch3.c coarsen/maxmatch4.c coarsen/maxmatch5.c \
     124                connect/add_edges.c connect/connected.c connect/find_edges.c \
     125                eigen/bidir.c eigen/bisect.c eigen/checkeig.c \
     126                eigen/checkeig_ext.c \
     127                eigen/checkorth.c eigen/cksturmcnt.c eigen/mkeigvecs.c\
     128                eigen/eigensolve.c eigen/get_extval.c eigen/get_ritzvals.c \
     129                eigen/lanczos_FO.c eigen/lanczos_SO.c eigen/lanczos_SO_float.c \
     130                eigen/lanczos_ext.c eigen/lanczos_ext_float.c eigen/lanc_seconds.c\
     131                eigen/lanpause.c eigen/makeorthlnk.c eigen/mkscanlist.c \
     132                eigen/orthog1.c eigen/orthogonalize.c eigen/orthogvec.c \
     133                eigen/ql.c eigen/rqi.c eigen/rqi_ext.c eigen/scale_diag.c \
     134                eigen/scanmax.c eigen/scanmin.c eigen/solistout.c \
     135                eigen/sorthog.c eigen/splarax.c eigen/sturmcnt.c \
     136                eigen/Tevec.c eigen/tri_solve.c eigen/warnings.c \
     137                symmlq/aprod.c symmlq/msolve.c symmlq/pow_dd.c \
     138                symmlq/symmlq.c  \
     139                tinvit/tinvit.c tinvit/pythag.c tinvit/epslon.c \
     140                optimize/determinant.c optimize/func2d.c \
     141                optimize/func3d.c optimize/opt2d.c optimize/opt3d.c \
     142                assign/assign.c assign/assign_out.c assign/mapper.c \
     143                assign/median.c assign/merge_assign.c \
     144                assign/rec_median.c assign/rotate.c assign/y2x.c \
     145                bpmatch/checkbp.c bpmatch/inits2d.c bpmatch/inits3d.c \
     146                bpmatch/genvals2d.c bpmatch/genvals3d.c bpmatch/map2d.c \
     147                bpmatch/map3d.c bpmatch/movevtxs.c \
     148                bpmatch/sorts2d.c bpmatch/sorts3d.c \
     149                refine_map/compute_cube_edata.c refine_map/compute_cube_vdata.c \
     150                refine_map/refine_cube.c refine_map/update_cube_edata.c \
     151                refine_map/update_cube_vdata.c refine_map/find_edge_cube.c \
     152                refine_map/init_cube_edata.c refine_map/compute_mesh_edata.c \
     153                refine_map/compute_mesh_vdata.c refine_map/find_edge_mesh.c \
     154                refine_map/init_mesh_edata.c refine_map/refine_mesh.c \
     155                refine_map/update_mesh_edata.c refine_map/update_mesh_vdata.c \
     156                refine_map/refine_map.c refine_map/make_comm_graph.c \
     157                refine_part/refine_part.c refine_part/kl_refine.c \
     158                refine_part/make_maps_ref.c refine_part/make_terms_ref.c \
     159                internal/force_internal.c internal/improve_internal.c \
     160                internal/check_internal.c \
     161                misc/define_subcubes.c misc/define_submeshes.c \
     162                misc/divide_procs.c misc/merge_goals.c misc/make_term_props.c \
     163                misc/count.c misc/countup.c misc/countup_cube.c \
     164                misc/countup_mesh.c misc/make_subgoal.c \
     165                misc/find_maxdeg.c misc/make_maps.c misc/make_setlists.c \
     166                misc/sequence.c misc/perturb.c misc/simple_part.c \
     167                misc/time_kernels.c misc/timing.c \
     168                util/affirm.c util/array_alloc_2D.c util/bit_reverse.c \
     169                util/checkpnt.c util/cpvec.c util/dot.c \
     170                util/doubleout.c util/input_int.c util/gray.c \
     171                util/machine_params.c util/makevwsqrt.c util/mkvec.c util/norm.c \
     172                util/normalize.c util/mergesort.c \
     173                util/randomize.c util/smalloc.c util/bail.c \
     174                util/scadd.c util/seconds.c util/setvec.c util/shell_sort.c \
     175                util/strout.c util/tri_prod.c util/true_or_false.c \
     176                util/update.c  util/vecout.c util/vecran.c \
     177                util/vecscale.c
     178
    98179FILES.o=        $(FILES.c:.c=.o)
     180FILESMINUSBLAS.o=       $(FILESMINUSBLAS.c:.c=.o)
    99181
    100182
     
    103185
    104186chaco.a:        ${FILES.o}
    105                 ${AR} cr $@ ${FILES.o} ; ${RANLIB} $@
     187                ${AR} $@ ${FILES.o} ; ${RANLIB} $@
    106188
    107189chacominusblas.a:       ${FILESMINUSBLAS.o}
    108                 ${AR} cr $@ ${FILESMINUSBLAS.o} ; ${RANLIB} $@
     190                ${AR} $@ ${FILESMINUSBLAS.o} ; ${RANLIB} $@
    109191
    110192lint:
  • issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/util/seconds.c

    r26145 r26156  
    33 * contract DE-AC04-76DP00789 and is copyrighted by Sandia Corporation. */
    44
    5 /**
    6  * NOTE: Under MSYS2 MinGW, we do not want to have to depend on the MSYS2
    7  *               runtime for our distributable packages. Unfortunately, sys/resource.h
    8  *               is not currently available for MinGW (standalone) targets under MSYS2.
    9  *               this further means that,
    10  *
    11  *                      -I/mingw64/x86_64-w64-mingw32/include
    12  *
    13  *               should be included in CFLAGS, and that,
    14  *
    15  *                      -I/usr/include
    16  *
    17  *               should be avoided.
    18  */
    19 //#include   <sys/time.h>
    20 //#include   <sys/resource.h>
     5#if defined(_INTEL_WIN_) || defined(_MSYS2_)
    216#include   <time.h>
     7#else
     8#include   <sys/time.h>
     9#include   <sys/resource.h>
     10#endif
    2211
    2312double    seconds()
     
    2514    double    curtime;
    2615
    27 // #ifdef RUSAGE_SELF
     16#ifdef RUSAGE_SELF
    2817
    29 // /* This timer is faster and more robust (if it exists). */
    30 //     struct rusage rusage;
    31 //     int getrusage();
     18/* This timer is faster and more robust (if it exists). */
     19    struct rusage rusage;
     20    int getrusage();
    3221 
    33 //     getrusage(RUSAGE_SELF, &rusage);
    34 //     curtime = ((rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec) +
    35 //          1.0e-6 * (rusage.ru_utime.tv_usec + rusage.ru_stime.tv_usec));
     22    getrusage(RUSAGE_SELF, &rusage);
     23    curtime = ((rusage.ru_utime.tv_sec + rusage.ru_stime.tv_sec) +
     24            1.0e-6 * (rusage.ru_utime.tv_usec + rusage.ru_stime.tv_usec));
    3625
    37 // #else
     26#else
    3827
    3928/* ANSI timer, but lower resolution & wraps around after ~36 minutes. */
     
    4130    curtime = clock()/((double) CLOCKS_PER_SEC);
    4231
    43 // #endif
     32#endif
    4433
    4534    return (curtime);
  • issm/trunk-jpl/externalpackages/semic/install.sh

    r25860 r26156  
    99# Cleanup
    1010rm -rf ${PREFIX} src
    11 mkdir -p ${PREFIX}
     11mkdir -p ${PREFIX}/lib
    1212
    1313# Download source
     
    3535FFLAGS=$FFLAGS
    3636install: libutils.\$(LIB_EXT)
    37         cp libutils.\$(LIB_EXT) ${PREFIX}
     37        cp libutils.\$(LIB_EXT) ${PREFIX}/lib
    3838        cp utils.mod ${PREFIX}
    3939OBJECTS= utils.o
     
    5959FFLAGS=$FFLAGS
    6060install: libsurface_physics.\$(LIB_EXT)
    61         cp libsurface_physics.\$(LIB_EXT) ${PREFIX}
     61        cp libsurface_physics.\$(LIB_EXT) ${PREFIX}/lib
    6262        cp surface_physics.mod ${PREFIX}
    6363OBJECTS= surface_physics.o
  • issm/trunk-jpl/jenkins/ross-win-msys2-mingw-msmpi-basic

    r26145 r26156  
    6363# See documentation in test/NightlyRun/runme.* for more information
    6464#
    65 MATLAB_NROPTIONS="'id',[101,102,201,202]"
     65# NOTE:
     66# - test701 is skipped because it uses full Stokes equations
     67#
     68MATLAB_NROPTIONS="'exclude',[IdFromString('Dakota'),435,701,702,703]"
    6669PYTHON_NROPTIONS=""
  • issm/trunk-jpl/m4/issm_options.m4

    r26082 r26156  
    320320                        AC_DEFINE([_HAVE_RESTRICT_], [1], [with restrict buffers])
    321321                elif test "${VENDOR}" == "win-msys2"; then
     322                        export CXXFLAGS="-D_MSYS2_"
    322323                        export LDFLAGS="${LDFLAGS} -no-undefined"
    323324                        export OSLIBS="-Wl,-L/mingw64/lib/gcc/x86_64-w64-mingw32/10.2.0 -Wl,-L/mingw64/x86_64-w64-mingw32/lib -Wl,-lstdc++ -Wl,-lgfortran -Wl,-lmingw32 -Wl,-lgcc_s -Wl,-lmoldname -Wl,-lmingwex -Wl,-lmsvcrt -Wl,-lm -Wl,-lpthread -Wl,-lshell32 -Wl,-luser32 -Wl,-lgdi32 -Wl,-luser32 -Wl,-ladvapi32 -Wl,-lkernel32 -Wl,-lquadmath -Wl,-lstdc++ -Wl,-lgcc"
     
    901902        dnl Chaco libraries and header files
    902903        if test "x${HAVE_CHACO}" == "xyes"; then
    903                 CHACOINCL=-I${CHACO_ROOT}/include
    904                 CHACOLIB="-L${CHACO_ROOT}/lib -lchacominusblas"
     904                CHACOINCL="-I${CHACO_ROOT}/include"
     905                if test "${IS_MSYS2}" == "yes"; then
     906                        CHACOLIB="-Wl,-L${CHACO_ROOT}/lib -Wl,-lchacominusblas"
     907                else
     908                        CHACOLIB="-L${CHACO_ROOT}/lib -lchacominusblas"
     909                fi
    905910                AC_DEFINE([_HAVE_CHACO_], [1], [with Chaco in ISSM src])
    906911                AC_SUBST([CHACOINCL])
     
    16631668        dnl M1QN3 libraries and header files
    16641669        if test "x${HAVE_M1QN3}" == "xyes"; then
    1665                 M1QN3LIB="${M1QN3_ROOT}/libm1qn3.a ${M1QN3_ROOT}/libddot.a"
     1670                if test "${IS_MSYS2}" == "yes"; then
     1671                        M1QN3LIB="-Wl,${M1QN3_ROOT}/libm1qn3.a -Wl,${M1QN3_ROOT}/libddot.a"
     1672                else
     1673                        M1QN3LIB="${M1QN3_ROOT}/libm1qn3.a ${M1QN3_ROOT}/libddot.a"
     1674                fi
    16661675                AC_DEFINE([_HAVE_M1QN3_], [1], [with M1QN3 in ISSM src])
    16671676                AC_SUBST([M1QN3LIB])
     
    21172126        if test "x${HAVE_SEMIC}" == "xyes"; then
    21182127                SEMICINCL="-I${SEMIC_ROOT}"
     2128                if test "${IS_MSYS2}" == "yes"; then
     2129                        SEMICLIB="-Wl,-L${SEMIC_ROOT}/lib -Wl,-lsurface_physics -Wl,-lutils"
     2130                else
     2131                        SEMICLIB="-L${SEMIC_ROOT}/lib -lsurface_physics -lutils"
     2132                fi
    21192133                AC_DEFINE([_HAVE_SEMIC_], [1], [with SEMIC in ISSM src])
    2120                 SEMICLIB="-L${SEMIC_ROOT} -lsurface_physics -lutils"
    21212134                AC_SUBST([SEMICLIB])
    21222135                AC_SUBST([SEMICINCL])
  • issm/trunk-jpl/src/c/Makefile.am

    r26117 r26156  
    707707if !WINDOWS
    708708if !STANDALONE_LIBRARIES
    709 libISSMCore_la_LIBADD = $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(ADJOINTMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(OSLIBS)
     709libISSMCore_la_LIBADD = $(CHACOLIB) $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(ADJOINTMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(OSLIBS)
    710710if FORTRAN
    711711libISSMCore_la_LIBADD += $(FLIBS) $(FORTRANLIB)
     
    733733libISSMModules_la_LIBADD = ./libISSMCore.la
    734734else
    735 libISSMModules_la_LIBADD = ./libISSMCore.la $(TRIANGLELIB) $(CHACOLIB)
     735libISSMModules_la_LIBADD = ./libISSMCore.la $(TRIANGLELIB) $(CHACOLIB) $(BLASLAPACKLIB) $(OSLIBS)
    736736endif
    737737endif
     
    823823
    824824#External packages
    825 LDADD += $(DAKOTALIB) $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(NEOPZLIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(BLACSLIB) $(HDF5LIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(AMPILIB) $(ADJOINTMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJLIB) $(ESMFLIB) $(OSLIBS)
     825LDADD += $(CHACOLIB) $(DAKOTALIB) $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(NEOPZLIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(BLACSLIB) $(HDF5LIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(AMPILIB) $(ADJOINTMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJLIB) $(ESMFLIB) $(OSLIBS)
    826826
    827827if FORTRAN
  • issm/trunk-jpl/src/c/modules/Chacox/chaco_seconds.cpp

    r13622 r26156  
    11/*This is needed, because the chaco library defines a "C" function seconds that conflicts with the Metis version.: */
    22
    3 #ifdef _INTEL_WIN_
     3#if defined(_INTEL_WIN_) || defined(_MSYS2_)
    44#include   <time.h>
    55#else
  • issm/trunk-jpl/test/NightlyRun/IdFromString.m

    r25730 r26156  
    2020%Grep string
    2121if strcmp(string,'*'),
    22         [dummy ids_raw]=system(['find ./ -name "test[0-9]*.m" | xargs grep "%Test Name:" | sed -e "s/test/ /g" -e "s/\.m:/ /g" | awk {''print $2''}']);
     22        [dummy ids_raw]=system(['find ./ -name "test[0-9]*.m" | xargs grep "%Test Name:" | sed -e "s/test/ /g" -e "s/\.m:/ /g" | cut -d" " -f 2']);
    2323else
    24         [dummy ids_raw]=system(['find ./ -name "test[0-9]*.m" | xargs grep "%Test Name:" | grep ' string ' | sed -e "s/test/ /g" -e "s/\.m:/ /g" | awk {''print $2''}']);
     24        [dummy ids_raw]=system(['find ./ -name "test[0-9]*.m" | xargs grep "%Test Name:" | grep ' string ' | sed -e "s/test/ /g" -e "s/\.m:/ /g" | cut -d" " -f 2']);
     25end
     26
     27%Check for error
     28if dummy~=0,
     29        error(['system call failed:' newline ids_raw]);
    2530end
    2631
Note: See TracChangeset for help on using the changeset viewer.