From cfe267835813b684b9c8ef81b096c2c25263f544 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Wed, 12 Feb 2020 21:39:42 +0100 Subject: Use pkg-config for ncursesw, fallback to classic curses The fallback is intended for non-ncurses systems only. TODO: add proper check that the fallback lib is wide character capable. (Can't add right now, as we don't know about an incompatiblity) --- configure.ac | 13 ++++++++----- src/Makefile.am | 2 +- src/interface.c | 4 +++- src/interface.h | 4 +++- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index 3ca5384..37ec840 100644 --- a/configure.ac +++ b/configure.ac @@ -29,20 +29,23 @@ AC_PROG_INSTALL AC_PROG_MAKE_SET # Checks for libraries. -AC_CHECK_LIB([ncursesw], [newwin], [CURSES_LIBS=-lncursesw], AC_MSG_ERROR([curses required])) - +PKG_CHECK_MODULES(CURSES, [ncursesw], [], [ncursesw=no]) PKG_CHECK_MODULES(PULSE, [libpulse], [], AC_MSG_ERROR([libpulse required])) PKG_CHECK_MODULES(PULSE_MAINLOOP, [libpulse-mainloop-glib], [], AC_MSG_ERROR([libpulse-mainloop-glib required])) PKG_CHECK_MODULES(GLIB, [glib-2.0], [], AC_MSG_ERROR([glib required])) +if test "x$ncursesw" = "xno"; then + AC_CHECK_LIB([curses], [newwin], [CURSES_LIBS=-lcurses], AC_MSG_ERROR([ncursesw or curses required])) + AC_CHECK_HEADERS([curses.h]) + AC_SUBST(CURSES_LIBS) +fi + if test "x$GCC" = "xyes"; then GCC_CFLAGS="-Wall -pedantic -std=c99 -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option -fvisibility=hidden" fi AC_SUBST(GCC_CFLAGS) -AC_SUBST(CURSES_LIBS) - -AC_CHECK_HEADERS([ncurses.h sys/ioctl.h sys/signalfd.h unistd.h signal.h]) +AC_CHECK_HEADERS([sys/ioctl.h sys/signalfd.h unistd.h signal.h]) AC_CHECK_FUNC([sigaction], [], AC_MSG_ERROR([function sigaction() not found])) AC_CHECK_FUNCS([signalfd]) diff --git a/src/Makefile.am b/src/Makefile.am index 3579dc0..8c5071c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -7,7 +7,7 @@ pa_sink_ctl_SOURCES += unix_signal.c endif AM_CFLAGS = $(GCC_CFLAGS) -AM_CPPFLAGS = $(PULSE_CFLAGS) $(PULSE_MAINLOOP_CFLAGS) $(GLIB_CFLAGS) \ +AM_CPPFLAGS = $(PULSE_CFLAGS) $(PULSE_MAINLOOP_CFLAGS) $(GLIB_CFLAGS) $(CURSES_CFLAGS) \ -include $(top_builddir)/config.h pa_sink_ctl_LDADD = $(GLIB_LIBS) $(PULSE_LIBS) $(PULSE_MAINLOOP_LIBS) $(CURSES_LIBS) diff --git a/src/interface.c b/src/interface.c index 4fdc09f..7c37611 100644 --- a/src/interface.c +++ b/src/interface.c @@ -17,7 +17,9 @@ * along with this program. If not, see . */ +#ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 700 +#endif #include #include @@ -27,7 +29,7 @@ #include #include -#include +#include #include "interface.h" #include "ctl.h" diff --git a/src/interface.h b/src/interface.h index b696526..2ecc6cd 100644 --- a/src/interface.h +++ b/src/interface.h @@ -20,11 +20,13 @@ #ifndef INTERFACE_H #define INTERFACE_H +#ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 700 +#endif #include #include -#include +#include #define SELECTED_MAIN_CTL -1 #define H_MSG_BOX 3 -- cgit