OK, actually looking at what you wrote this time… your patch makes sense to me. I guess your patch fixes several cases of underlinking, which would also explain how Marcin’s suggestion addresses it. I further suspect that geometry/make_shelx_restraints doesn’t actually need to link to libcoot-utils, but rather the clipper libraries (it references clipper::Util::d2rad()), which means that the “I don’t understand” comment just above it could go.
However, I didn’t actually try any of this, so I may be way off target this time, too! // Cheers; Johan On Oct 27, 2014, at 19:43, Cyrus Harmon <[email protected]> wrote: > Following up on my on email... > > The following patch fixes the build for me from the latest SVN coot-read-only > sources. Is the list preference to paste these sorts of things inline to the > email, or to send the patch as an attachment? > > If anyone has any comments/suggestions on the patches, I would appreciate > hearing them. > > thanks, > > Cyrus > > > > diff --git a/coot-utils/Makefile.am b/coot-utils/Makefile.am > index 6612f82..c19a66d 100644 > --- a/coot-utils/Makefile.am > +++ b/coot-utils/Makefile.am > @@ -62,7 +62,8 @@ libcoot_coord_utils_la_SOURCES = coot-coord-utils.cc \ > # clean > libcoot_coord_utils_la_LIBADD = \ > $(top_builddir)/geometry/libcoot-geometry.la \ > - $(GSL_LIBS) > + $(GSL_LIBS) \ > + $(CLIPPER_LIBS) > > libcoot_coord_utils_la_LDFLAGS = -no-undefined > > @@ -96,7 +97,8 @@ libcoot_map_utils_la_SOURCES = coot-map-utils.cc > peak-search.cc peak-search-from > # clean > libcoot_map_utils_la_LIBADD = \ > libcoot-coord-utils.la \ > - $(GSL_LIBS) > + $(GSL_LIBS) \ > + $(CLIPPER_LIBS) > > libcoot_map_utils_la_LDFLAGS = -no-undefined > > @@ -109,7 +111,8 @@ libcoot_map_heavy_la_SOURCES = coot-map-heavy.cc > coot-fffear.cc > libcoot_map_heavy_la_LIBADD = \ > libcoot-map-utils.la \ > libcoot-coord-utils.la \ > - $(GSL_LIBS) > + $(GSL_LIBS) \ > + $(CLIPPER_LIBS) > > libcoot_map_heavy_la_LDFLAGS = -no-undefined > > @@ -145,6 +148,7 @@ testcootutils_LDADD = \ > ./libcoot-coord-extras.la\ > ./libcoot-coord-utils.la \ > $(GSL_LIBS) \ > + $(CLIPPER_LIBS) \ > $(GLOB_LIBS) > > # $(top_builddir)/geometry/libcoot-geometry.la > @@ -172,7 +176,7 @@ test_elastic_SOURCES = test-elastic.cc > test_elastic_LDADD = ./libcoot-coord-utils.la $(GLOB_LIBS) > > test_spherical_SOURCES = test-spherical.cc > -test_spherical_LDADD = ./libcoot-coord-utils.la $(GSL_LIBS) > +test_spherical_LDADD = ./libcoot-coord-utils.la $(GSL_LIBS) $(CLIPPER_LIBS) > > glyco_torsions_SOURCES = test-glyco-torsions.cc > glyco_torsions_LDADD = ./libcoot-coord-utils.la > diff --git a/geometry/Makefile.am b/geometry/Makefile.am > index 266eb04..89f6bb5 100644 > --- a/geometry/Makefile.am > +++ b/geometry/Makefile.am > @@ -85,5 +85,5 @@ make_shelx_restraints_SOURCES = make-shelx-restraints.cc > > # why is coot-utils.la needed? I don't understand. > make_shelx_restraints_LDADD = ./libcoot-geometry.la \ > - $(top_builddir)/utils/libcoot-utils.la > + $(top_builddir)/utils/libcoot-utils.la $(CLIPPER_LIBS) > > diff --git a/src/c-interface-mogul.cc b/src/c-interface-mogul.cc > index cad0b32..08a0d05 100644 > --- a/src/c-interface-mogul.cc > +++ b/src/c-interface-mogul.cc > @@ -1,4 +1,6 @@ > > +#include <string.h> > + > #ifdef USE_PYTHON > #include <Python.h> // before system includes to stop "POSIX_C_SOURCE" > redefined problems > #endif > diff --git a/src/generic-objects.cc b/src/generic-objects.cc > index ba5c394..8c93401 100644 > --- a/src/generic-objects.cc > +++ b/src/generic-objects.cc > @@ -30,6 +30,8 @@ > #include <vector> > #include <string> > > +#include <string.h> > + > #include <gtk/gtk.h> > #include <math.h> > > > > > On 10/27/2014 01:55 PM, Cyrus Harmon wrote: >> In what I gather is a rite of passage for folks wishing to build/use coot, >> I'm running into some troubles trying to build coot from source. I think >> I've got the right prerequisites built and installed: >> >> mmdb2 >> libccp4 >> clipper-2.1 >> ssm-1.4 >> and of course the various prerequisites (python, gtk, etc...) >> >> When I try to build I coot, I get the following error message: >> >> make[1]: Entering directory >> '/home/sly/projects/structure/coot/coot-read-only/analysis' >> /bin/bash ../libtool --tag=CXX --mode=link g++ -o bfactan bfactan.o >> libcoot-analysis.la ../coot-utils/libcoot-coord-utils.la >> ../geometry/libcoot-geometry.la ../mini-mol/libcoot-mini-mol.la >> ../utils/libcoot-utils.la -L/usr/local/lib -lclipper-ccp4 -lclipper-cif >> -lclipper-minimol -lclipper-mmdb -lclipper-cns -lclipper-phs >> -lclipper-contrib -lclipper-core -lccp4c -lmmdb2 -L/usr/local/lib -lmmdb2 >> libtool: link: g++ -o .libs/bfactan bfactan.o ./.libs/libcoot-analysis.so >> ../coot-utils/.libs/libcoot-coord-utils.so >> ../geometry/.libs/libcoot-geometry.so ../mini-mol/.libs/libcoot-mini-mol.so >> ../utils/.libs/libcoot-utils.so -L/usr/local/lib >> /usr/local/lib/libclipper-ccp4.so /usr/local/lib/libclipper-cif.so >> /usr/local/lib/libclipper-minimol.so /usr/local/lib/libclipper-mmdb.so >> /usr/local/lib/libclipper-cns.so /usr/local/lib/libclipper-phs.so >> /usr/local/lib/libclipper-contrib.so /usr/local/lib/libclipper-core.so >> /usr/local/lib/libccp4c.so /usr/local/lib/libmmdb2.so >> ../coot-utils/.libs/libcoot-coord-utils.so: undefined reference to >> `clipper::SFweight_spline<float>::operator()(clipper::HKL_data<clipper::datatypes::F_phi<float> >> >&, clipper::HKL_data<clipper::datatypes::F_phi<float> >&, >> clipper::HKL_data<clipper::datatypes::Phi_fom<float> >&, >> clipper::HKL_data<clipper::datatypes::F_sigF<float> > const&, >> clipper::HKL_data<clipper::datatypes::F_phi<float> > const&, >> clipper::HKL_data<clipper::datatypes::Flag> const&)' >> ../coot-utils/.libs/libcoot-coord-utils.so: undefined reference to >> `clipper::MMDBManager::cell() const' >> ../coot-utils/.libs/libcoot-coord-utils.so: undefined reference to >> `clipper::MMDBManager::spacegroup() const' >> ../coot-utils/.libs/libcoot-coord-utils.so: undefined reference to >> `clipper::SFweight_spline<float>::init(int, int, int)' >> collect2: error: ld returned 1 exit status >> Makefile:647: recipe for target 'bfactan' failed >> make[1]: *** [bfactan] Error 1 >> >> I'm a bit at a loss trying to figure out the templated classes, etc... in >> sfweight.cpp so I thought I'd check to see if anyone else is having (or has >> run into) this problem. Also the clipper::MMDBxxx stuff make me wonder if >> this isn't the result of some stuff not yet being converted over to mmdb2. >> Pointers appreciated. >> >> thanks, >> >> Cyrus Research Specialist @ Gonen Lab ____________________________________________________ Janelia Research Campus * 19700 Helix Drive Ashburn, VA 20147 * +1 (571) 209-4000 extension 3376
