Beginner encountering difficulty building local dependencies (Mac)

Hello all,

Recently, I have been toying with the idea of writing some of my own modules. I was introduced to programming as a life-science student less than a year ago and have been looking for ways to develop C++ experience. In short, I am a total noob with a basic understanding of the command line and git.

I was following the build guide and keep running into an error building dependancies. I think it might have something to do with my CommandLineTools or libtool but, to be honest, I am not at all sure.

I installed dependancies with homebrew:

brew install git wget cmake autoconf automake libtool jq python zstd pkg-config

I cloned the repository:

git clone https://github.com/VCVRack/Rack.git
cd Rack
# Clone submodules.
git submodule update --init --recursive

I get this error when running make dep:

configure: Configured to build curl/libcurl:

  Host setup:       x86_64-apple-darwin23.3.0
  Install prefix:   /Users/morganmiller/rareairbikeco/Rack/dep
  Compiler:         gcc
   CFLAGS:          -g -O3 -fPIC -march=nehalem -mmacosx-version-min=10.9 -stdlib=libc++ -Qunused-arguments -Werror=partial-availability
   CPPFLAGS:        -isystem /Users/morganmiller/rareairbikeco/Rack/dep/include
   LDFLAGS:         -mmacosx-version-min=10.9 -stdlib=libc++ -framework CoreFoundation -framework SystemConfiguration -L/Users/morganmiller/rareairbikeco/Rack/dep/lib
   LIBS:            -lssl -lcrypto -lssl -lcrypto

  curl version:     7.79.1
  SSL:              enabled (OpenSSL)
  SSH:              no      (--with-{libssh,libssh2})
  zlib:             no      (--with-zlib)
  brotli:           no      (--with-brotli)
  zstd:             no      (--with-zstd)
  GSS-API:          no      (--with-gssapi)
  GSASL:            no      (--with-gsasl)
  TLS-SRP:          no      (--enable-tls-srp)
  resolver:         POSIX threaded
  IPv6:             enabled
  Unix sockets:     no      (--enable-unix-sockets)
  IDN:              no      (--with-{libidn2,winidn})
  Build libcurl:    Shared=no, Static=yes
  Built-in manual:  no      (--enable-manual)
  --libcurl option: enabled (--disable-libcurl-option)
  Verbose errors:   enabled (--disable-verbose)
  Code coverage:    disabled
  SSPI:             no      (--enable-sspi)
  ca cert bundle:   /etc/ssl/cert.pem
  ca cert path:     no
  ca fallback:      no
  LDAP:             no      (--enable-ldap / --with-ldap-lib / --with-lber-lib)
  LDAPS:            no      (--enable-ldaps)
  RTSP:             no      (--enable-rtsp)
  RTMP:             no      (--with-librtmp)
  PSL:              no      (--with-libpsl)
  Alt-svc:          no
  HSTS:             enabled (--disable-hsts)
  HTTP1:            enabled (internal)
  HTTP2:            no      (--with-nghttp2, --with-hyper)
  HTTP3:            no      (--with-ngtcp2, --with-quiche)
  ECH:              no      (--enable-ech)
  Protocols:        HTTP HTTPS
  Features:         AsynchDNS HSTS HTTPS-proxy IPv6 Largefile SSL

/Library/Developer/CommandLineTools/usr/bin/make -C curl-7.79.1
Making all in lib
/Library/Developer/CommandLineTools/usr/bin/make  all-am
Making all in src
Making all in ../docs
Making all in .
make[5]: Nothing to be done for `all-am'.
Making all in cmdline-opts
make[5]: Nothing to be done for `all'.
  CCLD     curl
ld: Undefined symbols:
  _EVP_PKEY_get_id, referenced from:
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
      _cert_stuff in libcurl.a[143](libcurl_la-openssl.o)
  _SSL_CTX_load_verify_dir, referenced from:
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
  _SSL_CTX_load_verify_file, referenced from:
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
  _SSL_get1_peer_certificate, referenced from:
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[4]: *** [curl] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [lib/libcurl.a] Error 2
make: *** [dep] Error 2

This error seems highly similar to this other thread, except they are on a windows machine.

Possibly my libtool is having difficulties or some path is not set up correctly. I reinstalled libtool with brew but it did not solve the issue. I also just tried running make to see if maybe this error was inconsequential, but make returned:

cc  -Iinclude -Idep/include -fPIC -MMD -MP -g -O3 -funsafe-math-optimizations -fno-omit-frame-pointer -Wall -Wextra -Wno-unused-parameter -DARCH_X64 -march=nehalem -DARCH_MAC -mmacosx-version-min=10.9  -c -o build/dep/oui-blendish/blendish.c.o dep/oui-blendish/blendish.c
dep/oui-blendish/blendish.c:28:10: error: 'blendish.h' file not found with <angled> include; use "quotes" instead
#include <blendish.h>
         ^~~~~~~~~~~~
         "blendish.h"
In file included from dep/oui-blendish/blendish.c:28:
dep/oui-blendish/blendish.h:29:10: fatal error: 'nanovg.h' file not found
#include <nanovg.h>
         ^~~~~~~~~~
2 errors generated.
make: *** [build/dep/oui-blendish/blendish.c.o] Error 1

These files exist in dep. Not sure what is going wrong.

Mac OS: Sonoma 14.3.1

Has anyone else encountered this? Does anyone have ideas about what is going wrong? I have a suspicion that the solution is simple, I am just out of my depth. Or it is possible that there is no way for any of you to know whats going on without more info.

Thank you! And be warned, if you respond and help me fix this, there will likely be more noobie questions to come.

I don’t know if you omitted some steps in what you’ve told us but following along with the instructions at https://vcvrack.com/manual/Building#Building-Rack

  • When you have done cd Rack what is the output of running pwd ? (“Make sure there are no spaces in your absolute path, since this breaks the Makefile-based build system.”)

  • It seems you went from cd Rack straight to make dep and if that’s true you skipped a pretty important step:

# Clone submodules.
git submodule update --init --recursive

Thank you for your response.

I did run the submodule update, but forgot to put that in the post. Apologies!

There are no spaces in the absolute path to the Rack dir. ‘/Users/morganmiller/rareairbikeco/Rack’

Could you submit this to VCV Support so we can look into it? I believe I’ve seen the same thing on my Intel Mac.

this is error is still outstanding

if you try from scratch to build for MAC INTEL you get always the same error

I know because someone told me my MAC intel version nysthi is not working in OS 13.x (and compiled on M3 Xcode 15)

SO I decided to recompile on my iMAC INTEL OSx 13.6.6

And I’m still getting the same libcurl – libssl undefined symbols

ld: Undefined symbols:
  _EVP_PKEY_get_id, referenced from:
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
      _cert_stuff in libcurl.a[143](libcurl_la-openssl.o)
  _SSL_CTX_load_verify_dir, referenced from:
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
  _SSL_CTX_load_verify_file, referenced from:
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
  _SSL_get1_peer_certificate, referenced from:
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
      _ossl_connect_common in libcurl.a[143](libcurl_la-openssl.o)
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [libRack.dylib] Error 1

(this is not happening on my build on M3 XCode 15 mac book pro 15 OSX 15.3 ) BTW INTEL code created there have this UNDEFINED on MAC INTEL with OS < 13.6

NYSTHI/plugin.dylib, 6): Symbol not found: ____chkstk_darwin