Nanohive-1 Install Notes
http://nanoengineer-1.com/nh1/index.php?option=com_staticxt&staticfile=ReadMe-body.html&Itemid=43
http://nanoengineer-1.com/nh1/index.php?option=com_content&task=view&id=34&Itemid=44
http://sourceforge.net/projects/nano-hive/files/1.%20Nano-Hive%20Core%20and%20Plugins/Nano-Hive%201.2.0%20Beta%201/Nano-Hive-1.2.0-Beta-1.tar.gz/download
http://nanoengineer-1.com/nh1/index.php?option=com_staticxt&staticfile=bodyframe/SourceInstallation.html
- Log for C++ 0.3.0 or higher
- Netscape Portable Runtime 4.4.1 or higher
- TCL 8.0 or higher
- Xerces C++ XML Parser 2.3.0 or higher
These libraries are optional depending on your installation choices.
- CppUnit 1.10.2 or higher for building/running unit tests
- curses (pdcurses 2.6 or ncurses) for the ConsoleCommand plugin
- GD Graphics Library for building the POVRayDataLayer tool for the POVRayVideo plugin
- Java JNI for the RMI_Control plugin
- libcURL 7.14.0 or higher for the SocketsPIC_Control plugin
- Massively Parallel Quantum Chemistry (MPQC) 2.2.2 or higher for the MPQC_SClib plugin
- Unidata NetCDF for the NetCDF_DataSet plugin and for use with HiveKeeper
- Open
Babel 1.100.2 for the OpenBabelImportExport plugin (Note: Open Babel
version 2.0.0 will not work for this plugin - the API is different. - wxWidgets 2.3.4 or higher, with support for OpenGL (ie, configured with --with-opengl) for building HiveKeeper
This distribution contains all sourcecode for the Nano-Hive core and all plugins, plus documentation, but no binaries.
Nano-Hive-1.2.0-Beta-1.tar.gz [3.00 Mb] | | ReadMe |
3rd Party Libraries for Developers
A number of additional 3rd party packages must be available in your
development environment for compilation. Below are links to their
websites, and here is a Supporting Libraries Build and Installation Notes to help get them installed.
Log for C++ 0.3.0 or higher
#added the -dev also and it went on to npsr error - this is the log 0.3.0 installliblog4cpp5
liblog4cpp5-dev
http://sourceforge.net/projects/log4cpp/files/
#wget log4-cpp.0.3.3.tar.gz
#/tmp$ chmod 777 log4cpp-0.3.3.tar.gz#cd log4cpp/
#cd log4cpp-0.3.3/./configure
make
make check
make install
#In file included from /usr/include/c++/4.2/backward/strstream:51,from ../include/log4cpp/OstringStream.hh:20,
from ../include/log4cpp/AppenderSkeleton.hh:14,
from ../include/log4cpp/LayoutAppender.hh:15,
from ../include/log4cpp/RemoteSyslogAppender.hh:16,
from RemoteSyslogAppender.cpp:21:
/usr/include/c++/4.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
In file included from RemoteSyslogAppender.cpp:21:
../include/log4cpp/RemoteSyslogAppender.hh:31: error: comma at end of enumerator list
../include/log4cpp/RemoteSyslogAppender.hh:56: error: comma at end of enumerator list
make[1]: *** [RemoteSyslogAppender.lo] Error 1
make[1]: Leaving directory `/home/l/log4cpp/log4cpp-0.3.3/src'
make: *** [install-recursive] Error 1
#i used the file broswer to search for RemoteSyslogAppender
#it has a different process number each time it runs
#/proc/8264/cwd/src/RemoteSyslogAppender.cpp
#/proc/22537/cwd/include/log4cpp
#/proc/8264/cwd/include/log4cpp/RemoteSyslogAppender.hh
#line 31
# LOG_DEBUG = 7,
#line 31 corrected
# LOG_DEBUG = 7
#line 56
# LOG_LOCAL7 = (23<<3), ///< reserved for local use
#line 56 corrected
# LOG_LOCAL7 = (23<<3)
#that error is solved
#In file included from /usr/include/c++/4.2/backward/strstream:51,
from ../include/log4cpp/OstringStream.hh:20,
from ../include/log4cpp/PatternLayout.hh:15,
from PatternLayout.cpp:11:
/usr/include/c++/4.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
PatternLayout.cpp:128: error: invalid in-class initialization of static data member of non-integral type 'const char* const'
PatternLayout.cpp:129: error: invalid in-class initialization of static data member of non-integral type 'const char* const'
PatternLayout.cpp:130: error: invalid in-class initialization of static data member of non-integral type 'const char* const'
PatternLayout.cpp: In constructor 'log4cpp::TimeStampComponent::TimeStampComponent(std::string)':
PatternLayout.cpp:134: error: 'FORMAT_ISO8601' was not declared in this scope
PatternLayout.cpp:136: error: 'FORMAT_ABSOLUTE' was not declared in this scope
PatternLayout.cpp:138: error: 'FORMAT_DATE' was not declared in this scope
make[1]: *** [PatternLayout.lo] Error 1
make[1]: Leaving directory `/home/l/log4cpp/log4cpp-0.3.3/src'
make: *** [all-recursive] Error 1
#/proc/22537/cwd/src/PatternLayout.cpp
#line 128
# struct TimeStampComponent : public PatternLayout::PatternComponent {
static const char* const FORMAT_ISO8601 = "%Y-%m-%d %H:%M:%S,%l";
static const char* const FORMAT_ABSOLUTE = "%H:%M:%S,%l";
static const char* const FORMAT_DATE = "%d %b %Y %H:%M:%S,%l";
#
#from http://man.sourcentral.org/MDV20090/3+log4cpp::TimeStampComponent
# struct TimeStampComponent : public PatternLayout::PatternComponent {
static const char* const FORMAT_ISO8601;
static const char* const FORMAT_ABSOLUTE;
static const char* const FORMAT_DATE;
#i changed it to this
TimeStampComponent(std::string timeFormat) {
if ((timeFormat == "") || (timeFormat == "ISO8601")) {
timeFormat = FORMAT_ISO8601;
} else if (timeFormat == "ABSOLUTE") {
timeFormat = FORMAT_ABSOLUTE;
} else if (timeFormat == "DATE") {
timeFormat = FORMAT_DATE;
}
#that seems to take care of the problem
#try to install again
#/.configure
#make
#../include/log4cpp/config.h:79:17: warning: extra tokens at end of #ifndef directive
#In file included from /usr/include/c++/4.2/backward/strstream:51,
from ../include/log4cpp/OstringStream.hh:20,
from ../include/log4cpp/Category.hh:14,
from testmain.cpp:7:
/usr/include/c++/4.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
/bin/sh ../libtool --mode=link g++ -g -O2 -Wall -Wno-unused -pedantic -o testmain testmain.o ../src/liblog4cpp.la -lnsl
mkdir .libs
g++ -g -O2 -Wall -Wno-unused -pedantic -o .libs/testmain testmain.o ../src/.libs/liblog4cpp.so -lnsl -Wl,--rpath -Wl,/usr/local/lib
../src/.libs/liblog4cpp.so: undefined reference to `log4cpp::TimeStampComponent::FORMAT_DATE'
../src/.libs/liblog4cpp.so: undefined reference to `log4cpp::TimeStampComponent::FORMAT_ISO8601'
../src/.libs/liblog4cpp.so: undefined reference to `log4cpp::TimeStampComponent::FORMAT_ABSOLUTE'
collect2: ld returned 1 exit status
make[1]: *** [testmain] Error 1
make[1]: Leaving directory `/home/l/log4cpp/log4cpp-0.3.3/tests'
make: *** [all-recursive] Error 1
#http://pastebin.com/f67370a0c
#from file
#/proc/22537/cwd/tests/testmain.cpp
#/proc/13187/cwd/include/log4cpp.h
#Netscape Portable Runtime 4.4.1 or higher
#from package manager and worked as the nspr install
#libnspr4-0d
#libnspr-dev
wget ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.4.1/src/nspr-4.4.1.tar.gz
#Download Mozilla Soucre
#tar -xjf <source-file.tar.bz2>
#tar -xjfv <source-file.tar.bz2>
This release is built from the source, at the CVS repository rooted at cvs.mozilla.org:/cvsroot, with the CVS tag NSPR_4_4_1_RTM. You can check out the source from CVS by cvs co -r NSPR_4_4_1_RTM mozilla/nsprpub
#cd nspr4.4.1/
#cd nspr-4.4.1/
#cd mozilla/
#cd nsprpub/
#~/nspr4.4.1/nspr-4.4.1/mozilla/nsprpub
#To build, do
cd mozilla/nsprpub
./configure
#sudo ln -s /usr/bin/make /usr/bin/gmake
gmake export
TCL 8.0 or higher
#wget http://sourceforge.net/projects/tcl/files/Tcl/8.0/tcl8.0.tar.gz/download
#tcl
#tcllib
#tcl-dev
#there is a patch, i am not using it this first time
#patch -p < tcl8.0p1.patch
If the patch file has a .gz extension, invoke a command like the
following:
gunzip -c tcl8.0p1.patch.gz | patch -p
If the patch file has a .Z extension, it was compressed with
compress. To apply it, invoke a command like the following:
zcat tcl8.0p1.patch.Z | patch -p
If you're applying a patch to a release that has already been
compiled, then before applying the patch you should cd to the
"unix" subdirectory and type "make distclean" to restore the
directory to a pristine state
#cd tcl8.0/
#cd unix/
./configure
#If the make fails then you'll have to personalize the Makefile
for your site or possibly modify the distribution in other ways.
First check the file "porting.notes" to see if there are hints
for compiling on your system. Then look at the porting Web page
described later in this file. If you need to modify Makefile, there
are comments at the beginning of it that describe the things you
might want to change and how to change them.
make
#make: *** No targets specified and no makefile found. Stop.
#from Makefile.in i do not see this file:
#TOOL_DIR = $(TOP_DIR)/tools
#do i need to add the tcl Makefile to the PATH ?
#this did not work
#l@EV007:~/tcl8/tcl8.0/unix$ PATH=/home/l/tcl8/tcl8.0/unix/Makefile:$PATH export PATH
#l@EV007:~/tcl8/tcl8.0/unix$ echo $PATH
#/home/l/tcl8/tcl8.0/unix/Makefile:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
#checking for gethostbyname... yes
#checking system version (for dynamic loading)... ./configure: 1: Syntax error: Unterminated quoted string
#l@EV007:~/tcl8/tcl8.0/unix$ make
#make: *** No targets specified and no makefile found. Stop.
#look in unix/configure and linux/configure.in
# Step 1: set the variable "system" to hold the name and version number
# for the system. This can usually be done via the "uname" command, but
# there are a few systems, like Next, where this doesn't work.
#is this line right?
#TCL_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1.0'
#from Makefile.ini
# The information below should be usable as is. The configure
# script won't modify it and you shouldn't need to modify it
# either.
#CC_SWITCHES = ${CFLAGS} ${TCL_SHLIB_CFLAGS} -I${GENERIC_DIR} -I${SRC_DIR} \
#${AC_FLAGS} ${MATH_FLAGS} ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
#${COMPILE_DEBUG_FLAGS} ${ENV_FLAGS} -DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\"
#should "${SHLIB_SUFFIX}\"
#"${SHLIB_SUFFIX}"\
#same error with that change
#the error with the quote is here
#if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
system=MP-RAS-`awk '{print $3}' /etc/.relid'`
#
#the error is here
#system=MP-RAS-`awk '{print $3}' /etc/.relid'`
#the correct line should say
#system=MP-RAS-`awk '{print $3}' '/etc/.relid'`
#after correcting that this error happens
#checking for sys/filio.h... no
#checking FIONBIO vs. O_NONBLOCK for nonblocking I/O... ./configure: 1: Syntax error: Unterminated quoted string
#this line is wrong
#system=MP-RAS-`awk '{print $3}' /etc/.relid'`
#this line is right
system=MP-RAS-`awk '{print $3}' '/etc/.relid'`
#make
#l@EV007:~/tcl8/tcl8.0/unix$ make
cc -c -O -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so" ./../generic/panic.c
/bin/sh: Syntax error: Unterminated quoted string
make: *** [panic.o] Error 2
#from the unix/Makefie not Makefile.in
#CC_SWITCHES = ${CFLAGS} ${TCL_SHLIB_CFLAGS} -I${GENERIC_DIR} -I${SRC_DIR} \
${AC_FLAGS} ${MATH_FLAGS} ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
${COMPILE_DEBUG_FLAGS} ${ENV_FLAGS} -DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}"\
#the last line is wrong
#-DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}"\
#the correct line is
-DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\"
#make
cc -c -O -I./../generic -I. -DHAVE_GETCWD=1 -DHAVE_UNISTD_H=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TM_ZONE=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DSTDC_HEADERS=1 -DNEED_MATHERR=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_SHLIB_EXT=\".so\" ./../generic/tclPosixStr.c
./../generic/tclPosixStr.c: In function ‘Tcl_ErrnoId’:
./../generic/tclPosixStr.c:340: error: duplicate case value
./../generic/tclPosixStr.c:328: error: previously used here
./../generic/tclPosixStr.c: In function ‘Tcl_ErrnoMsg’:
./../generic/tclPosixStr.c:787: error: duplicate case value
./../generic/tclPosixStr.c:775: error: previously used here
make: *** [tclPosixStr.o] Error 1
make install
# At this point you can play with Tcl by invoking the "tclsh"
# program and typing Tcl commands. However, if you haven't installed
Tcl then you'll first need to set your TCL_LIBRARY variable to
hold the full path name of the "library" subdirectory. Note that
the installed versions of tclsh, libtcl.a, and libtcl.so have a
version number in their names, such as "tclsh8.0" or "libtcl8.0.so";
to use the installed versions, either specify the version number
or create a symbolic link (e.g. from "tclsh" to "tclsh8.0").
If you have trouble compiling Tcl, read through the file" porting.notes".
It contains information that people have provided about changes they had
to make to compile Tcl in various environments. Or, check out the
following Web URL:
http://www.sunlabs.com/cgi-bin/tcl/info.8.0
This is an on-line database of porting information. We make no guarantees
that this information is accurate, complete, or up-to-date, but you may
find it useful. If you get Tcl running on a new configuration, we would
be happy to receive new information to add to "porting.notes". You can
also make a new entry into the on-line Web database. We're also interested
in hearing how to change the configuration setup so that Tcl compiles out
of the box on more platforms.
Xerces C++ XML Parser 2.3.0 or higher
# http://xerces.apache.org/xerces-c/download.cgi
#trying from package manager
libxerces27
libxerces27-dev
#i do not see xerces 2.3.0, i will try 2.8.0
# http://www.alliedquotes.com/mirrors/apache/xerces/c/2/binaries/xerces-c_2_8_0-x86_64-linux-gcc_3_4.tar.gz
#chmod 777 xerces-c_2_8_0-x86_64-linux-gcc_3_4.tar.gz
#gzip -d xerces-c-src_2_8_0.tar.gz
#tar -xf xerces-c-src_2_8_0.tar
#cd xerces/
#cd xerces-c_2_8_0-x86_64-linux-gcc_3_4/
#You will need to add the
xerces-c_2_8_0-{arch}-{os}-{compiler}/bin directory to your
PATH environment variable:
#export PATH="$PATH:<full-path-to-xerces-c_2_8_0-{arch}-{os}-{compiler}>/bin"
export PATH="$PATH:/home/l/xerces/xerces-c_2_8_0-x86_64-linux-gcc_3_4/bin"
#If you wish to make this setting permanent, you need to change
your profile by changing your setup files which can be either
.profile or .kshrc.
#In addition, you will also need to set the library search path.
(LIBPATH on AIX, LD_LIBRARY_PATH
#In the following shell commands, the <xerces-path>
denotes the full path to the
xerces-c_2_8_0-{arch}-{os}-{compiler} directory. For
Bourne Shell, K Shell or Bash, type:
#export LD_LIBRARY_PATH=<xerces-path>/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/l/xerces/xerces-c_2_8_0-x86_64-linux-gcc_3_4/lib:$LD_LIBRARY_PATH
#cd src/xercesc
./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread
Documentation
Additional Libraries For Plugins and Tools
Plugin/Tool | | Library | |
ConsoleCommand | | pdcurses 2.6 or ncurses | |
HiveKeeper | | wxWidgets 2.3.4 or higher, with support for OpenGL | |
MPQC_SClib | | Massively Parallel Quantum Chemistry (MPQC) 2.2.2 or higher | |
NetCDF_DataSet and HiveKeeper | | Unidata NetCDF | |
OpenBabelImportExport | | Open Babel 1.100.2 Note: Open Babel version 2.0.0 won't work for this plugin - the API is different. | |
POVRayVideo | | GD Graphics Library (for the POVRayDataLayer tool) | |
RMI_Control | | Java JNI libraries | |
SocketsPIC_Control | | libcURL 7.14.0 or higher | |
Unit tests | | CppUnit 1.10.2 or higher |
Plugin | Package | Options | Notes |
---|---|---|---|
ConsoleCommand | basic | --disable-console-command | Requires a curses library to build. |
REBO_MBM | basic | --disable-rebo-mbm | Fails to build with certain compilers, for example, HP's cc/aCC. |
AIREBO | standard | --enable-airebo, --disable-airebo | Requires a Fortran compiler to build. |
MPQC_SClib | standard | --disable-mpqc-sclib, --enable-mpqc-sclib | Requires MPQC to build. |
NetCDF_DataSet | standard | --disable-netcdf-dataset, --enable-netcdf-dataset | Requires netCDF to build. |
OpenBabelImportExport | standard | --disable-openbabel, --enable-openbabel | Requires OpenBabel to build. |
SocketsPIC_Control | standard | --disable-sockets-pic-control, --enable-sockets-pic-control | Requires libcURL to build. |
_ESP_Image | optional | --enable-esp-image | For nanoENGINEER-1 support. Requires the GD graphics library to build. |
POVRayVideo | optional | --enable-povrayvideo | If the GD graphics library is found, the POVRayDataLayer tool will also be built. |
RMI_Control | optional | --enable-rmi-control | Requires Java to build. Also add the --with-jdk-prefix option to specify where Java is installed. |
Install any missing supporting libraries
Supporting Libraries Build and Installation Notes
Nano-Hive-Docs-1.2.0-Beta-1.zip
Nano-Hive-Docs-1.2.0-Beta-1.tar.gz
chmod 777 Nano-Hive-1.2.0-Beta-1.tar.gz
#Unzip/untar the NanoHive-1 package
#gunzip NanoHive-1-x.x.x.tar.gz
#tar xvf NanoHive-1-x.x.x.tar
Change to the NanoHive-1-x.x.x/src directory
The configure
script is used to set up the build and installation. You use it to
determine where NanoHive-1 will be installed and what plugins to
install. If you run configure with no options, it will set NanoHive-1 up to be installed under /usr/local/
and include only the plugins that don't require additional non-standard
libraries (BasicCellTraverser, BondCalculator, ConsoleCommand,
MeasurementSetToFile, nanoML_ImportExport, nanorexMMP_ImportExport,
NH_SimStateImportExport, RAMEntityManager, RC_Traverser, REBO_MBM, and
SocketsControl.) See the Plugin Reference for a description of all plugins
./configure --help
`configure' configures Nano-Hive 1.2.0-Beta-1 to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--datadir=DIR read-only architecture-independent data [PREFIX/share]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--infodir=DIR info documentation [PREFIX/info]
--mandir=DIR man documentation [PREFIX/man]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-standard-plugin-set
install the standard plugin set
--enable-airebo install the AIREBO plugin
--disable-console-command
don't install the ConsoleCommand plugin
--enable-cppunit-tests install the CppUnit test suites
--enable-esp-image install the _ESP_Image plugin for nanoENGINEER-1
support
--enable-mpqc-sclib install the MPQC_SClib plugin
--enable-netcdf-dataset install the NetCDF_DataSet plugin
--enable-openbabel install the OpenBabelImportExport plugin
--enable-povrayvideo install the POVRayVideo plugin
--disable-rebo-mbm don't install the REBO_MBM plugin
--enable-rmi-control install the RMI_Control plugin
--enable-sockets-pic-control
install the SocketsPIC_Control plugin
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-shared[=PKGS]
build shared libraries [default=yes]
--enable-static[=PKGS]
build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-docs-build create docs Makefiles
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-tags[=TAGS]
include additional configurations [automatic]
--with-log4cpp-prefix=PREFIX
find Log for C++ installed under PREFIX
--with-log4cpp-exec-prefix=EPREFIX
the exec prefix where Log for C++ binaries were
installed
--with-nspr-prefix=PREFIX
find NSPR installed under PREFIX
--with-nspr-exec-prefix=EPREFIX
the exec prefix where NSPR binaries were installed
--with-tcl-prefix=PREFIX
find TCL installed under PREFIX
--with-xerces-prefix=PREFIX
find Xerces-C installed under PREFIX
--with-zlib-prefix=PREFIX
find zlib installed under PREFIX
--with-cppunit-prefix=PREFIX
find CppUnit installed under PREFIX
--with-cppunit-exec-prefix=EPREFIX
the exec prefix where CppUnit binaries were
installed
--with-mpqc-prefix=PREFIX
find MPQC installed under PREFIX
--with-mpqc-exec-prefix=EPREFIX
the exec prefix where MPQC binaries were installed
--with-openbabel-prefix=PREFIX
find OpenBabel installed under PREFIX
--with-jdk-prefix=PREFIX
find the JDK installed under PREFIX
--with-jni-machine=MACHINE
tell JNI to use typedefs for MACHINE
--with-curl-prefix=PREFIX
find libcURL installed under PREFIX
--with-curl-exec-prefix=EPREFIX
the exec prefix where libcURL binaries were
installed
Some influential environment variables:
CXX C++ compiler command
CXXFLAGS C++ compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
headers in a nonstandard directory <include dir>
CC C compiler command
CFLAGS C compiler flags
CPP C preprocessor
F77 Fortran 77 compiler command
FFLAGS Fortran 77 compiler flags
CXXCPP C++ preprocessor
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <bugs@nano-hive.org>
#this bypasses most of the install
sudo ./configure --prefix=$HOME --enable-standard-plugin-set --disable-console-command --disable-mpqc-sclib --disable-openbabel --disable-sockets-pic-control
#get pdcurses 2.6
# http://sourceforge.net/projects/pdcurses/files/pdcurses/2.6/PDCurses-2.6.tar.gz/download
#xaw3dg widget set
#get ncurses 5.4
#http://ftp.gnu.org/pub/gnu/ncurses/
#http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.4.tar.gz
#./configure
#make
#su root
#make install
#installed ncurses 5.6
#http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
#ncurses 5.7
#sudo make install
#fortan 77 from package manager
#g77
#g773.4
checking for inflateEnd in -lz... yes
checking for working ncurses... no
*** ncurses is required to build the ConsoleCommand plugin, but it was not
*** found. Either install the latest ncurses
*** (http://www.gnu.org/software/ncurses/), or use the --disable-console-command
*** option.
checking for poll... yes
checking for location of X headers... configure: error: Cannot find required Xaw header file Box.h; XCurses cannot be configured
l@EV007:~/pdcurses2.6/PDCurses-2.6$
#sudo apt-get install ncurses-base ncurses-bin ncurses-term libncurses5 libncurses5-dev
./configure
#./configure --disable-console-command
./configure --enable-standard-plugin-set
make
su root
make install
from PIP_Thread.h:34,
from PIP_ThreadPool.h:34,
from PIP_ThreadPool.cpp:20:
./../include/NanoHiveUtil/CommandResult.h:40:17: warning: "/*" within comment
In file included from PIP_ThreadPool.h:38,
from PIP_ThreadPool.cpp:20:
./../include/NanoHiveUtil/CommandResult.h:40:17: warning: "/*" within comment
In file included from ./../include/NanoHiveUtil/Command.h:36,
from ./../include/NanoHiveInterface/NH_Commands.h:35,
from PIP_ThreadPool.h:39,
from PIP_ThreadPool.cpp:20:
./../include/NanoHiveUtil/CommandResult.h:40:17: warning: "/*" within comment
PIP_ThreadPool.cpp: In member function ‘nanohive::PIP_Thread* nanohive::PIP_ThreadPool::getThread(int, int)’:
PIP_ThreadPool.cpp:104: error: cast from ‘nanohive::PIP_Thread*’ to ‘int’ loses precision
PIP_ThreadPool.cpp: In member function ‘bool nanohive::PIP_ThreadPool::hasRunningThreads()’:
PIP_ThreadPool.cpp:120: warning: comparison between signed and unsigned integer expressions
./../include/NanoHiveUtil/Utility.h: At global scope:
./../include/NanoHiveUtil/Utility.h:117: warning: ‘nanohive::NSPRcodeToMeaning’ defined but not used
make[2]: *** [NanoHive-PIP_ThreadPool.o] Error 1
make[2]: Leaving directory `/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src'
make: *** [all] Error 2
make
from ./../include/NanoHiveInterface/NH_Commands.h:35,
from PIP_ThreadPool.h:39,
from PIP_ThreadPool.cpp:20:
./../include/NanoHiveUtil/CommandResult.h:40:17: warning: "/*" within comment
PIP_ThreadPool.cpp: In member function ‘nanohive::PIP_Thread* nanohive::PIP_ThreadPool::getThread(int, int)’:
PIP_ThreadPool.cpp:104: error: cast from ‘nanohive::PIP_Thread*’ to ‘int’ loses precision
PIP_ThreadPool.cpp: In member function ‘bool nanohive::PIP_ThreadPool::hasRunningThreads()’:
PIP_ThreadPool.cpp:120: warning: comparison between signed and unsigned integer expressions
./../include/NanoHiveUtil/Utility.h: At global scope:
./../include/NanoHiveUtil/Utility.h:117: warning: ‘nanohive::NSPRcodeToMeaning’ defined but not used
make[1]: *** [NanoHive-PIP_ThreadPool.o] Error 1
make[1]: Leaving directory `/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src'
make: *** [install-recursive] Error 1
./../include/NanoHiveUtil/CommandResult.h:40:17: warning: "/*" within comment
In file included from ./../include/NanoHiveUtil/Command.h:36,
from ./../include/NanoHiveInterface/NH_Commands.h:35,
from PIP_ThreadPool.h:39,
from PIP_ThreadPool.cpp:20:
./../include/NanoHiveUtil/CommandResult.h:40:17: warning: "/*" within comment
PIP_ThreadPool.cpp: In member function ‘nanohive::PIP_Thread* nanohive::PIP_ThreadPool::getThread(int, int)’:
PIP_ThreadPool.cpp:104: error: cast from ‘nanohive::PIP_Thread*’ to ‘int’ loses precision
PIP_ThreadPool.cpp: In member function ‘bool nanohive::PIP_ThreadPool::hasRunningThreads()’:
PIP_ThreadPool.cpp:120: warning: comparison between signed and unsigned integer expressions
./../include/NanoHiveUtil/Utility.h: At global scope:
./../include/NanoHiveUtil/Utility.h:117: warning: ‘nanohive::NSPRcodeToMeaning’ defined but not used
make[2]: *** [NanoHive-PIP_ThreadPool.o] Error 1
make[2]: Leaving directory `/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src'
make: *** [all] Error 2
#checking for xsltproc... /usr/bin/xsltproc
checking for doxygen... no
checking for log4cpp-config... no
*** Log for C++ version 0.3.0 or later is required, but it was not found.
*** Either install the latest Log for C++ (http://log4cpp.hora-obscura.de/), or
*** adjust your PATH environment variable or use the --with-log4cpp-prefix or
*** --with-log4cpp-exec-prefix options so that the log4cpp-config script for
*** your installation can be found
make
su
make install
If you don't want to install as root, or can't, use the --prefix option to install in your home directory:
To install the most typically used, standard plugin set (basic plugins plus AIREBO, MPQC_SClib, NetCDF_DataSet, OpenBabelImportExport, and SocketsPIC_Control), use this configure option:
The following table shows the list of options for each plugin and
component allowing you fine control over what gets built and installed.
For example, a popular configuration is the standard plugin set, minus
the MPQC_SClib plugin, plus the POVRayVideo plugin:
./configure --enable-standard-plugin-set --disable-mpqc-sclib --enable-povrayvideo
#This seems to have gotten me to the next error
./configure --prefix=$HOME --enable-standard-plugin-set --disable-console-command
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking for xsltproc... /usr/bin/xsltproc
checking for doxygen... no
checking for log4cpp-config... /usr/bin/log4cpp-config
checking for Log for C++ version >= 0.3.0... yes
checking for nspr-config... /usr/bin/nspr-config
checking for NSPR version >= 4.4.1... yes
checking for tclConfig.sh in /root/lib... no
checking for tclConfig.sh in /usr/local/lib... no
checking for tclConfig.sh in /usr/lib... yes
checking for TCL version >= 8... yes
checking for Xerces-C... yes
checking for zlib.h in /root/include... no
checking for zlib.h in /usr/local/include... no
checking for zlib.h in /usr/include... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for inflateEnd in -lz... yes
checking how to get verbose linking output from g77... -v
checking for Fortran libraries of g77... -L/usr/lib/gcc/x86_64-linux-gnu/3.4.6 -L/usr/lib/gcc/x86_64-linux-gnu/3.4.6/../../../../lib -L/usr/lib/gcc/x86_64-linux-gnu/3.4.6/../../.. -L/lib/../lib -L/usr/lib/../lib -lfrtbegin -lg2c -lm -lgcc_s
checking for sc-config... no
*** MPQC version 2.2.2 or later is required to build the MPQC_SClib
*** plugin, but it was not found. Either install the latest MPQC
*** (http://www.mpqc.org/), adjust your PATH environment variable or use the
*** --with-mpqc-prefix or --with-mpqc-exec-prefix options so that the
*** sc-config script for your installation can be found, or specify the
*** --disable-mpqc-sclib option.
#from package manager install mpqc
#mpqc
#mpqc-support
./configure --prefix=$HOME --enable-standard-plugin-set --disable-console-command --disable-mpqc-sclib
#that gets me to this error
#checking for free_NC_attr in -lnetcdf... no
*** NetCDF version 3.5.0 or later is required to build the NetCDF_DataSet
*** plugin, but it was not found. Either install the latest netCDF
*** (http://www.unidata.ucar.edu/software/netcdf/), or don't specify the
*** --enable-netcdf-dataset option
#from package manager install python-netcdf
#python-netcdf
#libnetcdf4
#libnet-dev
*** OpenBabel version 1.100.2 or later is required to build the
*** OpenBabelImportExport plugin, but neither the openbabel/babelconfig.h file
*** nor the openbabel/version.h file could be found. Either install OpenBabel
*** version 1.100.2 (not 2.0) (http://openbabel.sourceforge.net/), use the
*** --with-openbabel-prefix option, or specify the --disable-openbabel
*** option
#openbabel
#libopenbabel2
#libopenbabel-dev
*** It appears that you have OpenBabel 2.0 installed, unfortunately the
*** OpenBabelImportExport plugin currently only supports OpenBabel 1.x, either
*** install OpenBabel 1.100.2
*** (http://sourceforge.net/project/showfiles.php?group_id=40728), use the
*** --with-openbabel-prefix option to specify where your 1.100.2 installation
*** is, or don't specify the --enable-openbabel option
./configure --prefix=$HOME --enable-standard-plugin-set --disable-console-command --disable-mpqc-sclib --disable-openbabel
checking for free_NC_attr in -lnetcdf... yes
checking for curl-config... no
*** libcURL version 070e00 or later is required to build the
*** SocketsPIC_Control plugin, but it was not found. Either install the latest
*** libcURL (http://curl.haxx.se/libcurl/), or adjust your PATH environment
*** variable or use the --with-curl-prefix or --with-curl-exec-prefix options so
*** that the curl-config script for your installation can be found,
*** or use the --disable-sockets-pic-control option
./configure --prefix=$HOME --enable-standard-plugin-set --disable-console-command --disable-mpqc-sclib --disable-openbabel --disable-sockets-pic-control
su root
make
make install
./../include/NanoHiveUtil/CommandResult.h:40:17: warning: "/*" within comment
PIP_ThreadPool.cpp: In member function ‘nanohive::PIP_Thread* nanohive::PIP_ThreadPool::getThread(int, int)’:
PIP_ThreadPool.cpp:104: error: cast from ‘nanohive::PIP_Thread*’ to ‘int’ loses precision
PIP_ThreadPool.cpp: In member function ‘bool nanohive::PIP_ThreadPool::hasRunningThreads()’:
PIP_ThreadPool.cpp:120: warning: comparison between signed and unsigned integer expressions
./../include/NanoHiveUtil/Utility.h: At global scope:
./../include/NanoHiveUtil/Utility.h:117: warning: ‘nanohive::NSPRcodeToMeaning’ defined but not used
make[2]: *** [NanoHive-PIP_ThreadPool.o] Error 1
make[2]: Leaving directory `/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src'
make: *** [all] Error 2
/proc/19736/cwd/NanoHiveUtil/Util.cpp
/**
* Returns a human-readable string for the given NSPR code.
*/
std::string Utility::GetNSPR_MeaningForCode(PRErrorCode errorCode) {
std::string meaning;
if ((errorCode < (-6000L)) || (errorCode > (-5926L)))
meaning =
std::string("Unknown error code (").append(itos(errorCode))
.append(")");
else
meaning = std::string(NSPRcodeToMeaning[errorCode + 6000]);
return meaning;
}
/home/l/nh1/Nano-Hive-1.2.0-Beta-1/include/NanoHiveUtil/Util.h:117
// Note: need to add 6000 to the returned NSPR code to get the index used here.
static const char* NSPRcodeToMeaning[75] = {
"PR_OUT_OF_MEMORY_ERROR - Insufficient memory to perform request.",
Here's how to build and install the basic configuration:
Install the example simulations with the following command:
This will create a NanoHive-1 folder in the directory where the script is run, then copy the examples directory into it, updating example configuration paths on the fly.
PREFIX/share/NanoHive-1/scripts/install-examples
The first time you run NanoHive-1, it creates a .NanoHive-1 directory under your home directory where it puts a conf/configs.txt file and log directory.
That's it. Now go back to the ReadMe for its Where To Start section.
Libraries have been installed in:
/root/lib/Nano-Hive
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
libtool: install: warning: remember to run `libtool --finish /usr/local/lib/Nano-Hive'
libtool --finish /usr/local/lib/Nano-Hive
The program 'libtool' is currently not installed. You can install it by typing:
sudo apt-get install libtool
bash: libtool: command not found
# y for yes
#calling NH-1 from NE-1
Last PropMgr <PyQt4.QtGui.QWidget object at 0x214c050> doesn't have method update_props_if_needed_before_closing. That's OK (for now, only implemented for Plane PM). Ignoring Exception: <type 'exceptions.AttributeError'>: update_props_if_needed_before_closing
[Ui_PartWindow.py:343]
bug: ignoring exceptions when using getEquilibriumDistanceForBond, like this one: <type 'exceptions.ImportError'>: No module named sim
[bond_constants.py:358] [PyrexSimulator.py:77] [PyrexSimulator.py:23]
error trying to import dylib sim: <type 'exceptions.ImportError'>: No module named sim
[runSim.py:783]
no _simopts
exception opening trace file '/home/l/Nanorex/Untitled.2010-01-08-19-26-47-trace.txt': <type 'exceptions.IOError'>: [Errno 2] No such file or directory: '/home/l/Nanorex/Untitled.2010-01-08-19-26-47-trace.txt'
[runSim.py:1929]
/home/l/ne1/cad/src/simulation/runSim.py:1929
def print_sim_warnings(self): #bruce 050407; revised 060109, used whether or not we're not printing warnings continuously
"""
Print warnings and errors from tracefile (if this was not already done);
then print summary/finishing info related to tracefile.
Note: this might change self.said_we_are_done to False or True, or leave it alone.
"""
# Note: this method is sometimes called after errors, and that is usually a bug but might sometimes be good;
# caller needs cleanup about this.
# Meanwhile, possible bug -- not sure revisions of 060109 (or prior state) is fully safe when called after errors.
if not self.tracefileProcessor:
# we weren't printing tracefile warnings continuously -- print them now
try:
simopts = self._simopts
except:
# I don't know if this can happen, no time to find out, not safe for A8 to assume it can't [bruce 060705]
print "no _simopts"
simopts = None
self.tracefileProcessor = TracefileProcessor(self, simopts = simopts)
# this might change self.said_we_are_done and/or use self.traceFileName, now and/or later
try:
tfile = self.traceFileName
except AttributeError:
return # sim never ran (not always an error, I suspect)
if not tfile:
return # no trace file was generated using a name we provide
# (maybe the sim wrote one using a name it made up... nevermind that here)
try:
#1929
ff = open(tfile, "rU") # "U" probably not needed, but harmless
except:
#bruce 051230 fix probably-unreported bug when sim program is missing
# (tho ideally we'd never get into this method in that case)
print_compact_traceback("exception opening trace file %r: " % tfile)
env.history.message( redmsg( "Error: simulator trace file not found at [%s]." % tfile ))
self.tracefileProcessor.mentioned_sim_trace_file = True #k not sure if this is needed or has any effect
return
lines = ff.readlines()
## remove this in case those non-comment lines matter for the summary (unlikely, so add it back if too slow) [bruce 060112]
## lines = filter( lambda line: line.startswith("#"), lines )
## # not just an optimization, since TracefileProcessor tracks non-# lines for status info
ff.close()
for line in lines:
self.tracefileProcessor.step(line)
# print summary/done
self.tracefileProcessor.finish()
return
/sbin/ldconfig
/sbin/ldconfig.real: Can't create temporary cache file /etc/ld.so.cache~: Permission denied
sudo /sbin/ldconfig
#/home/l/include/NanoHiveUtil/CommandResult.h
# Comment out this line
# * \c data/local/*_resultCodes.txt file to decode the result codes
make[2]: *** [libNanoHiveInterface_la-DataModel.lo] Error 1
make[2]: Leaving directory `/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src/NanoHiveInterface'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src'
make: *** [all] Error 2
#/home/l/nh1/Nano-Hive-1.2.0-Beta-1/src/NanoHiveInterface/libNanoHiveInterface_la-DataModel.loT
# libNanoHiveInterface_la-DataModel.lo - a libtool object file
# Generated by ltmain.sh - GNU libtool 1.5.6 (1.1220.2.95 2004/04/11 05:50:42)
#
# Please DO NOT delete this file!
# It is necessary for linking the library.
# Name of the PIC object
Atom::Atom(const Atom& orig) {
id = orig.id;
pathType = orig.pathType;
elementType = new char[strlen(orig.elementType) + 1];
strcpy(elementType, orig.elementType);
for (int i = 0; i < 3; i++) {
position[i] = orig.position[i];
velocity[i] = orig.velocity[i];
acceleration[i] = orig.acceleration[i];
dAcceleration1[i] = orig.dAcceleration1[i];
dAcceleration2[i] = orig.dAcceleration2[i];
}
}
l@EV007:~/nh1/Nano-Hive-1.2.0-Beta-1/src$ sudo ./configure --enable-standard-plugin-set --disable-console-command --disable-mpqc-sclib --disable-openbabel --disable-sockets-pic-control --disable-parallel --enable-shared