Thanks, Alan. This is helpful. You've captured what I do, except that I typically use an install prefix in my home dir.
On Tue, Apr 29, 2014 at 10:12 PM, Alan Conway <[email protected]> wrote: > The discussion about how make install should work has made me wonder, > how are people installing the various qpid bits? > > Perhaps we can collect the different use cases and come up with some > simple, consistent behavior for all the various projects that will make > life easy for everyone. > > Here's what I do: I install everything in /usr/local. I do not want to > ever clobber RPM installed files in /usr. Here's how I do it: > > With a qpid-proton checkout at $PROTON and > CMAKE_INSTALL_PREFIX=/usr/local (the default) > > cd $PROTON/<build-directory>; make install > > With a qpid checkout at $QPID and CMAKE_INSTALL_PREFIX=/usr/local (the > default) > > cd $QPID/qpid/cpp/<build-directory>; make install > This step does something helpful: it uses the proton bits at $PREFIX, if present, to build and install the cpp code. Dispatch does not do this. If we added Dispatch to these instructions, it would not look so seamless. > cd $QPID/qpid/tools; ./setup.py install --prefix /usr/local > cd $QPID/qpid/python; ./setup.py install --prefix /usr/local > > And finally make sure to set up your environment: > > export PATH="$PATH:/usr/local/sbin:/usr/local/bin" > export > > PYTHONPATH="$PYTHONPATH:/usr/local/lib/proton/bindings/python:/usr/local/lib64/proton/bindings/python:/usr/local/lib/python2.7/site-packages:/usr/local/lib64/python2.7/site-packages" > export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib64" > IMO, we should work to make the extra stuff for proton at the start of PYTHONPATH unnecessary. That is, the installed bindings should be available under site-packages, where you expect to set your PYTHONPATH. I've talked to Rafi and Darryl about doing this. I'm uncertain about having to set LD_LIBRARY_PATH here. The cpp code configures its outputs to load dependencies from the build-targeted prefix. Perhaps the same should be done for the bindings. In dispatch, I've added some simple scripting to cleanly run tests, in order to verify work before checkin. I've been thinking of adding similar scripting to simplify the developer experience for installs: # QPID_INSTALL_PREFIX := $HOME/.qpid-install $ cd proton $ source config.sh $ install.sh (builds to proton/build; installs to $QPID_INSTALL_PREFIX) $ cd qpid/cpp $ source config.sh $ install.sh (builds to qpid/cpp/build; installs to $QPID_INSTALL_PREFIX) $ cd dispatch $ source config.sh $ install.sh (builds to dispatch/build; installs to $QPID_INSTALL_PREFIX) Justin
