|
Last change
on this file since 27804 was 27804, checked in by jdquinn, 2 years ago |
|
CHG: Updated install scripts to handle new Mac architectures
|
-
Property svn:executable
set to
*
|
|
File size:
1.4 KB
|
| Line | |
|---|
| 1 | #!/bin/bash
|
|---|
| 2 | set -eu
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 | ## Constants
|
|---|
| 6 | #
|
|---|
| 7 | PREFIX="${ISSM_DIR}/externalpackages/semic/install" # Set to location where external package should be installed
|
|---|
| 8 |
|
|---|
| 9 | # Cleanup
|
|---|
| 10 | rm -rf ${PREFIX} src
|
|---|
| 11 | mkdir -p ${PREFIX}/lib
|
|---|
| 12 |
|
|---|
| 13 | # Download source
|
|---|
| 14 | git clone https://github.com/mkrapp/semic.git src
|
|---|
| 15 |
|
|---|
| 16 | if which ifort >/dev/null; then
|
|---|
| 17 | FC="ifort"
|
|---|
| 18 | FFLAGS="-traceback -check all" # -O2 is default
|
|---|
| 19 | else
|
|---|
| 20 | FC="gfortran"
|
|---|
| 21 | if [ `uname` == "Darwin" ]; then
|
|---|
| 22 | FFLAGS="-fcheck=all -arch $(uname -m)"
|
|---|
| 23 | else
|
|---|
| 24 | FFLAGS=""
|
|---|
| 25 | fi
|
|---|
| 26 | fi
|
|---|
| 27 |
|
|---|
| 28 | # Compile and install semic module utils.f90
|
|---|
| 29 | cd src/
|
|---|
| 30 | (
|
|---|
| 31 | cat << EOF
|
|---|
| 32 | LIB_EXT=a
|
|---|
| 33 | FC=$FC
|
|---|
| 34 | FFLAGS=$FFLAGS
|
|---|
| 35 | install: libutils.\$(LIB_EXT)
|
|---|
| 36 | cp libutils.\$(LIB_EXT) ${PREFIX}/lib
|
|---|
| 37 | cp utils.mod ${PREFIX}
|
|---|
| 38 | OBJECTS= utils.o
|
|---|
| 39 | libutils.\$(LIB_EXT): \$(OBJECTS)
|
|---|
| 40 | ar -r libutils.\$(LIB_EXT) \$(OBJECTS)
|
|---|
| 41 | ranlib libutils.\$(LIB_EXT)
|
|---|
| 42 | %.o: %.f90
|
|---|
| 43 | \$(FC) \$(FFLAGS) -fPIC -c $< -o \$@
|
|---|
| 44 | clean:
|
|---|
| 45 | rm -rf *.o *.\$(LIB_EXT)
|
|---|
| 46 | EOF
|
|---|
| 47 | ) > Makefile
|
|---|
| 48 | make
|
|---|
| 49 |
|
|---|
| 50 | # Apply patch surface_physics
|
|---|
| 51 | patch surface_physics.f90 < ../configs/surface_physics.f90.patch
|
|---|
| 52 |
|
|---|
| 53 | # Compile semic module surface_physics.f90
|
|---|
| 54 | (
|
|---|
| 55 | cat << EOF
|
|---|
| 56 | LIB_EXT=a
|
|---|
| 57 | FC=$FC
|
|---|
| 58 | FFLAGS=$FFLAGS
|
|---|
| 59 | install: libsurface_physics.\$(LIB_EXT)
|
|---|
| 60 | cp libsurface_physics.\$(LIB_EXT) ${PREFIX}/lib
|
|---|
| 61 | cp surface_physics.mod ${PREFIX}
|
|---|
| 62 | OBJECTS= surface_physics.o
|
|---|
| 63 | libsurface_physics.\$(LIB_EXT): \$(OBJECTS)
|
|---|
| 64 | ar -r libsurface_physics.\$(LIB_EXT) \$(OBJECTS)
|
|---|
| 65 | ranlib libsurface_physics.\$(LIB_EXT)
|
|---|
| 66 | %.o: %.f90
|
|---|
| 67 | \$(FC) \$(FFLAGS) -fPIC -c $< -o \$@
|
|---|
| 68 | clean:
|
|---|
| 69 | rm -rf *.o *.\$(LIB_EXT)
|
|---|
| 70 | EOF
|
|---|
| 71 | ) > Makefile
|
|---|
| 72 | make
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.