diff --git a/CMakeLists.txt b/CMakeLists.txt index f6aca546..462d4314 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,7 @@ add_compile_options(-funsafe-math-optimizations -march=native -O3 -Wall) add_compile_definitions(_GNU_SOURCE=1 NDEBUG=1) include(GNUInstallDirs) +set(VARDIR "${CMAKE_INSTALL_PREFIX}${CMAKE_INSTALL_LOCALSTATEDIR}/${CMAKE_PROJECT_NAME}") set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) @@ -277,4 +278,20 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") install(FILES airspy-blacklist.conf DESTINATION "/${CMAKE_INSTALL_SYSCONFDIR}/modprobe.d") install(FILES 98-sockbuf.conf DESTINATION "/${CMAKE_INSTALL_SYSCONFDIR}/sysctl.d") install(FILES start-ka9q-horus.sh DESTINATION ${CMAKE_INSTALL_SBINDIR}) + + install(CODE + "execute_process( + COMMAND_ERROR_IS_FATAL ANY + COMMAND_ECHO STDERR + COMMAND mkdir -p /etc/fftw /etc/radio ${VARDIR} + COMMAND /usr/sbin/adduser --quiet --system --group radio + COMMAND /usr/sbin/adduser --quiet --system --ingroup radio airspy + COMMAND /usr/sbin/adduser --quiet --system --ingroup radio funcube + COMMAND /usr/sbin/adduser --quiet --system --ingroup radio recordings + COMMAND /usr/sbin/adduser --quiet --system --ingroup radio aprsfeed + COMMAND chgrp radio /etc/fftw /etc/radio ${VARDIR} + COMMAND chmod g+ws /etc/fftw /etc/radio ${VARDIR} + COMMAND systemctl daemon-reload + )" + ) endif() diff --git a/Makefile.debug b/Makefile.debug deleted file mode 100644 index c4829a57..00000000 --- a/Makefile.debug +++ /dev/null @@ -1,66 +0,0 @@ -# $Id: Makefile.debug,v 1.16 2022/10/06 23:24:36 karn Exp $ - -# for production -#DOPTS = -DNDEBUG=1 -O3 -# for debugging -DOPTS=-g - -# Get local versions (e.g., of librtlsdr) -#LDOPTS=-L/usr/local/lib -#LDOPTS=-g -L/usr/local/lib - -INCLUDES+=-I/usr/include/iniparser/ -CFLAGS=$(DOPTS) $(COPTS) $(INCLUDES) -BINDIR=/usr/local/bin -DAEMONDIR=/usr/local/sbin -VARDIR=/var/lib/ka9q-radio - -AIRSPY_FILES= - -SRC=attr.c audio.c avahi.c ax25.c bandplan.c config.c decimate.c decode_status.c dump.c fcd.c filter.c fm.c \ - iir.c linear.c main.c misc.c modes.c morse.c radio.c \ - radio_status.c multicast.c osc.c hid-libusb.c rtcp.c \ - status.c wfm.c attr.h ax25.h bandplan.h conf.h config.h decimate.h \ - fcd.h fcdhidcmd.h filter.h hidapi.h iir.h misc.h morse.h multicast.h osc.h radio.h status.h - -all: depend $(AIRSPY_FILES) - -# Don't overwrite existing config files in /etc/radio -install: ) $(AIRSPY_FILES) - /usr/sbin/adduser --quiet --system --group radio - /usr/sbin/adduser --quiet --system --ingroup radio airspy - /usr/sbin/adduser --quiet --system --ingroup radio funcube - /usr/sbin/adduser --quiet --system --ingroup radio recordings - /usr/sbin/adduser --quiet --system --ingroup radio aprsfeed - mkdir -p /etc/fftw /etc/radio $(VARDIR) /etc/radio/airspyd.conf.d - chgrp radio $(VARDIR) /etc/radio /etc/fftw - chmod g+ws $(VARDIR) /etc/radio /etc/fftw -# cp -n -v --target-directory=/etc/radio/airspyd.conf.d $(AIRSPY_FILES) - systemctl daemon-reload - -clean: - rm -f *.o *.a .depend - - -depend: .depend - -.depend: $(SRC) - rm -f .depend - $(CC) $(CFLAGS) -MM $^ > .depend - --include .depend - -.PHONY: clean all install depend - -# Binary libraries -libfcd.a: fcd.o hid-libusb.o - ar rv $@ $? - ranlib $@ - -# subroutines useful in more than one program -libradio.a: avahi.o attr.o filter.o iir.o status.o misc.o multicast.o osc.o config.o - ar rv $@ $? - ranlib $@ - - - diff --git a/Makefile.linux b/Makefile.linux deleted file mode 100644 index 7225e38f..00000000 --- a/Makefile.linux +++ /dev/null @@ -1,61 +0,0 @@ -# $Id: Makefile.linux,v 1.111 2022/10/25 03:32:55 karn Exp $ - -# Get local versions (e.g., of librtlsdr) -LDOPTS=-L/usr/local/lib -#LDOPTS=-g -L/usr/local/lib - -INCLUDES+=-I/usr/include/iniparser/ -CFLAGS=$(DOPTS) $(COPTS) $(INCLUDES) -BINDIR=/usr/local/bin -DAEMONDIR=/usr/local/sbin -VARDIR=/var/lib/ka9q-radio - -AIRSPY_FILES= - -SRC=attr.c audio.c avahi.c ax25.c bandplan.c config.c decimate.c decode_status.c dump.c fcd.c filter.c fm.c \ - iir.c linear.c main.c misc.c modes.c morse.c radio.c \ - radio_status.c multicast.c osc.c hid-libusb.c rtcp.c \ - status.c wfm.c attr.h ax25.h bandplan.h conf.h config.h decimate.h \ - fcd.h fcdhidcmd.h filter.h hidapi.h iir.h misc.h morse.h multicast.h osc.h radio.h status.h - -all: depend $(AIRSPY_FILES) - -# Don't overwrite existing config files in /etc/radio -install: $(AIRSPY_FILES) - /usr/sbin/adduser --quiet --system --group radio - /usr/sbin/adduser --quiet --system --ingroup radio airspy - /usr/sbin/adduser --quiet --system --ingroup radio funcube - /usr/sbin/adduser --quiet --system --ingroup radio recordings - /usr/sbin/adduser --quiet --system --ingroup radio aprsfeed - mkdir -p /etc/fftw /etc/radio $(VARDIR) /etc/radio/airspyd.conf.d - chgrp radio $(VARDIR) /etc/radio /etc/fftw - chmod g+ws $(VARDIR) /etc/radio /etc/fftw -# cp -n -v --target-directory=/etc/radio/airspyd.conf.d $(AIRSPY_FILES) - systemctl daemon-reload - -clean: - rm -f *.o *.a .depend - - -depend: .depend - -.depend: $(SRC) - rm -f .depend - $(CC) $(CFLAGS) -MM $^ > .depend - --include .depend - -.PHONY: clean all install depend - -# Binary libraries -libfcd.a: fcd.o hid-libusb.o - ar rv $@ $? - ranlib $@ - -# subroutines useful in more than one program -libradio.a: avahi.o attr.o filter.o iir.o status.o misc.o multicast.o osc.o config.o - ar rv $@ $? - ranlib $@ - - - diff --git a/Makefile.osx b/Makefile.osx deleted file mode 100644 index 3a997f23..00000000 --- a/Makefile.osx +++ /dev/null @@ -1,62 +0,0 @@ -# $Id: Makefile.osx,v 1.112 2022/08/17 22:01:58 karn Exp karn $ -CFLAGS=-I/opt/local/include/iniparser/ -BINDIR=/usr/local/bin - -install: all - install -d $(BINDIR) - -clean: - rm -f *.o *.a - -# Binary libraries -libfcd.a: fcd.o hid-libusb.o - ar rv $@ $? - ranlib $@ - -# subroutines useful in more than one program -libradio.a: avahi.o attr.o ax25.o config.o decimate.o filter.o status.o misc.o multicast.o rtcp.o osc.o iir.o - ar rv $@ $? - ranlib $@ - -# Main programs -avahi.o: avahi.c misc.h -main.o: main.c radio.h osc.h filter.h misc.h multicast.h status.h conf.h - -# Components of libfcd.a -fcd.o: fcd.c fcd.h hidapi.h fcdhidcmd.h -hid-libusb.o: hid-libusb.c hidapi.h - -# components of libradio.a -attr.o: attr.c attr.h -ax25.o: ax25.c ax25.h -decimate.o: decimate.c decimate.h -filter.o: filter.c misc.h filter.h -iir.o: iir.h iir.c -misc.o: misc.c misc.h -multicast.o: multicast.c multicast.h misc.h -osc.o: osc.c osc.h misc.h -rtcp.o: rtcp.c multicast.h -status.o: status.c status.h misc.h radio.h multicast.h osc.h filter.h - - -# modules used in only 1 or 2 main programs -audio.o: audio.c misc.h multicast.h osc.h filter.h radio.h status.h -bandplan.o: bandplan.c bandplan.h radio.h multicast.h osc.h status.h filter.h conf.h -decode_status.o: decode_status.c status.h radio.h misc.h multicast.h osc.h filter.h -dump.o: dump.c misc.h status.h -fm.o: fm.c misc.h filter.h radio.h osc.h multicast.h status.h iir.h -linear.o: linear.c misc.h filter.h radio.h osc.h multicast.h status.h -modes.o: modes.c radio.h osc.h misc.h multicast.h status.h filter.h -morse.o: morse.c morse.h -radio.o: radio.c radio.h osc.h filter.h misc.h multicast.h status.h -radio_status.o: radio_status.c status.h radio.h misc.h filter.h multicast.h osc.h -wfm.o: wfm.c misc.h filter.h radio.h osc.h multicast.h status.h iir.h - - - - - - - - -