Require help with Mercurial on Windows

Post Reply
shailesh
Posts: 104
Joined: Thu Mar 10, 2011 12:11 am

Require help with Mercurial on Windows

Post by shailesh » Tue May 20, 2014 3:27 pm

I was trying to compile the latest development code throught Mercurial (so as to make use of http://www.neuron.yale.edu/hg/neuron/nr ... 4dac40175f). I followed the instructions given here:
Link 1: http://www.neuron.yale.edu/neuron/download/getdevel
Link 2: http://www.neuron.yale.edu/neuron/downl ... pile_mswin
(I should point out that this is the first time I am attempting to compile Neuron and also not too conversant with Linux/cygwin)

I get the following message during the compile stage (step 2 of link 2)
Shailesh@Centurion-PC ~/neuron/iv
$ make
make: *** No targets specified and no makefile found. Stop.

Shailesh@Centurion-PC ~/neuron/iv
$ make install
make: Nothing to be done for 'install'.
I suppose there should be some file called 'makefile' in the directory before I execute the make command. But apparently they do no exist.

I can see that the config files have been created (step 2 of link 1) as there are files named 'config.*' in both the directories (iv and nrn). While compiling, the command

Code: Select all

./configure --prefix=`pwd`
did not work and gave the following error:
configure: error: expected an absolute directory name for --prefix: pwd
So that had to be replaced with the equivalent of pwd:

Code: Select all

$ ./configure --prefix='$HOME/neuron/iv'
The output now was:
checking build system type... x86_64-unknown-cygwin
checking host system type... x86_64-unknown-cygwin
CYGWIN=yes
MINGW=no
./configure: line 2630: AC_DISABLE_STATIC: command not found
./configure: line 2631: AC_ENABLE_SHARED: command not found
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
./configure: line 3296: AC_PROG_LIBTOOL: command not found
./configure: line 3298: AC_CHECK_LIBM: command not found
./configure: line 3310: AC_CXX_NAMESPACES: command not found
./configure: line 3311: AC_CXX_HAVE_SSTREAM: command not found
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking stream.h usability... no
checking stream.h presence... no
checking for stream.h... no
in ivstream.h, the obuf.open(name, output) does not work with #undef HAVE_STREAM_H
trying the NO_OUTPUT_OPENMODE definition
in ivstream.h, obuf.open(name, std::ios_base::out) does not work with #undef HAVE_STREAM_H
Fix iv-14/src/include/ivstream.h in such a way that configure does not stop here.
Is the above output ok?

To summarize, here is what I have done till now:
1> Installed Mercurial (TortoiseHg with Windows Explorer "shell" integration) from http://mercurial.selenic.com/wiki/Download and setup the proxy settings
2> Installed cygwin (1.7.29(0.272/5/3)) from http://www.cygwin.com/install.html
3> Opened terminal window (cmd) and got a copy of the development code (step 1 of link 1)
4> Opened cygwin and followed the instructions for creating the 'configure' files (step 2 of link 1) followed by steps for compiling the code (step 2 of link 2) and got stuck at the 'make' commands.

My System details: 64 bit, Windows 7
Also, if pertinent, my internet connection is through a proxy server (the reason why I preferred installing Mercurial with TortoiseHg as it allowed me to set the proxy settings for cloning more easily).

One last thing, I read that:
Under MSWin, almost all differences from one version of NEURON to the next are expressed in binary code (machine language instructions) that is contained in two dll files called cygIVhines-3.dll and cygnrniv.dll.
On my PC, I can find the file named "cygIVhines-3.dll" but there is no file named "cygnrniv.dll". But there is a file named "nrniv.dll". Are they the same?

hines
Site Admin
Posts: 1436
Joined: Wed May 18, 2005 3:32 pm

Re: Require help with Mercurial on Windows

Post by hines » Tue May 20, 2014 7:57 pm

Try http://www.neuron.yale.edu/ftp/neuron/v ... -setup.exe
It contains mpi, python, numpy, and scipy. eg. after double clicking the mintty bash icon

Code: Select all

bash-4.1$ mpiexec -np 2 nrniv -mpi -python /cygdrive/c/nrn74/test0.py
numprocs=2
NEURON -- VERSION 7.4 (1096:294dac40175f) 2014-05-19
Duke, Yale, and the BlueBrain Project -- Copyright 1984-2014
See http://www.neuron.yale.edu/neuron/credits

I am 0 of 2
I am 1 of 2
Code: Select all
./configure --prefix=`pwd`
did not work and gave the following error:
configure: error: expected an absolute directory name for --prefix: pwd
You have to be careful to actually type the single backquotes instead of single forward quotes. Backquotes are special to the shell and mean that the stdout of the command is substituted for the
command. But no matter. Later you typed the directory expclitly.


My configure output for iv is quite different than yours. I am using
$ automake --version
automake (GNU automake) 1.11.6
$ autoconf --version
autoconf (GNU Autoconf) 2.69
$ libtool --version
libtool (GNU libtool) 2.4.2
$ gcc --version
gcc (GCC) 4.8.1

shailesh
Posts: 104
Joined: Thu Mar 10, 2011 12:11 am

Re: Require help with Mercurial on Windows

Post by shailesh » Tue May 20, 2014 11:30 pm

Thanks for the alpha installer... certainly much easier to get up and running! Will try out the parallel gap junction implementation with this.

But since I had attempted the compile on the mercurial release, I am just a tad curious to know what I did wrong. My package versions are:
Shailesh@Centurion-PC ~
$ automake --version
automake (GNU automake) 1.14

Shailesh@Centurion-PC ~
$ autoconf --version
autoconf (GNU Autoconf) 2.69

Shailesh@Centurion-PC ~
$ libtool --version
libtool (GNU libtool) 2.4.2

Shailesh@Centurion-PC ~
$ gcc --version
gcc (GCC) 4.8.2
p.s. thanks for pointing out the wrong usage of quotation marks. I wasn't aware and so I presume I didn't notice the same in the documentation.
Also,
One last thing, I read that:
Under MSWin, almost all differences from one version of NEURON to the next are expressed in binary code (machine language instructions) that is contained in two dll files called cygIVhines-3.dll and cygnrniv.dll.

On my PC, I can find the file named "cygIVhines-3.dll" but there is no file named "cygnrniv.dll". But there is a file named "nrniv.dll". Are they the same?

Post Reply