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 104
|
#CC = gcc
#CFLAGS = -g -Wall
INSTALL_DEST = $(DESTDIR)/usr
INSTALL_DOC_DEST = $(DESTDIR)/usr/share
# You shouldn't need to change anything after this line
VERSION = 1.1
PROGRAMS = midicsv csvmidi
MANPAGES = $(PROGRAMS:%=%.1) midicsv.5
DOC = README log.txt
BUILD = Makefile
SOURCE = csv.c csvmidi.c midicsv.c midio.c getopt.c getopt.h
HEADERS = csv.h midifile.h midio.h types.h version.h
EXAMPLES = test.mid bad.csv ce3k.csv acomp.pl chorus.pl \
count_events.pl drummer.pl exchannel.pl general_midi.pl \
transpose.pl torture.pl
WIN32EXE = Midicsv.exe Csvmidi.exe
WIN32 = $(WIN32EXE) Midicsv.sln Midicsv.vcproj Csvmidi.vcproj W32test.bat
DISTRIBUTION = $(DOC) $(BUILD) $(SOURCE) $(MANPAGES) $(HEADERS) $(EXAMPLES) $(WIN32)
all: $(PROGRAMS)
MIDICSV_OBJ = midicsv.o midio.o getopt.o
midicsv: $(MIDICSV_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o midicsv midicsv.o midio.o getopt.o
Midicsv.exe: $(MIDICSV_OBJ:%.o=%.c)
@echo 'Yar! Midicsv.exe needs to be rebuilt on WIN32!'
@exit 1
CSVMIDI_OBJ = csvmidi.o midio.o csv.o getopt.o
csvmidi: $(CSVMIDI_OBJ)
$(CC) $(CFLAGS) $(LDFLAGS) -o csvmidi csvmidi.o midio.o csv.o getopt.o
Csvmidi.exe: $(CSVMIDI_OBJ:%.o=%.c)
@echo 'Yar! Csvmidi.exe needs to be rebuilt on WIN32!'
@exit 1
check: all
@./midicsv test.mid /tmp/test.csv
@./csvmidi /tmp/test.csv /tmp/w.mid
@./midicsv /tmp/w.mid /tmp/w1.csv
@-cmp -s test.mid /tmp/w.mid ; if test $$? -ne 0 ; then \
echo '** midicsv/csvmidi: MIDI file comparison failed. **' ; else \
diff -q /tmp/test.csv /tmp/w1.csv ; if test $$? -ne 0 ; then \
echo '** midicsv/csvmidi: CSV file comparison failed. **' ; else \
echo 'All tests passed.' ; fi ; fi
@rm -f /tmp/test.csv /tmp/w.mid /tmp/w1.csv
pipetest: all
./midicsv test.mid | tee /tmp/test.csv | ./csvmidi | ./midicsv - /tmp/w1.csv
diff /tmp/test.csv /tmp/w1.csv
rm /tmp/test.csv /tmp/w1.csv
torture: all
perl torture.pl | ./csvmidi | tee /tmp/w.mid | ./midicsv | ./csvmidi >/tmp/w1.mid
@cmp /tmp/w.mid /tmp/w1.mid ; if test $$? -ne 0 ; then \
echo '** midicsv/csvmidi: Torture test CSV file comparison failed. **' ; else \
echo 'Torture test passed.' ; fi
@rm /tmp/w.mid /tmp/w1.mid
install: all
install -d -m 755 $(INSTALL_DEST)/bin
install -m 755 $(PROGRAMS) $(INSTALL_DEST)/bin
install -d -m 755 $(INSTALL_DOC_DEST)/man/man1
install -m 644 midicsv.1 csvmidi.1 $(INSTALL_DOC_DEST)/man/man1
install -d -m 755 $(INSTALL_DOC_DEST)/man/man5
install -m 644 midicsv.5 $(INSTALL_DOC_DEST)/man/man5
uninstall:
rm -f $(INSTALL_DEST)/bin/csvmidi $(INSTALL_DEST)/bin/midicsv
rm -f $(INSTALL_DOC_DEST)/man/man1/csvmidi.1 $(INSTALL_DOC_DEST)/man/man1/midicsv.1
rm -f $(INSTALL_DOC_DEST)/man/man5/midicsv.5
dist: $(WIN32EXE)
rm -f midicsv*.tar midicsv*.tar.gz
tar cfv midicsv.tar $(DISTRIBUTION)
mkdir midicsv-$(VERSION)
( cd midicsv-$(VERSION) ; tar xfv ../midicsv.tar )
rm -f midicsv.tar
tar cfv midicsv-$(VERSION).tar midicsv-$(VERSION)
gzip midicsv-$(VERSION).tar
rm -rf midicsv-$(VERSION)
rm -f midicsv-$(VERSION).zip
zip midicsv-$(VERSION).zip $(WIN32EXE)
# Zipped archive for building WIN32 version
winarch:
rm -f midicsv.zip
zip midicsv.zip $(DISTRIBUTION)
# Publish distribution on Web page (Fourmilab specific)
WEBDIR = $(HOME)/ftp/webtools/midicsv
publish: dist
cp -p midicsv-$(VERSION).tar.gz midicsv-$(VERSION).zip $(WEBDIR)
clean:
rm -f $(PROGRAMS) *.o *.bak core core.* *.out midicsv.zip
|