On macOS, also compile Objective-C .m files. There's only one, and it contains the main function; without it, love will fail to link: Undefined symbols for architecture x86_64: "_main", referenced from: implicit entry/start for main executable Also, BSD head doesn't support negative offsets so we have to use GNU head. https://github.com/love2d/love/issues/796 --- configure.in.orig 2024-05-07 23:10:53.000000000 -0500 +++ configure.in 2024-05-07 23:13:02.000000000 -0500 @@ -8,6 +8,7 @@ AC_PROG_LIBTOOL AC_PROG_CC AC_PROG_CXX +AC_PROG_OBJC AC_SEARCH_LIBS([sqrt], [m], [], AC_MSG_ERROR([Can't LÖVE without C math library])) AC_SEARCH_LIBS([SDL_Init], [SDL], [], AC_MSG_ERROR([Can't LÖVE without SDL])) AC_SEARCH_LIBS([glLoadIdentity], [GL], [], AC_MSG_ERROR([Can't LÖVE without OpenGL])) --- platform/unix/gen-makefile.orig 2012-04-02 15:31:32.000000000 -0500 +++ platform/unix/gen-makefile 2024-05-07 23:09:26.000000000 -0500 @@ -14,8 +14,15 @@ #love_LDADD = love_SOURCES = \\" > Makefile.am.tmp -find . \( \( -iname "*.c" -o -iname "*.cpp" -o -iname "*.h" -o -iname "*.lch" \) \) -exec echo '{}' \\ \; >> Makefile.am.tmp -cat Makefile.am.tmp | grep -v -f"../platform/unix/exclude" | head -c -3 > Makefile.am +os_name=$(uname -s) +dirs=(.) +types=(-iname "*.c" -o -iname "*.cpp" -o -iname "*.h" -o -iname "*.lch") +if [ "$os_name" = "Darwin" ]; then + dirs+=(../platform/macosx) + types+=(-o -iname "*.m") +fi +find ${dirs[@]} \( "${types[@]}" \) -exec echo '{}' \\ \; >> Makefile.am.tmp +cat Makefile.am.tmp | grep -v -f"../platform/unix/exclude" | ghead -c -3 > Makefile.am #head -c -3 Makefile.am.tmp > Makefile.am rm Makefile.am.tmp cd ..