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

Reply via email to