File: Makefile

package info (click to toggle)
abcmidi 20190705-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 2,128 kB
  • sloc: ansic: 30,529; sh: 427; makefile: 104
file content (174 lines) | stat: -rw-r--r-- 5,276 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# Generic unix/gcc Makefile for abcMIDI package 
# 
#
# compilation #ifdefs - you need to compile with these defined to get
#                       the code to compile with PCC.
#
# NOFTELL in midifile.c and genmidi.c selects a version of the file-writing
#         code which doesn't use file seeking.
#
# PCCFIX in mftext.c midifile.c midi2abc.c
#        comments out various things that aren't available in PCC
#
# ANSILIBS includes some ANSI header files (which gcc can live without,
#          but other compilers may want).
#
# USE_INDEX causes index() to be used instead of strchr(). This is needed
#           by some pre-ANSI C compilers.
#
# ASCTIME causes asctime() to be used instead of strftime() in pslib.c.
#         If ANSILIBS is not set, neither routine is used.
#
# KANDR selects functions prototypes without argument prototypes.
#       currently yaps will only compile in ANSI mode.
#
#
# On running make, you may get the mysterious message :
#
# ', needed by `parseabc.o'. Stop `abc.h
#
# This means you are using GNU make and this file is in DOS text format. To
# cure the problem, change this file from using PC-style end-of-line (carriage 
# return and line feed) to unix style end-of-line (line feed).

VERSION = @VERSION@

CC = gcc
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}

CFLAGS = -DANSILIBS  -O2  
CPPFLAGS = -DHAVE_CONFIG_H  -I. 
LDFLAGS =  -lm

prefix = /usr/local
exec_prefix = ${prefix}

srcdir = .
VPATH = .
bindir = ${exec_prefix}/bin
libdir = ${exec_prefix}/lib
datadir = ${prefix}/share
docdir = ${prefix}/share/doc/abcmidi
mandir = ${prefix}/share/man/man1

binaries=abc2midi midi2abc abc2abc mftext yaps midicopy abcmatch

all : abc2midi midi2abc abc2abc mftext yaps midicopy abcmatch

OBJECTS_ABC2MIDI=parseabc.o store.o genmidi.o midifile.o queues.o parser2.o stresspat.o
abc2midi : $(OBJECTS_ABC2MIDI)
	$(CC) $(CFLAGS) -o abc2midi $(OBJECTS_ABC2MIDI) $(LDFLAGS) -lm
$(OBJECTS_ABC2MIDI): abc.h parseabc.h config.h Makefile

OBJECTS_ABC2ABC=parseabc.o toabc.o
abc2abc : $(OBJECTS_ABC2ABC)
	$(CC) $(CFLAGS) -o abc2abc $(OBJECTS_ABC2ABC) $(LDFLAGS)
$(OBJECTS_ABC2ABC): abc.h parseabc.h config.h Makefile

OBJECTS_MIDI2ABC=midifile.o midi2abc.o 
midi2abc : $(OBJECTS_MIDI2ABC)
	$(CC) $(CFLAGS) -o midi2abc $(OBJECTS_MIDI2ABC) $(LDFLAGS)
$(OBJECTS_MIDI2ABC): abc.h midifile.h config.h Makefile

OBJECTS_MFTEXT=midifile.o mftext.o crack.o
mftext : $(OBJECTS_MFTEXT)
	$(CC) $(CFLAGS) -o mftext $(OBJECTS_MFTEXT) $(LDFLAGS)
$(OBJECTS_MFTEXT): abc.h midifile.h config.h Makefile

OBJECTS_YAPS=parseabc.o yapstree.o drawtune.o debug.o pslib.o position.o parser2.o
yaps : $(OBJECTS_YAPS)
	$(CC) $(CFLAGS) -o yaps $(OBJECTS_YAPS) $(LDFLAGS)
$(OBJECTS_YAPS): abc.h midifile.h config.h Makefile

OBJECTS_MIDICOPY=midicopy.o
midicopy : $(OBJECTS_MIDICOPY)
	$(CC) $(CFLAGS) -o midicopy $(OBJECTS_MIDICOPY) $(LDFLAGS)
$(OBJECTS_MIDICOPY): abc.h midifile.h midicopy.h config.h Makefile

OBJECTS_ABCMATCH=abcmatch.o matchsup.o parseabc.o
abcmatch : $(OBJECTS_ABCMATCH)
	$(CC) $(CFLAGS) -o abcmatch $(OBJECTS_ABCMATCH) $(LDFLAGS)
$(OBJECTS_ABCMATCH): abc.h midifile.h config.h Makefile

parseabc.o : parseabc.c abc.h parseabc.h

parser2.o : parser2.c abc.h parseabc.h parser2.h

toabc.o : toabc.c abc.h parseabc.h

# could use -DNOFTELL here
genmidi.o : genmidi.c abc.h midifile.h genmidi.h

stresspat.o :	stresspat.c

store.o : store.c abc.h parseabc.h midifile.h genmidi.h

queues.o : queues.c genmidi.h

# could use -DNOFTELL here
midifile.o : midifile.c midifile.h

midi2abc.o : midi2abc.c midifile.h

midicopy.o : midicopy.c midicopy.h

abcmatch.o: abcmatch.c abc.h

crack.o : crack.c

mftext.o : mftext.c midifile.h

# objects needed by yaps
#
yapstree.o: yapstree.c abc.h parseabc.h structs.h drawtune.h

drawtune.o: drawtune.c structs.h sizes.h abc.h drawtune.h

pslib.o: pslib.c drawtune.h

position.o: position.c abc.h structs.h sizes.h

debug.o: debug.c structs.h abc.h

#objects for abcmatch
#
matchsup.o : matchsup.c abc.h parseabc.h parser2.h

clean :
	rm -f *.o ${binaries}

install: abc2midi midi2abc abc2abc mftext midicopy yaps abcmatch
	$(INSTALL) -d $(DESTDIR)$(bindir)
	$(INSTALL) -m 755 ${binaries} $(DESTDIR)$(bindir)

	# install documentation
	$(INSTALL) -d $(DESTDIR)${docdir}
	$(INSTALL)  -m 644 doc/*.txt $(DESTDIR)$(docdir)
	$(INSTALL)  -m 644 doc/AUTHORS $(DESTDIR)$(docdir)
	$(INSTALL)  -m 644 doc/CHANGES $(DESTDIR)$(docdir)
	$(INSTALL)  -m 644 VERSION $(DESTDIR)$(docdir)

	# install manpages
	$(INSTALL)  -d $(DESTDIR)${mandir}
	$(INSTALL)  -m 644 doc/*.1 $(DESTDIR)$(mandir)


uninstall:
	echo "uninstalling...";
	#rm -f $(DESTDIR)$(bindir)/$(binaries)
	rm -f $(DESTDIR)$(bindir)/abc2midi
	rm -f $(DESTDIR)$(bindir)/abc2abc
	rm -f $(DESTDIR)$(bindir)/yaps
	rm -f $(DESTDIR)$(bindir)/midi2abc
	rm -f $(DESTDIR)$(bindir)/mftext
	rm -f $(DESTDIR)$(bindir)/abcmatch
	rm -f $(DESTDIR)$(bindir)/midicopy
	rm -f $(DESTDIR)$(docdir)/*.txt
	rm -f $(DESTDIR)$(docdir)/AUTHORS
	rm -f $(DESTDIR)$(docdir)/CHANGES
	rm -f $(DESTDIR)$(docdir)/VERSION
	rm -f $(DESTDIR)$(mandir)/*.1
	rmdir $(DESTDIR)$(docdir)