diff --git a/mex/build/octave/configure.ac b/mex/build/octave/configure.ac index 9781b3c97..22e6e8797 100644 --- a/mex/build/octave/configure.ac +++ b/mex/build/octave/configure.ac @@ -97,16 +97,24 @@ case ${host_os} in ;; esac -# Define an automake conditional for the Windows platform +# Determine whether to link MEX files against the Octave libraries. +# mkoctfile no longer does this by default but in practice it is needed +# for Windows and macOS. case ${host_os} in *mingw32*) - windows_api=yes + # This is hardcoded in src/mkoctfile.cc.in. + link_octave_libs=yes + ;; + *darwin*) + # Under macOS, the Homebrew formula passes --enable-link-all-dependencies + # to the configure script. + link_octave_libs=yes ;; *) - windows_api=no + link_octave_libs=no ;; esac -AM_CONDITIONAL([WINDOWS_API], [test ${windows_api} = yes]) +AM_CONDITIONAL([LINK_OCTAVE_LIBS], [test ${link_octave_libs} = yes]) # Construct final output message if test "$enable_mex_dynareplusplus" = yes; then diff --git a/mex/build/octave/mex.am b/mex/build/octave/mex.am index ac0fb4721..fd98f2119 100644 --- a/mex/build/octave/mex.am +++ b/mex/build/octave/mex.am @@ -10,9 +10,8 @@ AM_FCFLAGS = $(shell $(MKOCTFILE) -p FPICFLAG) -Wall -Wimplicit-interface AM_CXXFLAGS = $(shell $(MKOCTFILE) -p CXXPICFLAG) -Wall -Wno-parentheses -Wold-style-cast AM_LDFLAGS = $(shell $(MKOCTFILE) -p DL_LDFLAGS) -# Mimick the behaviour of mkoctfile: link against Octave libraries on Windows only -# (it is required there, otherwise we get a link failure) -if WINDOWS_API +# See the comments in configure.ac +if LINK_OCTAVE_LIBS AM_LDFLAGS += -L"$(shell $(MKOCTFILE) -p OCTLIBDIR)" LIBS += $(shell $(MKOCTFILE) -p OCTAVE_LIBS) endif