cmbi/hssp

installation on OSX

Closed this issue · 22 comments

I am trying to used Biopython to compute some DSSP values for a bunch of pdbs (https://biopython.org/DIST/docs/api/Bio.PDB.DSSP%27-module.html).
I seem to struggle to install DSSP though.
Naively, following the instructions and standard ways of installing on a unix system, I went ahead and cloned the repository:

git clone https://github.com/cmbi/xssp.git   
cd xssp
./configure    
make    
make install

The error I get is:

./configure: No such file or directory

Not really sure how to trouble shoot this.

Hi
I am trying to install xssp-3.0.2 on macOS High Sierra (10.13.6) using clang (Apple LLVM version 10.0.0 (clang-1000.11.45.2)) and get the following fatal error:
./src/primitives-3d.h:15:10: fatal error: 'boost/tr1/tuple.hpp' file not found

I am using boost 1.68.0 compiled with clang and installed using the instructions provided here (https://solarianprogrammer.com/2018/08/07/compiling-boost-gcc-clang-macos/). The boost lib and include files are in:

/usr/local/boost-1.68.0/lib/
/usr/local/boost-1.68.0/include/boost/

The commands used to configure and compile xssp-3.0.2 are:

./autogen.sh 
./configure --with-boost=/usr/local/boost-1.68.0/
make

The indicated missing boost file boost/tr1/tuple.hpp is really in /usr/local/boost-1.68.0/include/boost/tuple/tuple.hpp
-rw-r--r--@ 1 root wheel 1.9K Sep 20 13:34 /usr/local/boost-1.68.0/include/boost/tuple/tuple.hpp

The following have been added to my .profile file:

export DYLD_LIBRARY_PATH=/usr/local/boost-1.68.0/lib:$DYLD_LIBRARY_PATH
export BOOST_ROOT=/usr/local/boost-1.68.0
export BOOST_LIB_DIR=/usr/local/boost-1.68.0/lib
export BOOST_INC_DIR=/usr/local/boost-1.68.0/include

Any suggestions?

I've just created a new release (3.0.3) without the tr1 library. I replaced it with features from the c++ standard library. If you build this version, you should no longer get the error about that one missing header.

https://github.com/cmbi/xssp/releases

Greetings!

Hi,
I'm trying to install xssp-3.0.3 on Mac OS X Mojave
I have used the following commands with success:

./autogen.sh 
./configure

now running make gives a number of errors.
Here I have included only the first since the following might be a consequence of the first.

In file included from src/dssp.cpp:11:
./src/mas.h:44:9: error: keyword is hidden by macro definition [-Werror,-Wkeyword-macro]

Any ideas how to get around this?

Thanx, Claus

This is a problem occuring more often for mac users. To fix it, remove the lines 43, 44, 45 from mas.h that say:

#ifndef nullptr
#define nullptr NULL
#endif

Thanks a lot,
That took care of most of it, however I still have one error left:

src/structure.cpp:38:3: error: unused variable 'kSSBridgeDistance' [-Werror,-Wunused-const-variable]
  kSSBridgeDistance = 3.0,

Any more tricks?
Once again thanks for the help, it is most appreciated.

The compiler is right, this value isn't used. So you can remove this line. I will omit it from the next release.

Hi again,

Sorry to be a nuisance but I got a new error later in the progress:

src/fetchdbrefs.cpp:12:10: fatal error: 'zeep/xml/document.hpp' file not found
#include <zeep/xml/document.hpp>

Best, Claus

Hi,
I successfully compiled libzeep on macOS High Sierra (10.13.6) by largely modifying libzeep's makefile manually. I used the latest boost 1.687.

BOOST_LIB_SUFFIX   = -mt
BOOST              = /usr/local
BOOST_LIB_DIR       = $(BOOST:%=%/lib)
BOOST_INC_DIR       = $(BOOST:%=%/include)

PREFIX              ?= /Users/hogehoge/apps
LIBDIR              ?= $(PREFIX)/lib
INCDIR              ?= $(PREFIX)/include
MANDIR              ?= $(PREFIX)/man/man3
DOCDIR              ?= $(PREFIX)/share/libzeep

BOOST_LIBS          = system thread filesystem regex math_c99 random
BOOST_LIBS          := $(BOOST_LIBS:%=boost_%$(BOOST_LIB_SUFFIX))
LIBS                = $(BOOST_LIBS) stdc++ m pthread
LDFLAGS             += $(BOOST_LIB_DIR:%=-L%) $(LIBS:%=-l%) -g

VERSION_MAJOR       = 3.0
VERSION_MINOR       = 3
VERSION             = $(VERSION_MAJOR).$(VERSION_MINOR)
DIST_NAME           = libzeep-$(VERSION)
SO_NAME             = libzeep.dylib.$(VERSION_MAJOR)
LIB_NAME            = $(SO_NAME).$(VERSION_MINOR)

and

lib: libzeep.a # libzeep.so

libzeep.a: $(OBJECTS)
        ar rc $@ $(OBJECTS)
        ranlib $@
#       ld -r -o $@ $(OBJECTS)

$(LIB_NAME): $(OBJECTS)
        $(CXX) -o $@ -dynamiclib -install_name $(SO_NAME) $(LDFLAGS) $(OBJECTS)

$(SO_NAME): $(LIB_NAME)
        ln -fs $(LIB_NAME) $@

libzeep.dylib: $(SO_NAME)
        ln -fs $(LIB_NAME) $@

# assuming zeep-test is build when install was not done already
zeep-test: obj/zeep-test.o libzeep.a
        $(CXX) $(BOOST_INC_DIR:%=-I%) -o $@ -I. $^ $(LDFLAGS) -lboost_date_time -lboost_regex

install-libs: libzeep.dylib
        install -d $(LIBDIR)
        install $(LIB_NAME) $(LIBDIR)/$(LIB_NAME)
        ln -fs $(LIB_NAME) $(LIBDIR)/$(SO_NAME)
        #strip --strip-unneeded $(LIBDIR)/$(LIB_NAME)

Additionally, for src/preforked-http-server.cpp, I replaced native_type with native_handle_type to comply with the latest boost specification. I also changed line 296 *fdptr = socket.native_handle();.

Then, make -j4 && make install-libs generated libzeep.dylib.3.0.3.

Using this libzeep.dylib.3.0.3, I also tried compilation of xssp-3.0.3.

./autogen.sh
 ./configure --prefix=/Users/hogehoge/xssp/3.0.3 CC=/usr/bin/gcc CXX=/usr/bin/g++ LDFLAGS=-L/Users/hogehoge/apps/libzeep CPPFLAGS='-I/Users/hogehoge/apps/libzeep -Wunused-const-variable'

LDFLAGS and CPPFLAGS is set to avoid the error. 'zeep/xml/document.hpp' file not found.

mkdssp was successfully generated by make -j8 mkdssp (but mkdssp doesn't require libzeep inherently... ). However, make -j4 to compile all programs failed with this error message.

$ make -j4
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o mkdssp src/dssp.o src/iocif.o src/mas.o src/mkdssp.o src/primitives-3d.o src/structure.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o mkhssp src/blast.o src/dssp.o src/fasta.o src/fetchdbrefs.o src/hssp-nt.o src/iocif.o src/mas.o src/matrix.o src/mkhssp.o src/primitives-3d.o src/progress.o src/structure.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_timer -lzeep
Undefined symbols for architecture x86_64:
  "MCounter::operator=(long long)", referenced from:
      MProgress::Progress(long long) in progress.o
  "MCounter::operator+=(long long)", referenced from:
      MProgress::Consumed(long long) in progress.o
  "MCounter::operator++(int)", referenced from:
      boost::detail::thread_data<HSSP::MProfile::Process(std::__1::basic_istream<char, std::__1::char_traits<char> >&, float, float, unsigned int, unsigned int)::$_1>::run() in hssp-nt.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [mkhssp] Error 1
make: *** [all] Error 2

Any ideas to solve it?

Looks like you are building with 64bit architecture, right?

Did you build boost with that same architecture also?

Hi again,

Sorry to be a nuisance but I got a new error later in the progress:

src/fetchdbrefs.cpp:12:10: fatal error: 'zeep/xml/document.hpp' file not found
#include <zeep/xml/document.hpp>

Best, Claus

Do you have libzeep installed? If not, then the configure step will only give a warning. However, libzeep is required to build mkhssp. If you only need mkdssp, the you should be able to build that without libzeep just fine.

Yes that's true and I do only need mkdssp 👍

Looks like you are building with 64bit architecture, right?

Did you build boost with that same architecture also?

I installed boost 1.67 by brew install boost without any options. I believe the boost libraries are 64bit architecture.

test_fasta, test_readpdb, and hsspconv were succesfully compiled, but mkhssp failed. When compiling the three programs, errors related to boost didn't occur.

/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o test_fasta src/fasta.o src/iocif.o src/mas.o src/primitives-3d.o src/structure.o src/utils.o tests/test_fasta.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_unit_test_framework-mt
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o test_readpdb src/fasta.o src/iocif.o src/mas.o src/primitives-3d.o src/structure.o src/utils.o tests/test_readpdb.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_unit_test_framework-mt
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o hsspconv src/hssp-convert-3to1.o src/hsspconv.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o test_conv src/hssp-convert-3to1.o src/utils.o src/mas.o tests/test_conv.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_unit_test_framework-mt
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o mkhssp src/blast.o src/dssp.o src/fasta.o src/fetchdbrefs.o src/hssp-nt.o src/iocif.o src/mas.o src/matrix.o src/mkhssp.o src/primitives-3d.o src/progress.o src/structure.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_timer -lzeep
Undefined symbols for architecture x86_64:
  "MCounter::operator=(long long)", referenced from:
      MProgress::Progress(long long) in progress.o
  "MCounter::operator+=(long long)", referenced from:
      MProgress::Consumed(long long) in progress.o
  "MCounter::operator++(int)", referenced from:
      boost::detail::thread_data<HSSP::MProfile::Process(std::__1::basic_istream<char, std::__1::char_traits<char> >&, float, float, unsigned int, unsigned int)::$_1>::run() in hssp-nt.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [mkhssp] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2

The compiler was Apple LLVM 10.0.0.

$ /usr/bin/g++ --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 10.0.0 (clang-1000.11.45.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Could you try running that same clang command with '-v', so that we can see the invocation?

Would this be okay?

$ /usr/bin/g++ -g -O2  -L/Users/hogehoge/apps/libzeep -o mkhssp src/blast.o src/dssp.o src/fasta.o src/fetchdbrefs.o src/hssp-nt.o src/iocif.o src/mas.o src/matrix.o src/mkhssp.o src/primitives-3d.o src/progress.o src/structure.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_timer -lzeep -v

Apple LLVM version 10.0.0 (clang-1000.11.45.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -arch x86_64 -macosx_version_min 10.13.0 -o mkhssp -L/Users/hogehoge/apps/libzeep src/blast.o src/dssp.o src/fasta.o src/fetchdbrefs.o src/hssp-nt.o src/iocif.o src/mas.o src/matrix.o src/mkhssp.o src/primitives-3d.o src/progress.o src/structure.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_timer -lzeep -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/10.0.0/lib/darwin/libclang_rt.osx.a
Undefined symbols for architecture x86_64:
  "MCounter::operator=(long long)", referenced from:
      MProgress::Progress(long long) in progress.o
  "MCounter::operator+=(long long)", referenced from:
      MProgress::Consumed(long long) in progress.o
  "MCounter::operator++(int)", referenced from:
      boost::detail::thread_data<HSSP::MProfile::Process(std::__1::basic_istream<char, std::__1::char_traits<char> >&, float, float, unsigned int, unsigned int)::$_1>::run() in hssp-nt.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

You could try to build in a different architecture. If you configure with:

./configure "CXXFLAGS=-m32" "CFLAGS=-m32" "LDFLAGS=-m32"

And then run 'make' again.

Thank you for your suggestion. However, the setting didn't work well...

./configure --prefix=/usr/local/Cellar/xssp/3.0.3 CC=/usr/bin/gcc CXX=/usr/bin/g++ LDFLAGS='-L/Users/hogehoge/apps/libzeep -m32' CPPFLAGS='-I/Users/hogehoge/apps/libzeep -Wunused-const-variable -m32' CXXFLAGS=-m32 CFLAGS=-m32

and make clean ; make -j4

...Skip...

       /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep -Wunused-const-variable -m32  -m32 -MT src/dssp.o -MD -MP -MF $depbase.Tpo -c -o src/dssp.o src/dssp.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/mkdssp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep -Wunused-const-variable -m32  -m32 -MT src/mkdssp.o -MD -MP -MF $depbase.Tpo -c -o src/mkdssp.o src/mkdssp.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
/usr/bin/g++  -m32  -L/Users/hogehoge/apps/libzeep -m32 -o test_fasta src/fasta.o src/iocif.o src/mas.o src/primitives-3d.o src/structure.o src/utils.o tests/test_fasta.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_unit_test_framework-mt
ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)
ld: warning: ld: warning: ld: warning: ignoring file /usr/local/lib/libboost_date_time-mt.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libboost_date_time-mt.dylibignoring file /usr/local/lib/libboost_filesystem.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libboost_filesystem.dylibignoring file /usr/local/lib/libboost_iostreams-mt.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libboost_iostreams-mt.dylib


ld: warning: ignoring file /usr/local/lib/libboost_system.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libboost_system.dylibld: warning:
ld: warning: ignoring file /usr/local/lib/libboost_program_options-mt.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libboost_program_options-mt.dylibignoring file /usr/local/lib/libboost_regex-mt.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libboost_regex-mt.dylib

ld: warning: ignoring file /usr/local/lib/libboost_thread-mt.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libboost_thread-mt.dylib
ld: warning: ignoring file /usr/local/lib/libboost_unit_test_framework-mt.dylib, file was built for x86_64 which is not the architecture being linked (i386): /usr/local/lib/libboost_unit_test_framework-mt.dylib
Undefined symbols for architecture i386:
  "boost::test_tools::tt_detail::report_assertion(boost::test_tools::assertion_result const&, boost::unit_test::lazy_ostream const&, boost::unit_test::basic_cstring<char const>, unsigned long, boost::test_tools::tt_detail::tool_level, boost::test_tools::tt_detail::check_type, unsigned long, ...)", referenced from:
      bool boost::test_tools::tt_detail::check_frwd<boost::test_tools::tt_detail::equal_impl_frwd, unsigned long, int>(boost::test_tools::tt_detail::equal_impl_frwd, boost::unit_test::lazy_ostream const&, boost::unit_test::basic_cstring<char const>, unsigned long, boost::test_tools::tt_detail::tool_level, boost::test_tools::tt_detail::check_type, unsigned long const&, char const*, int const&, char const*) in test_fasta.o
  "boost::this_thread::interruption_point()", referenced from:
      boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) in structure.o
      void boost::condition_variable_any::wait<boost::unique_lock<boost::mutex> >(boost::unique_lock<boost::mutex>&) in structure.o
  "boost::this_thread::disable_interruption::disable_interruption()", referenced from:
      boost::shared_mutex::lock_shared() in structure.o
      boost::shared_mutex::lock() in structure.o
  "boost::this_thread::disable_interruption::~disable_interruption()", referenced from:
      boost::shared_mutex::lock_shared() in structure.o
      boost::shared_mutex::lock() in structure.o
  "boost::detail::thread_data_base::~thread_data_base()", referenced from:
      boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf1<void, MProtein, std::__1::vector<MResidue*, std::__1::allocator<MResidue*> > const&>, boost::_bi::list2<boost::_bi::value<MProtein*>, boost::reference_wrapper<std::__1::vector<MResidue*, std::__1::allocator<MResidue*> > > > > >::~thread_data() in structure.o
      boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf2<void, MProtein, buffer<MResidue*, 100u>&, std::__1::vector<MResidue*, std::__1::allocator<MResidue*> > const&>, boost::_bi::list3<boost::_bi::value<MProtein*>, boost::reference_wrapper<buffer<MResidue*, 100u> >, boost::reference_wrapper<std::__1::vector<MResidue*, std::__1::allocator<MResidue*> > const> > > >::~thread_data() in structure.o
  "boost::detail::get_current_thread_data()", referenced from:
      boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*, _opaque_pthread_cond_t*) in structure.o
  "boost::system::generic_category()", referenced from:
      boost::system::error_category::std_category::equivalent(int, std::__1::error_condition const&) const in fasta.o
      boost::system::error_category::std_category::equivalent(std::__1::error_code const&, int) const in fasta.o
      boost::system::error_category::std_category::equivalent(int, std::__1::error_condition const&) const in iocif.o
      boost::system::error_category::std_category::equivalent(std::__1::error_code const&, int) const in iocif.o
      boost::system::error_category::std_category::equivalent(int, std::__1::error_condition const&) const in structure.o
      boost::system::error_category::std_category::equivalent(std::__1::error_code const&, int) const in structure.o
      boost::thread_exception::thread_exception(int, char const*) in structure.o
      ...
  "boost::thread::join_noexcept()", referenced from:
      boost::thread::join() in structure.o
  "boost::thread::native_handle()", referenced from:
      boost::thread::get_id() const in structure.o
  "boost::thread::hardware_concurrency()", referenced from:
      MProtein::CalculateAccessibilities(std::__1::vector<MResidue*, std::__1::allocator<MResidue*> > const&) in structure.o
  "boost::thread::start_thread_noexcept()", referenced from:
      boost::thread::start_thread() in structure.o
  "boost::thread::detach()", referenced from:
      boost::thread::~thread() in structure.o
  "boost::unit_test::unit_test_main(bool (*)(), int, char**)", referenced from:
      _main in test_fasta.o
  "boost::unit_test::unit_test_log_t::set_checkpoint(boost::unit_test::basic_cstring<char const>, unsigned long, boost::unit_test::basic_cstring<char const>)", referenced from:
      test_mkhssp_suite::test_read_proteins_from_fasta_single_invoker() in test_fasta.o
      test_mkhssp_suite::test_read_proteins_from_fasta_single::test_method() in test_fasta.o
      test_mkhssp_suite::test_read_proteins_from_fasta_multiple_invoker() in test_fasta.o
      test_mkhssp_suite::test_read_proteins_from_fasta_multiple::test_method() in test_fasta.o
  "boost::unit_test::framework::master_test_suite()", referenced from:
      init_unit_test() in test_fasta.o
  "boost::unit_test::test_case::test_case(boost::unit_test::basic_cstring<char const>, boost::unit_test::basic_cstring<char const>, unsigned long, boost::function<void ()> const&)", referenced from:
      boost::unit_test::make_test_case(boost::function<void ()> const&, boost::unit_test::basic_cstring<char const>, boost::unit_test::basic_cstring<char const>, unsigned long) in test_fasta.o
  "boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(boost::unit_test::basic_cstring<char const>, boost::unit_test::basic_cstring<char const>, unsigned long, boost::unit_test::decorator::collector&)", referenced from:
      ___cxx_global_var_init.2 in test_fasta.o
  "boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(boost::unit_test::test_case*, boost::unit_test::decorator::collector&, unsigned long)", referenced from:
      ___cxx_global_var_init.5 in test_fasta.o
      ___cxx_global_var_init.12 in test_fasta.o
  "boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(int)", referenced from:
      ___cxx_global_var_init.18 in test_fasta.o
  "boost::unit_test::ut_detail::normalize_test_case_name(boost::unit_test::basic_cstring<char const>)", referenced from:
      boost::unit_test::make_test_case(boost::function<void ()> const&, boost::unit_test::basic_cstring<char const>, boost::unit_test::basic_cstring<char const>, unsigned long) in test_fasta.o
  "boost::thread::joinable() const", referenced from:
      boost::thread_group::join_all() in structure.o
  "typeinfo for boost::detail::thread_data_base", referenced from:
      typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf1<void, MProtein, std::__1::vector<MResidue*, std::__1::allocator<MResidue*> > const&>, boost::_bi::list2<boost::_bi::value<MProtein*>, boost::reference_wrapper<std::__1::vector<MResidue*, std::__1::allocator<MResidue*> > > > > > in structure.o
      typeinfo for boost::detail::thread_data<boost::_bi::bind_t<void, boost::_mfi::mf2<void, MProtein, buffer<MResidue*, 100u>&, std::__1::vector<MResidue*, std::__1::allocator<MResidue*> > const&>, boost::_bi::list3<boost::_bi::value<MProtein*>, boost::reference_wrapper<buffer<MResidue*, 100u> >, boost::reference_wrapper<std::__1::vector<MResidue*, std::__1::allocator<MResidue*> > const> > > > in structure.o
  "vtable for boost::detail::thread_data_base", referenced from:
      boost::detail::thread_data_base::thread_data_base() in structure.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for boost::unit_test::unit_test_log_t", referenced from:
      boost::unit_test::unit_test_log_t::unit_test_log_t() in test_fasta.o
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [test_fasta] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2

OK, forget that! Just compile with 64bit architecture.

Try replacing line 9 of src/progress.h:

#if defined(__linux__)

should become:

#if defined(__linux__) || defined(__APPLE__)

I changed src/progress.h as you wrote and then tried compilation. However, another issue occurred. When using Apple LLVM 10.0.0 compiler,

$ ./configure --prefix=/Users/hogehoge/xssp/3.0.3 CC=/usr/bin/gcc CXX=/usr/bin/g++ LDFLAGS=-L/Users/hogehoge/apps/libzeep CPPFLAGS='-I/Users/hogehoge/apps/libzeep'

$ make clean ; make -j4
test -z "mkdssp mkhssp hsspconv test_fasta test_conv test_readpdb" || rm -f mkdssp mkhssp hsspconv test_fasta test_conv test_readpdb
test -z "mtrx/matrices.h" || rm -f mtrx/matrices.h
rm -f *.o
rm -f src/*.o
rm -f tests/*.o
perl mtrx/mkmat_h.pl mtrx/
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
depbase=`echo src/iocif.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/iocif.o -MD -MP -MF $depbase.Tpo -c -o src/iocif.o src/iocif.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/mas.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/mas.o -MD -MP -MF $depbase.Tpo -c -o src/mas.o src/mas.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/primitives-3d.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/primitives-3d.o -MD -MP -MF $depbase.Tpo -c -o src/primitives-3d.o src/primitives-3d.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/structure.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/structure.o -MD -MP -MF $depbase.Tpo -c -o src/structure.o src/structure.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/utils.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/utils.o -MD -MP -MF $depbase.Tpo -c -o src/utils.o src/utils.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/blast.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/blast.o -MD -MP -MF $depbase.Tpo -c -o src/blast.o src/blast.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/fasta.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/fasta.o -MD -MP -MF $depbase.Tpo -c -o src/fasta.o src/fasta.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/fetchdbrefs.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/fetchdbrefs.o -MD -MP -MF $depbase.Tpo -c -o src/fetchdbrefs.o src/fetchdbrefs.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/hssp-nt.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/hssp-nt.o -MD -MP -MF $depbase.Tpo -c -o src/hssp-nt.o src/hssp-nt.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/matrix.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/matrix.o -MD -MP -MF $depbase.Tpo -c -o src/matrix.o src/matrix.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/mkhssp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\

        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/mkhssp.o -MD -MP -MF $depbase.Tpo -c -o src/mkhssp.o src/mkhssp.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/progress.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/progress.o -MD -MP -MF $depbase.Tpo -c -o src/progress.o src/progress.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
src/hssp-nt.cpp:1085:25: error: cannot increment value of type 'MCounter' (aka 'boost::detail::atomic_count')
        uint64 next = ix++;
                      ~~^
depbase=`echo src/hssp-convert-3to1.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/bin/g++ -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/hssp-convert-3to1.o -MD -MP -MF $depbase.Tpo -c -o src/hssp-convert-3to1.o src/hssp-convert-3to1.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
1 error generated.
make[1]: *** [src/hssp-nt.o] Error 1
make[1]: *** Waiting for unfinished jobs....
src/progress.cpp:183:23: error: no viable overloaded '+='
    (mImpl->mConsumed += inConsumed) >= mImpl->mMax and
     ~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~
src/progress.cpp:194:23: error: no viable overloaded '='
    (mImpl->mConsumed = inProgress) >= mImpl->mMax and
     ~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~
/usr/local/include/boost/smart_ptr/detail/atomic_count_std_atomic.hpp:51:20: note: candidate function not viable: no known conversion
      from 'int64' (aka 'long long') to 'const boost::detail::atomic_count' for 1st argument
    atomic_count & operator=(atomic_count const &);
                   ^
2 errors generated.
make[1]: *** [src/progress.o] Error 1

the Apple clang compiler couldn't compile them.

I found that this issue didn't occur when compiling with GNU compiler 6 or 8 installed by Homebrew. However, there remains some boost issue...

        mv -f $depbase.Tpo $depbase.Po
depbase=`echo tests/test_readpdb.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/local/bin/g++-6 -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT tests/test_readpdb.o -MD -MP -MF $depbase.Tpo -c -o tests/test_readpdb.o tests/test_readpdb.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/dssp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/local/bin/g++-6 -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/dssp.o -MD -MP -MF $depbase.Tpo -c -o src/dssp.o src/dssp.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
depbase=`echo src/mkdssp.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
        /usr/local/bin/g++-6 -DHAVE_CONFIG_H -I.  -std=c++11 -pedantic -Wall -Werror -Wno-reorder -pthread -I/usr/local/include -I./src/ -I/Users/hogehoge/apps/libzeep  -g -O2 -MT src/mkdssp.o -MD -MP -MF $depbase.Tpo -c -o src/mkdssp.o src/mkdssp.cpp &&\
        mv -f $depbase.Tpo $depbase.Po
/usr/local/bin/g++-6  -g -O2  -L/Users/hogehoge/apps/libzeep -o test_fasta src/fasta.o src/iocif.o src/mas.o src/primitives-3d.o src/structure.o src/utils.o tests/test_fasta.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_unit_test_framework-mt
Undefined symbols for architecture x86_64:
  "boost::unit_test::ut_detail::normalize_test_case_name[abi:cxx11](boost::unit_test::basic_cstring<char const>)", referenced from:
      boost::unit_test::make_test_case(boost::function<void ()> const&, boost::unit_test::basic_cstring<char const>, boost::unit_test::basic_cstring<char const>, unsigned long) in test_fasta.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[1]: *** [test_fasta] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2

Could you try building boost with the gnu compiler also?

Otherwise, try removing lines 11,12,13,16,17,18,19 from progress.h, saying:

#if defined(__INTEL_COMPILER_BUILD_DATE) || \
    (defined(__GNUC__) && (__GNUC__ > 4 || \
                           ( __GNUC__ == 4 && __GNUC_MINOR__ >= 6)))

#else
#include <boost/detail/atomic_count.hpp>
typedef boost::detail::atomic_count        MCounter;
#endif

And build with your clang compiler.

Great! mkhssp finally worked well on macOS High Sierra !
As cbaakman suggested, I modified some lines in src/progress.h like this

#pragma once

#if defined(__linux__) || defined(__APPLE__)

#include <atomic>
typedef std::atomic<int64>  MCounter;

#else

struct MCounter
{
  MCounter(int64 inValue) : m_value(inValue) {}

      operator int64() const          { return m_value; }

  int64  operator++(int);
  int64  operator+=(int64 inValue);
  int64  operator=(int64 inValue);

  int64  m_value;
};
#endif

Then, ./configure --prefix=/Users/hogehoge/xssp/3.0.3 CC=/usr/bin/gcc CXX=/usr/bin/g++ LDFLAGS=-L/Users/hogehoge/apps/libzeep CPPFLAGS=-I/Users/hogehoge/apps/libzeep, make clean ; make -j4

/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o test_fasta src/fasta.o src/iocif.o src/mas.o src/primitives-3d.o src/structure.o src/utils.o tests/test_fasta.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_unit_test_framework-mt
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o test_readpdb src/fasta.o src/iocif.o src/mas.o src/primitives-3d.o src/structure.o src/utils.o tests/test_readpdb.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_unit_test_framework-mt
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o hsspconv src/hssp-convert-3to1.o src/hsspconv.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o test_conv src/hssp-convert-3to1.o src/utils.o src/mas.o tests/test_conv.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_unit_test_framework-mt
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o mkhssp src/blast.o src/dssp.o src/fasta.o src/fetchdbrefs.o src/hssp-nt.o src/iocif.o src/mas.o src/matrix.o src/mkhssp.o src/primitives-3d.o src/progress.o src/structure.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread -lboost_timer -lzeep
/usr/bin/g++  -g -O2  -L/Users/hogehoge/apps/libzeep -o mkdssp src/dssp.o src/iocif.o src/mas.o src/mkdssp.o src/primitives-3d.o src/structure.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread-mt -lpthread
[hogehoge@MyMacbook-pro] $ ln -s /Users/hogehoge/apps/libzeep/libzeep.dylib.3.0 . # include libzeep dynamic library
[hogehoge@MyMacbook-pro] $ ./mkdssp -h
mkdssp 3.0.1 options:
  -h [ --help ]         Display help message
  -i [ --input ] arg    Input PDB file (.pdb) or mmCIF file (.cif/.mcif),
                        optionally compressed by gzip (.gz) or bzip2 (.bz2)
  -o [ --output ] arg   Output file, optionally compressed by gzip (.gz) or
                        bzip2 (.bz2). Use 'stdout' to output to screen
  -v [ --verbose ]      Verbose output
  --version             Print version and citation info
  -d [ --debug ] arg    Debug level (for even more verbose output)


Examples:

To calculate the secondary structure for the file 1crn.pdb and
write the result to a file called 1crn.dssp, you type:

  ./mkdssp -i 1crn.pdb -o 1crn.dssp
[hogehoge@MyMacbook-pro] $ ./mkhssp -h
mkhssp options:
  -h [ --help ]           Display help message
  -i [ --input ] arg      PDB ID or input PDB file (.pdb), mmCIF file
                          (.cif/.mcif), or fasta file (.fa/.fasta), optionally
                          compressed by gzip (.gz) or bzip2 (.bz2)
  -o [ --output ] arg     Output file, optionally compressed by gzip (.gz) or
                          bzip2 (.bz2). Use 'stdout' to output to screen
  -d [ --databank ] arg   Databank to use (can be specified multiple times)
  -a [ --threads ] arg    Number of threads (default is maximum)
  --min-length arg        Minimal chain length (default = 25)
  --fragment-cutoff arg   Minimal alignment length as fraction of chain length
                          (default = 0.75)
  -O [ --gap-open ] arg   Gap opening penalty (default is 30.0)
  -E [ --gap-extend ] arg Gap extension penalty (default is 2.0)
  --threshold arg         Homology threshold adjustment (default = 0.05)
  -m [ --max-hits ] arg   Maximum number of hits to include (default = 5000)
  --fetch-dbrefs          Fetch DBREF records for each UniProt ID
  -v [ --verbose ]        Verbose mode
  --version               Show version number and citation info

I really appreciate your taking time. I hope that the installation log will contribute to other macOS users.

I guess we'll just always use the std::atomic, since this is supported by default for c++11 anyway.