File: Makefile

package info (click to toggle)
midicsv 1.1%2Bdfsg.1-1
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, buster, stretch, trixie
  • size: 316 kB
  • ctags: 183
  • sloc: ansic: 1,304; perl: 471; makefile: 159
file content (104 lines) | stat: -rw-r--r-- 3,417 bytes parent folder | download | duplicates (2)
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