1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
# Select your audio output device. Current choices are:
#
# X11: The X11 window system.
# Linux: IBM PC Console running Linux.
# OSS: Open Sound System /dev/dsp device.
# PA: PulseAudio using the pulse-simple client API.
# ALSA: Advanced Linux Sound Architecture
#
# Running on Linux:
# Many Linux laptops seem to have console speakers that are unreliable
# for various hardware and software reasons. You may be better off
# using morseALSA or morseOSS than morseLinux.
#
# Running on Mac OS X:
# (1) Use X11. The user must, as with any X11 client, set the DISPLAY
# variable, and have the X server running. Finally, the X11 output
# preferences dialog should have "Use system alert effect" unchecked;
# otherwise, the system alert (settable, but unlikely to be useful to
# copy code in any event) will be used instead of the X beep.
#
# Adding a new device is as simple as creating a new implementation of the
# beep.h interface. See beep*.c for examples. Please send any additions
# to the authors!
#
# SPDX-FileCopyrightText: (C) Eric S. Raymond <esr@thyrsus.com>
# SPDX-License-Identifier: BSD-2-Clause
#
#DEVICE = X11
#DEVICE = Linux
#DEVICE = OSS
DEVICE = ALSA
#DEVICE = PA
VERSION=$(shell sed -n <NEWS '/^[0-9]/s/:.*//p' | head -1)
MANPAGES = morse.1 QSO.1
DOCS = README NEWS COPYING TODO morse.xml $(MANPAGES)
ALL= $(DOCS) Makefile $(SOURCES) test_input \
morse.d/*.[ch] morse.d/Makefile \
qso.d/*.[ch] qso.d/Makefile
default: all
all: morse QSO morse.1 QSO.1
morse:
cd morse.d && make DEVICE=${DEVICE}
ln morse.d/morse ./morse
QSO:
cd qso.d && make
ln qso.d/QSO ./QSO
#
# "Jocks find quartz glyph, vex BMW." is my attempt to win Stephen J. Gould's
# prize (a copy of all his books) for the first person who can come up with a
# "perfect pangram": a meaningful sentence consisting entirely of common
# English words, with no abbreviations or proper names, that contains each
# letter exactly once. He rejected it because it contains "BMW", alas, but
# he did say it's the closest he's seen so far. - Joe Dellinger
#
testmorse: morse QSO
(cat test_input; qso.d/QSO) | ./morse -w 24 -l -e
testqso: morse QSO
qso.d/QSO | ./morse -w 20 -l -e
check: testmorse testqso
clean:
rm -f morse QSO *.1 *.html
cd morse.d; make clean
cd qso.d; make clean
pristine: clean
rm -f $(MANPAGES) morse.html
reflow:
@clang-format --style="{IndentWidth: 8, UseTab: ForIndentation}" -i $$(find . -name "*.[ch]")
morse.1 QSO.1: morse.xml
xmlto man morse.xml
morse.html: morse.xml
xmlto xhtml-nochunks morse.xml
morse-$(VERSION).tar.gz: $(ALL)
@ls $(ALL) | sed s:^:morse-$(VERSION)/: >MANIFEST
@(cd ..; ln -s morse-classic morse-$(VERSION))
(cd ..; tar -czf morse-classic/morse-$(VERSION).tar.gz `cat morse-classic/MANIFEST`)
@(cd ..; rm morse-$(VERSION))
dist: morse-$(VERSION).tar.gz
cppcheck:
cppcheck --quiet --template gcc --enable=all --suppress=missingIncludeSystem qso.d/*.[ch]
cppcheck --quiet --template gcc --enable=all --suppress=missingIncludeSystem morse.d/*.[ch]
release: morse-$(VERSION).tar.gz morse.html
shipper version=$(VERSION) | sh -e -x
refresh: morse.html
shipper -N -w version=$(VERSION) | sh -e -x
|