From: David S. <ds...@sc...> - 2003-12-05 21:36:41
|
A humble patch for configure.ac. This allows you to override prefix at make install time, which is useful for packaging. dave... Index: configure.ac =================================================================== RCS file: /cvsroot/plplot/plplot/configure.ac,v retrieving revision 1.115 diff -u -r1.115 configure.ac --- configure.ac 29 Oct 2003 13:38:58 -0000 1.115 +++ configure.ac 5 Dec 2003 21:32:29 -0000 @@ -977,7 +977,7 @@ ### Documentation directory -DOCDIR=${datadir}/doc/plplot +DOCDIR="\$(datadir)/doc/plplot" AC_SUBST(DOCDIR) ### DocBook documentation |
From: Alan W. I. <ai...@us...> - 2003-12-05 23:07:38
|
On 2003-12-05 13:36-0800 David Schleef wrote: > > A humble patch for configure.ac. This allows you to override > prefix at make install time, which is useful for packaging. I don't think this will be needed since we are using automake which supports DESTDIR (documented in info automake). To see how this is used in practice, look at rpm/plplot_redhat7.3.spec where you will see the statement make DESTDIR=$RPM_BUILD_ROOT install which puts an additional prefix of $RPM_BUILD_ROOT before the usual prefix so that rpm can install in a staging area rather than the actual install area to help build the rpm. I understand that the debs are built using DESTDIR as well. If you have install hooks then you have to put in additional support for DESTDIR (see, for example, examples/c/Makefile.am), but generally the DESTDIR mechanism just works transparently as a result of our using automake. For example, if you look at the generated drivers/Makefile, you will see the line docdir = $(DOCDIR) and afterward wherever docdir is used, it is automatically prefixed by $(DESTDIR) by automake. Alan __________________________ Alan W. Irwin email: ir...@be... phone: 250-727-2902 Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the PLplot scientific plotting software package (plplot.org), the Yorick front-end to PLplot (yplot.sf.net), the Loads of Linux Links project (loll.sf.net), and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Rafael L. <rla...@us...> - 2003-12-06 16:19:02
|
* Alan W. Irwin <ai...@us...> [2003-12-05 15:07]: > On 2003-12-05 13:36-0800 David Schleef wrote: > > > > > A humble patch for configure.ac. This allows you to override > > prefix at make install time, which is useful for packaging. > > I don't think this will be needed since we are using automake which > supports DESTDIR (documented in info automake). > > [...] I agree with Alan here. David, have you found a situation where your patch is really needed? -- Rafael |
From: David S. <ds...@sc...> - 2003-12-06 23:01:36
|
On Sat, Dec 06, 2003 at 05:14:36PM +0100, Rafael Laboissiere wrote: > * Alan W. Irwin <ai...@us...> [2003-12-05 15:07]: > > > On 2003-12-05 13:36-0800 David Schleef wrote: > > > > > > > > A humble patch for configure.ac. This allows you to override > > > prefix at make install time, which is useful for packaging. > > > > I don't think this will be needed since we are using automake which > > supports DESTDIR (documented in info automake). > > > > [...] > > I agree with Alan here. David, have you found a situation where your patch > is really needed? It's pretty standard to use 'make install prefix=/some/temporary/path/usr', and this is the only change necessary to support that. dave... |
From: Rafael L. <lab...@ps...> - 2003-12-07 10:57:18
|
* David Schleef <ds...@sc...> [2003-12-06 15:01]: > It's pretty standard to use 'make install > prefix=/some/temporary/path/usr', and this is the only change > necessary to support that. Isn't 'make install DESTDIR=/some/temporary/path' better? My understanding is that prefix should rather be specified by the --prefix option to configure. -- Rafael |
From: David S. <ds...@sc...> - 2003-12-07 19:57:08
|
On Sun, Dec 07, 2003 at 11:53:23AM +0100, Rafael Laboissiere wrote: > * David Schleef <ds...@sc...> [2003-12-06 15:01]: > > > It's pretty standard to use 'make install > > prefix=/some/temporary/path/usr', and this is the only change > > necessary to support that. > > Isn't 'make install DESTDIR=/some/temporary/path' better? My understanding > is that prefix should rather be specified by the --prefix option to > configure. Both are used. dave... |
From: Rafael L. <lab...@ps...> - 2003-12-07 23:16:00
|
* David Schleef <ds...@sc...> [2003-12-07 11:57]: > On Sun, Dec 07, 2003 at 11:53:23AM +0100, Rafael Laboissiere wrote: > > * David Schleef <ds...@sc...> [2003-12-06 15:01]: > > > > > It's pretty standard to use 'make install > > > prefix=/some/temporary/path/usr', and this is the only change > > > necessary to support that. > > > > Isn't 'make install DESTDIR=/some/temporary/path' better? My understanding > > is that prefix should rather be specified by the --prefix option to > > configure. > > Both are used. I analyzed your proposal further. I noticed that when issuing: make install prefix=/some/temporary/path/usr The DOCDIR variable in the Makefiles *_does_* get the "/some/temporary/path/usr" prefix, what makes your proposal moot. Besides, after configuring with --prefix=/usr, I see here: $ fgrep "DIR ="Makefile | grep -v "\(INCLUDE\|LIB\)DIR"| grep /usr BIN_DIR = /usr/bin INCLUDE_DIR = /usr/include/plplot LIB_DIR = /usr/lib OCTAVE_M_DIR = /usr/share/octave/site/m OCTAVE_OCT_DIR = /usr/lib/octave/site/oct/i386-pc-linux-gnu PLPLOT_OCTAVE_DIR = /usr/share/plplot_octave PYTHON_INC_DIR = /usr/include/python2.3 PYTHON_INSTDIR = /usr/lib/python2.3/site-packages PYTHON_NUM_DIR = /usr/include/python2.3/Numeric TCL_DIR = /usr/lib/plplot5.2.1/tcl This means that setting the prefix variable when calling make is totally useless for the installation directories above. Using DESTDIR does work, though. The question is: should we extend your proposal to the variables above or should we let things as they are? -- Rafael |
From: David S. <ds...@sc...> - 2003-12-08 21:04:21
|
On Mon, Dec 08, 2003 at 12:11:50AM +0100, Rafael Laboissiere wrote: > I analyzed your proposal further. I noticed that when issuing: > > make install prefix=/some/temporary/path/usr > > The DOCDIR variable in the Makefiles *_does_* get the > "/some/temporary/path/usr" prefix, what makes your proposal moot. > > Besides, after configuring with --prefix=/usr, I see here: > > $ fgrep "DIR ="Makefile | grep -v "\(INCLUDE\|LIB\)DIR"| grep /usr > BIN_DIR = /usr/bin > INCLUDE_DIR = /usr/include/plplot > LIB_DIR = /usr/lib > OCTAVE_M_DIR = /usr/share/octave/site/m > OCTAVE_OCT_DIR = /usr/lib/octave/site/oct/i386-pc-linux-gnu > PLPLOT_OCTAVE_DIR = /usr/share/plplot_octave > PYTHON_INC_DIR = /usr/include/python2.3 > PYTHON_INSTDIR = /usr/lib/python2.3/site-packages > PYTHON_NUM_DIR = /usr/include/python2.3/Numeric > TCL_DIR = /usr/lib/plplot5.2.1/tcl This is in comparison to the standard autoconf install directories, which are defined as: bindir = ${exec_prefix}/bin sbindir = ${exec_prefix}/sbin libexecdir = ${exec_prefix}/libexec datadir = ${prefix}/share sysconfdir = ${prefix}/etc etc. Actually, I've also noticed you have docdir defined in configure.ac, but it's overridden (to the same thing except in the prefix= case) in, say, drivers/Makefile.am. I assume that these are just overlooked cases from the automake conversion. > This means that setting the prefix variable when calling make is totally > useless for the installation directories above. Using DESTDIR does work, > though. > > The question is: should we extend your proposal to the variables above or > should we let things as they are? Some of those are not used (BIN_DIR, INCLUDE_DIR) and are obvious duplicates of standard variables. The others I just didn't notice because I wasn't compiling with either python or tcl. And yes, they should be fixed. dave... |
From: Alan W. I. <ai...@us...> - 2003-12-08 23:53:28
|
On 2003-12-08 13:04-0800 David Schleef wrote: > On Mon, Dec 08, 2003 at 12:11:50AM +0100, Rafael Laboissiere wrote: > > I analyzed your proposal further. I noticed that when issuing: > > > > make install prefix=/some/temporary/path/usr > > > > The DOCDIR variable in the Makefiles *_does_* get the > > "/some/temporary/path/usr" prefix, what makes your proposal moot. > > > > Besides, after configuring with --prefix=/usr, I see here: > > > > $ fgrep "DIR ="Makefile | grep -v "\(INCLUDE\|LIB\)DIR"| grep /usr > > BIN_DIR = /usr/bin > > INCLUDE_DIR = /usr/include/plplot > > LIB_DIR = /usr/lib > > OCTAVE_M_DIR = /usr/share/octave/site/m > > OCTAVE_OCT_DIR = /usr/lib/octave/site/oct/i386-pc-linux-gnu > > PLPLOT_OCTAVE_DIR = /usr/share/plplot_octave > > PYTHON_INC_DIR = /usr/include/python2.3 > > PYTHON_INSTDIR = /usr/lib/python2.3/site-packages > > PYTHON_NUM_DIR = /usr/include/python2.3/Numeric > > TCL_DIR = /usr/lib/plplot5.2.1/tcl > > This is in comparison to the standard autoconf install directories, > which are defined as: > > bindir = ${exec_prefix}/bin > sbindir = ${exec_prefix}/sbin > libexecdir = ${exec_prefix}/libexec > datadir = ${prefix}/share > sysconfdir = ${prefix}/etc > > etc. Actually, I've also noticed you have docdir defined in > configure.ac, but it's overridden (to the same thing except in the > prefix= case) in, say, drivers/Makefile.am. I assume that these > are just overlooked cases from the automake conversion. > > > This means that setting the prefix variable when calling make is totally > > useless for the installation directories above. Using DESTDIR does work, > > though. > > > > The question is: should we extend your proposal to the variables above or > > should we let things as they are? > > Some of those are not used (BIN_DIR, INCLUDE_DIR) and are obvious > duplicates of standard variables. The others I just didn't notice > because I wasn't compiling with either python or tcl. And yes, they > should be fixed. Not in all cases. For example, look at the commentary where PYTHON_INSTDIR is defined in configure.ac. ### PYTHON_INSTDIR is the same as $pythondir except that the ### symbolic prefix is replaced by the actual prefix. ### The actual prefix is required in examples/python/plplot_python_start.py ### (the only place that PYTHON_INSTDIR is used). The point is that this is not used in a Makefile.in so having PYTHON_INSTDIR explicitly depend on the ${prefix} symbol as in datadir above won't work. I believe some of the other "DIR" symbols referenced above may be used in files other than Makefiles so we'll have to be careful of what we change, and what we don't change if we do decide to support overriding the prefix variable during make invocations. Also, if this is to provide the same functionality as DESTDIR (i.e., using an install staging area for package generation) that is one thing, but if prefix override at make time is actually to be used to indicate the final install area, then we'll need to use something like sed at make invocation time to get PYTHON_INSTDIR to point to the final install area. I would prefer not to have those kind of complications. David, even if you solve that issue (or claim overriding the prefix is only for staged installs, a job that DESTDIR already does well), I still need to be convinced on the necessity of supporting this. Can you find some references in info autoconf, info automake, or info libtool or some other reference that would reassure us that prefix overriding at make time is good modern practice, and therefore worth supporting? Alan __________________________ Alan W. Irwin email: ir...@be... phone: 250-727-2902 Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the PLplot scientific plotting software package (plplot.org), the Yorick front-end to PLplot (yplot.sf.net), the Loads of Linux Links project (loll.sf.net), and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: David S. <ds...@sc...> - 2003-12-11 20:22:02
|
On Mon, Dec 08, 2003 at 03:53:21PM -0800, Alan W. Irwin wrote: > David, even if you solve that issue (or claim overriding the prefix is only > for staged installs, a job that DESTDIR already does well), I still need to > be convinced on the necessity of supporting this. Can you find some > references in info autoconf, info automake, or info libtool or some other > reference that would reassure us that prefix overriding at make time is good > modern practice, and therefore worth supporting? It's what RPM uses by default: $ rpm --eval "%makeinstall" make \ prefix=/usr \ exec_prefix=/usr \ bindir=/usr/bin \ sbindir=/usr/sbin \ sysconfdir=/usr/etc \ datadir=/usr/share \ includedir=/usr/include \ libdir=/usr/lib \ libexecdir=/usr/libexec \ localstatedir=/usr/var \ sharedstatedir=/usr/com \ mandir=/usr/share/man \ infodir=/usr/info \ install _Autobook_, in the section "Installing and Uninstalling", says: Note that `DESTDIR' operates as a prefix only. Sometimes this isn't enough. In this situation you can explicitly override each directory variable: ./configure --prefix=/usr/local make make prefix=/w/usr/local datadir=/w/usr/share install dave... |
From: Alan W. I. <ai...@us...> - 2003-12-11 22:55:05
|
On 2003-12-11 12:22-0800 David Schleef wrote: > On Mon, Dec 08, 2003 at 03:53:21PM -0800, Alan W. Irwin wrote: > > David, even if you solve that issue (or claim overriding the prefix is only > > for staged installs, a job that DESTDIR already does well), I still need to > > be convinced on the necessity of supporting this. Can you find some > > references in info autoconf, info automake, or info libtool or some other > > reference that would reassure us that prefix overriding at make time is good > > modern practice, and therefore worth supporting? > > It's what RPM uses by default: > > $ rpm --eval "%makeinstall" > > make \ > prefix=/usr \ > exec_prefix=/usr \ > bindir=/usr/bin \ > sbindir=/usr/sbin \ > sysconfdir=/usr/etc \ > datadir=/usr/share \ > includedir=/usr/include \ > libdir=/usr/lib \ > libexecdir=/usr/libexec \ > localstatedir=/usr/var \ > sharedstatedir=/usr/com \ > mandir=/usr/share/man \ > infodir=/usr/info \ > install > > _Autobook_, in the section "Installing and Uninstalling", says: > > Note that `DESTDIR' operates as a prefix only. Sometimes this isn't > enough. In this situation you can explicitly override each directory > variable: > > ./configure --prefix=/usr/local > make > make prefix=/w/usr/local datadir=/w/usr/share install > Thanks, David. That is pretty convincing. Your references inspired me to look further, and info autoconf has a node entitled "Installation Directory Variables" which says essentially the same thing (the user should be allowed to play with the prefix at "make" time) and also mentions the recommended way to deal with the problem I brought up with PYTHON_INSTDIR (used only to configure examples/python/plplot_python_start.py.in). A similar problem exists for configuring bindings/java/config.java.in with the JAVA_INSTDIR variable. BTW, that recommended way involves dropping autoconf configuration of examples/python/plplot_python_start.py.in and bindings/java/config.java.in and instead using sed at "make" time to create plplot_python_start.py and config.java.in. Rafael, am I reading that node of info autoconf correctly? If so, who is going to do the work? I vote for David..... :-) Alan __________________________ Alan W. Irwin email: ir...@be... phone: 250-727-2902 Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the PLplot scientific plotting software package (plplot.org), the Yorick front-end to PLplot (yplot.sf.net), the Loads of Linux Links project (loll.sf.net), and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |
From: Rafael L. <rla...@us...> - 2003-12-12 09:09:05
|
* Alan W. Irwin <ai...@us...> [2003-12-11 14:54]: > Rafael, am I reading that node of info autoconf correctly? Apparently, yes. > If so, who is going to do the work? Not me... > I vote for David..... :-) Seconded! ;-) -- Rafael |