Below is a draft Meep install script for Cygwin. To reproduce the common
Cygwin Meep make check segmentation faults run the script on a fresh Cygwin
install. I would appreciate hearing from someone who has solved this
problem. Sincere thanks!

#!/bin/bash

# \begin(README)

# cygwinmeepinstaller version 0.16k (should be moved to a repository)

# (prior to that please ++0.1 the version number prior to saving any changes
#  and append your initial to the version number, then save&email it to me)

# This script attempts to help install meep in the Cygwin environment

# Download "All" of Cygwin (without installing) by clicking on "Default"
# to change it to "Install" (cycles: 
# Default->Install->Reinstall->Uninstall->Default)

# Install "All" of Cygwin from local directory by clicking on "Default"
# to change it to "Install" (cycles: 
# Default->Install->Reinstall->Uninstall->Default)
# Use the default install directory of C:\cygwin

# After obtaining this file use the Cygwin bash shell to run
# chmod +rx cygwinmeepinstaller

# Run this file by typing
# ./cygwinmeepinstaller

# If an unattended install is desired comment out the user feedback e.g.
# read -n 1 yorn

# \end(README)

# N.B. Included in: http://www.cygwin.com/packages/ are:
# cygwin-1.5.25-15
# guile-1.8.2-1
# lapack-3.0-8
# fftw3-3.2-1
# hdf5-1.6.8-4
# octave-3.0.3-1

echo -n "1/8 Set environment? (y/n) "
yorn="y"
read -n 1 yorn
if [ $yorn == y ]; then
  export HOME="/usr/local"
  export LDFLAGS="-L/usr/local/lib"
  export CPPFLAGS="-I/usr/local/include"
  export PATH="$PATH:/usr/local/bin"
fi

echo -n -e "\n2/8 Download sources? (y/n) "
yorn="y"
read -n 1 yorn
if [ $yorn == y ]; then
  echo -n -e "\n"
  cd "$HOME"
  wget http://ab-initio.mit.edu/harminv/harminv-1.3.1.tar.gz
  wget http://ab-initio.mit.edu/libctl/libctl-3.1.tar.gz
  wget http://ab-initio.mit.edu/h5utils/h5utils-1.12.1.tar.gz
  wget http://ab-initio.mit.edu/meep/meep-1.0.3.tar.gz
fi

echo -n -e "\n3/8 Extract sources? (y/n) "
yorn="y"
read -n 1 yorn
if [ $yorn == y ]; then
  echo -n -e "\n"
  cd "$HOME"
  gunzip harminv-1.3.1.tar.gz; tar xf harminv-1.3.1.tar
  gunzip libctl-3.1.tar.gz; tar xf libctl-3.1.tar
  gunzip h5utils-1.12.1.tar.gz; tar xf h5utils-1.12.1.tar
  gunzip meep-1.0.3.tar.gz; tar xf meep-1.0.3.tar
fi

echo -n -e "\n4/8 Update path in libg2c.la, install harmvinv-1.3.1, and
update path in libharminv.la? (y/n) "
yorn="y"
read -n 1 yorn
if [ $yorn == y ]; then
  echo -n -e "\n"
  cd /lib/gcc/i686-pc-cygwin/3.4.4
  if [ ! -e libg2c.la.no3.4.4 ] ; then
    mv libg2c.la libg2c.la.no3.4.4
    sed 's/i686-pc-cygwin\//i686-pc-cygwin\/3.4.4/g'
libg2c.la.no3.4.4>libg2c.la
  fi
  cd $HOME/harminv-1.3.1
  ./configure
  make
  make install
  cd $HOME/lib
  if [ ! -e libharminv.la.no3.4.4 ] ; then
    mv libharminv.la libharminv.la.no3.4.4
    sed 's/\/\//\/3.4.4\//g' libharminv.la.no3.4.4>libharminv.la
  fi
  cd $HOME
fi

echo -n -e "\n5/8 Install libctl-3.1 and fix lib_ctave.dll.a? (y/n) "
yorn="y"
read -n 1 yorn
if [ $yorn == y ]; then
  echo -n -e "\n"
  cd $HOME/libctl-3.1
  ./configure
  make
  make install
  cd /lib/octave-3.0.3
  if [ -e libctave.dll.a ] ; then
    mv libctave.dll.a liboctave.dll.a
  fi
  cd $HOME
fi

echo -n -e "\n6/8 Install h5utils-1.12.1 and add meep:: to infinity? (y/n) "
yorn="y"
read -n 1 yorn
if [ $yorn == y ]; then
  echo -n -e "\n"
  cd $HOME/h5utils-1.12.1
  ./configure
  make
  make install
  cd $HOME/meep-1.0.3/tests
  if [ ! -e bragg_transmission.cpp.nomeep ] ; then
    mv bragg_transmission.cpp bragg_transmission.cpp.nomeep
    sed 's/infinity/meep::infinity/g'
bragg_transmission.cpp.nomeep>bragg_transmission.cpp
  fi
  if [ ! -e h5test.cpp.nomeep ] ; then
    mv h5test.cpp h5test.cpp.nomeep
    sed 's/infinity/meep::infinity/g' h5test.cpp.nomeep>h5test.cpp
  fi 
  cd $HOME
fi

echo -n -e "\n7/8 Install meep-1.0.3? (y/n) "
yorn="y"
read -n 1 yorn
if [ $yorn == y ]; then
  echo -n -e "\n"
  cd $HOME/meep-1.0.3
  ./configure
  make
  make install
  cd $HOME
fi

echo -n -e "\n8/8 Check meep-1.0.3 install? (y/n) "
yorn="y"
read -n 1 yorn
if [ $yorn == y ]; then
  echo -n -e "\n"
  cd $HOME/meep-1.0.3
  make check
  cd $HOME
fi

exit



_______________________________________________
meep-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

Reply via email to