Re: [Meep-discuss] Problem with meep configure script
On Thu, 26 Jul 2007, Yeo Eng Hee wrote: I understand the need to put in the header and library using the CPPFLAGS and LDFLAGS parameter, but if all dependencies need a little something in these parameters, then the setting of these CPPFLAGS and LDFLAGS become complicated. Only if you install every package in a separate directory. Generally you will install all of your dependencies either via * prebuilt packages for your OS (e.g. .rpm files for Fedora), which install into standard directories like /usr where the compiler looks automatically, OR * for dependencies you compile yourself, you generally want to install *all* of the self-compiled packages into a single directory, e.g. $HOME/install. In this case you only need to put a single directory in CPPFLAGS and a single directory in LDFLAGS. Of course, if you install every package in its own directory, scattered all over your hard disk, then you will need to specify all of these directories separately and the configure command will get quite long. You reap what you sow. I expect that the configure script should be able to handle this. Since the directory hierachy of libctl is quite fixed, why not let the configure script figure out everything by just specifying the top directory of libctl? First, because the directory hierarchy of libctl is not fixed. It is perfectly possible to specify completely independent places to install the library, header, and other data files (using --libdir, --includedir, etc. in configure). Perhaps you mean the *source* directory of libctl is not fixed, but you should not be linking to libctl in its *source* directory. You should always run 'make install' to install it somewhere and link to that. This is true for essentially every Unix program. Second, because LDFLAGS and CPPFLAGS are the standard for specifying where to find library and header files. They are used for every other package, and libctl should be no different. Anyway, I managed to build by installing libctl in the standard /usr/local/lib directory. However, this is less than ideal in my case, as I have more than 60 compute nodes, and I have to install on each one (normally, I would just install on a shared directory via NFS). First of all, it is perfectly possible to share your /usr/local directory via NFS. (This is what we do on our compute cluster.) Note that sharing /usr/local does not require you to share /usr. In fact, if you read the Linux Filesystem Hierarchy Standard, this is precisely what /usr/local is intended for: http://www.pathname.com/fhs/pub/fhs-2.3.html#USRLOCALLOCALHIERARCHY Second, there is no reason why you can't install libctl (along with any other dependencies) into a shared directory and tell the configure script where to find it with CPPFLAGS and LDFLAGS. Regards, Steven G. Johnson ___ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss
Re: [Meep-discuss] Problem with meep configure script
I did that, but the outputs just says that the libctl is not found. That's why I came to the newsgroup. Regards, Eng Hee. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Zheng LI Sent: Friday, 27 July, 2007 5:39 PM To: meep-discuss@ab-initio.mit.edu Subject: Re: [Meep-discuss] Problem with meep configure script Hi, Yeo Eng Hee I don't know the details you want to handle. However, a batch script which calls ./configure itself and analyze the output may help you to deal with your problem. Best wishes Zheng LI 在 2007-07-26四的 10:19 +0800,Yeo Eng Hee写道: On Mon, 23 Jul 2007, Ulrich Dobramysl wrote: I am having difficulty using the configure script to build meep. I have built and installed all the dependent packages, and at the final step of putting it all together in meep, but hte configure script cannot seem to find the libctl location, even though I used the --with-libctl=dir flag. The output of the configure script is below. I would be grateful if anyone can help tell me where I went wrong. Thanks in advance. It seems you do not have the libctl.a in /usr/lib or some other standard library path. With the config option --with-libctl you specify the location of the scheme files used by libctl whereas you need to have the library in a known lib path. Try to specify LIBDIR=${LIBDIR}:/directory/containing/libctl.a/ on your configure commandline. This is not quite right. You also need to tell it where to find the header files, and LIBDIR is not the documented way to tell it about library directories in any case. In general, suppose you have installed stuff in /my/dir, i.e. you have libraries in /my/dir/lib and header files in /my/dir/include, etcetera. (Here, I'm assuming you actually ran 'make install' like you are supposed to.) Then, you always tell the configure scrip where to find libraries by: ./configure CPPFLAGS=-I/my/dir/include LDFLAGS=-I/my/dir/lib This is not specific to MPB; it is true for *all* software that uses configure scripts and depends on libraries you installed in nonstandard locations. However, libctl needs some additional information, because it has some additional files that it installs in /my/dir/share/libctl ...you tell it where to find these with --with-libctl-dir=/my/dir/share/libctl Steven === Hi all, I understand the need to put in the header and library using the CPPFLAGS and LDFLAGS parameter, but if all dependencies need a little something in these parameters, then the setting of these CPPFLAGS and LDFLAGS become complicated. I expect that the configure script should be able to handle this. Since the directory hierachy of libctl is quite fixed, why not let the configure script figure out everything by just specifying the top directory of libctl? Anyway, I managed to build by installing libctl in the standard /usr/local/lib directory. However, this is less than ideal in my case, as I have more than 60 compute nodes, and I have to install on each one (normally, I would just install on a shared directory via NFS). Eng Hee. ___ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss ___ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss ___ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss
Re: [Meep-discuss] Problem with meep configure script
Hi, Yeo Eng Hee I don't know the details you want to handle. However, a batch script which calls ./configure itself and analyze the output may help you to deal with your problem. Best wishes Zheng LI 在 2007-07-26四的 10:19 +0800,Yeo Eng Hee写道: On Mon, 23 Jul 2007, Ulrich Dobramysl wrote: I am having difficulty using the configure script to build meep. I have built and installed all the dependent packages, and at the final step of putting it all together in meep, but hte configure script cannot seem to find the libctl location, even though I used the --with-libctl=dir flag. The output of the configure script is below. I would be grateful if anyone can help tell me where I went wrong. Thanks in advance. It seems you do not have the libctl.a in /usr/lib or some other standard library path. With the config option --with-libctl you specify the location of the scheme files used by libctl whereas you need to have the library in a known lib path. Try to specify LIBDIR=${LIBDIR}:/directory/containing/libctl.a/ on your configure commandline. This is not quite right. You also need to tell it where to find the header files, and LIBDIR is not the documented way to tell it about library directories in any case. In general, suppose you have installed stuff in /my/dir, i.e. you have libraries in /my/dir/lib and header files in /my/dir/include, etcetera. (Here, I'm assuming you actually ran 'make install' like you are supposed to.) Then, you always tell the configure scrip where to find libraries by: ./configure CPPFLAGS=-I/my/dir/include LDFLAGS=-I/my/dir/lib This is not specific to MPB; it is true for *all* software that uses configure scripts and depends on libraries you installed in nonstandard locations. However, libctl needs some additional information, because it has some additional files that it installs in /my/dir/share/libctl ...you tell it where to find these with --with-libctl-dir=/my/dir/share/libctl Steven === Hi all, I understand the need to put in the header and library using the CPPFLAGS and LDFLAGS parameter, but if all dependencies need a little something in these parameters, then the setting of these CPPFLAGS and LDFLAGS become complicated. I expect that the configure script should be able to handle this. Since the directory hierachy of libctl is quite fixed, why not let the configure script figure out everything by just specifying the top directory of libctl? Anyway, I managed to build by installing libctl in the standard /usr/local/lib directory. However, this is less than ideal in my case, as I have more than 60 compute nodes, and I have to install on each one (normally, I would just install on a shared directory via NFS). Eng Hee. ___ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss ___ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss
Re: [Meep-discuss] Problem with meep configure script
On Mon, 23 Jul 2007, Ulrich Dobramysl wrote: I am having difficulty using the configure script to build meep. I have built and installed all the dependent packages, and at the final step of putting it all together in meep, but hte configure script cannot seem to find the libctl location, even though I used the --with-libctl=dir flag. The output of the configure script is below. I would be grateful if anyone can help tell me where I went wrong. Thanks in advance. It seems you do not have the libctl.a in /usr/lib or some other standard library path. With the config option --with-libctl you specify the location of the scheme files used by libctl whereas you need to have the library in a known lib path. Try to specify LIBDIR=${LIBDIR}:/directory/containing/libctl.a/ on your configure commandline. This is not quite right. You also need to tell it where to find the header files, and LIBDIR is not the documented way to tell it about library directories in any case. In general, suppose you have installed stuff in /my/dir, i.e. you have libraries in /my/dir/lib and header files in /my/dir/include, etcetera. (Here, I'm assuming you actually ran 'make install' like you are supposed to.) Then, you always tell the configure scrip where to find libraries by: ./configure CPPFLAGS=-I/my/dir/include LDFLAGS=-I/my/dir/lib This is not specific to MPB; it is true for *all* software that uses configure scripts and depends on libraries you installed in nonstandard locations. However, libctl needs some additional information, because it has some additional files that it installs in /my/dir/share/libctl ...you tell it where to find these with --with-libctl-dir=/my/dir/share/libctl Steven === Hi all, I understand the need to put in the header and library using the CPPFLAGS and LDFLAGS parameter, but if all dependencies need a little something in these parameters, then the setting of these CPPFLAGS and LDFLAGS become complicated. I expect that the configure script should be able to handle this. Since the directory hierachy of libctl is quite fixed, why not let the configure script figure out everything by just specifying the top directory of libctl? Anyway, I managed to build by installing libctl in the standard /usr/local/lib directory. However, this is less than ideal in my case, as I have more than 60 compute nodes, and I have to install on each one (normally, I would just install on a shared directory via NFS). Eng Hee. ___ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss
Re: [Meep-discuss] Problem with meep configure script
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Yeo Eng Hee schrieb: Hi, I am having difficulty using the configure script to build meep. I have built and installed all the dependent packages, and at the final step of putting it all together in meep, but hte configure script cannot seem to find the libctl location, even though I used the --with-libctl=dir flag. The output of the configure script is below. I would be grateful if anyone can help tell me where I went wrong. Thanks in advance. Hi, It seems you do not have the libctl.a in /usr/lib or some other standard library path. With the config option --with-libctl you specify the location of the scheme files used by libctl whereas you need to have the library in a known lib path. Try to specify LIBDIR=${LIBDIR}:/directory/containing/libctl.a/ on your configure commandline. Uli -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.4 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGpFdgvlTvENIKkvMRAkNkAJ9dl06yH49PoSbKAZDORrje+AOk6QCeOr8+ SeuYJr4lr1Iv2w/y665ZFEY= =cU24 -END PGP SIGNATURE- ___ meep-discuss mailing list meep-discuss@ab-initio.mit.edu http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss