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 ..
