From 342733d4c1faa8e37d42cdb15de7127a865a8690 Mon Sep 17 00:00:00 2001 From: Thomas Adam Date: Sat, 2 Dec 2023 22:55:08 +0000 Subject: [PATCH] build: support macos Add the bare minimum to make fvwm3 compile on MacOS. Albeit for now with some warnings. --- configure.ac | 23 ++++++++++++++++++++++- libs/Makefile.am | 10 ++++++++-- modules/FvwmMFL/FvwmMFL.c | 7 ++++++- modules/FvwmMFL/Makefile.am | 2 +- 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac index a7839bd9c..de6e0f18e 100644 --- a/configure.ac +++ b/configure.ac @@ -267,18 +267,34 @@ AC_CANONICAL_HOST AC_MSG_CHECKING(platform) case "$host_os" in freebsd*) + PLATFORM=freebsd AC_MSG_RESULT(FreeBSD) AC_CHECK_LIB(xpg4, setlocale, [LIBS="$LIBS -lxpg4"]) ;; *openbsd*) + PLATFORM=openbsd AC_MSG_RESULT(OpenBSD) CFLAGS="$CFLAGS -I/usr/local/include" LDFLAGS="$LDFLAGS -L/usr/local/lib" ;; +*darwin*) + PLATFORM=macos + AC_MSG_RESULT(MacOS) + ;; *) + PLATFORM=unknown + AC_MSG_RESULT(unknown) ;; esac +AC_SUBST(PLATFORM) + +AM_CONDITIONAL([HOST_MACOS], [test "$PLATFORM" = "macos"]) + +if test "x$PLATFORM" = "xmacos"; then +AC_DEFINE([HOST_MACOS], [macos], [Host is MacOS]) +fi + PKG_PROG_PKG_CONFIG PKG_CHECK_MODULES([xt],[xt], @@ -1359,6 +1375,10 @@ AH_VERBATIM([_ZEND_EXPLICIT_DEFINITIONS], #define SUPPRESS_UNUSED_VAR_WARNING(x) \ do { void *p; p = (void *)&x; (void)p; } while (0); +#ifdef HOST_MACOS +#undef HAVE_STRLCAT +#undef HAVE_STRLCPY +#else #ifndef HAVE_STRLCAT # include "libs/strlcat.h" #endif @@ -1366,6 +1386,7 @@ do { void *p; p = (void *)&x; (void)p; } while (0); #ifndef HAVE_STRLCPY # include "libs/strlcpy.h" #endif +#endif #ifndef HAVE_ASPRINTF int asprintf(char **, const char *, ...); @@ -1488,4 +1509,4 @@ Fvwm3 Configuration: Build man pages? $with_mandoc$problem_mandoc Build html man pages? $with_htmldoc$problem_htmldoc -" +" \ No newline at end of file diff --git a/libs/Makefile.am b/libs/Makefile.am index 12b8f00af..101e4190f 100644 --- a/libs/Makefile.am +++ b/libs/Makefile.am @@ -15,7 +15,7 @@ libfvwm3_a_SOURCES = \ XError.h XResource.h charmap.h defaults.h envvar.h fio.h flist.h fqueue.h \ fsm.h ftime.h fvwm_sys_stat.h fvwm_x11.h fvwmlib.h fvwmrect.h fvwmsignal.h \ gravity.c gravity.h getpwuid.h lang-strings.h log.h modifiers.h queue.h \ - safemalloc.h setpgrp.h strlcat.h strlcpy.h timeout.h vpacket.h wcontext.h wild.h \ + safemalloc.h setpgrp.h timeout.h vpacket.h wcontext.h wild.h \ cJSON.h tree.h strtonum.h \ \ BidiJoin.c Flocale.c PictureUtils.c FScreen.c Graphics.c \ @@ -27,9 +27,15 @@ libfvwm3_a_SOURCES = \ fvwmrect.c FRenderInit.c safemalloc.c FBidi.c \ wild.c Grab.c Event.c ClientMsg.c setpgrp.c FShape.c \ FGettext.c Rectangles.c timeout.c flist.c charmap.c wcontext.c \ - modifiers.c fsm.c FTips.c fio.c fvwmlib3.c strlcat.c strlcpy.c \ + modifiers.c fsm.c FTips.c fio.c fvwmlib3.c \ getpwuid.c cJSON.c strtonum.c +if HOST_MACOS +foo= +else +libfvwm3_a_SOURCES += strlcpy.h strlcat.h strlcpy.c strlcat.c +endif + libfvwm3_a_LIBADD = @LIBOBJS@ AM_CPPFLAGS = -I$(top_srcdir) $(xpm_CFLAGS) $(Xft_CFLAGS) $(X_CFLAGS) \ diff --git a/modules/FvwmMFL/FvwmMFL.c b/modules/FvwmMFL/FvwmMFL.c index ee106ba16..c683f5579 100644 --- a/modules/FvwmMFL/FvwmMFL.c +++ b/modules/FvwmMFL/FvwmMFL.c @@ -31,7 +31,12 @@ #include #include +#ifdef HOST_MACOS +#include +#else #include +#endif + /* FIXME: including event_struct.h won't be binary comaptible with future * versions of libevent. */ @@ -898,4 +903,4 @@ int main(int argc, char **argv) unlink(sock_pathname); return (0); -} +} \ No newline at end of file diff --git a/modules/FvwmMFL/Makefile.am b/modules/FvwmMFL/Makefile.am index 76a62cf3b..944fd523f 100644 --- a/modules/FvwmMFL/Makefile.am +++ b/modules/FvwmMFL/Makefile.am @@ -27,4 +27,4 @@ LDADD = -L$(top_builddir)/libs $(X_LIBS) -lfvwm3 \ $(X_PRE_LIBS) -lXext -lX11 $(X_EXTRA_LIBS) $(XRandR_LIBS) \ $(libevent_LIBS) $(Xft_LIBS) -AM_CPPFLAGS = -I$(top_srcdir) $(X_CFLAGS) $(Xft_CFLAGS) +AM_CPPFLAGS = -I$(top_srcdir) $(X_CFLAGS) $(Xft_CFLAGS) $(libevent_CFLAGS) \ No newline at end of file