-
Notifications
You must be signed in to change notification settings - Fork 15
/
makefile
131 lines (97 loc) · 3.98 KB
/
makefile
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
# 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).
CC=gcc
#CFLAGS=-DANSILIBS -O2
CFLAGS+=-DANSILIBS -g
LNK=gcc
INSTALL=install
prefix=/usr/local
binaries=abc2midi midi2abc abc2abc mftext yaps midicopy abcmatch
docdir=share/doc/abcmidi
bindir=bin
mandir=share/man/man1
all : abc2midi midi2abc abc2abc mftext yaps midicopy abcmatch
abc2midi : parseabc.o store.o genmidi.o midifile.o queues.o parser2.o stresspat.o
$(LNK) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o abc2midi parseabc.o store.o genmidi.o queues.o \
parser2.o midifile.o stresspat.o -lm
abc2abc : parseabc.o toabc.o
$(LNK) $(LDFLAGS) -o abc2abc parseabc.o toabc.o
midi2abc : midifile.o midi2abc.o
$(LNK) $(LDFLAGS) midifile.o midi2abc.o -o midi2abc
mftext : midifile.o mftext.o crack.o
$(LNK) $(LDFLAGS) midifile.o mftext.o crack.o -o mftext
yaps : parseabc.o yapstree.o drawtune.o debug.o pslib.o position.o parser2.o
$(LNK) $(LDFLAGS) -o yaps parseabc.o yapstree.o drawtune.o debug.o \
position.o pslib.o parser2.o -o yaps
midicopy : midicopy.o
$(LNK) $(LDFLAGS) -o midicopy midicopy.o
abcmatch : abcmatch.o matchsup.o parseabc.o
$(LNK) $(LDFLAGS) abcmatch.o matchsup.o parseabc.o -o abcmatch
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
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 *.o ${binaries}
install: abc2midi midi2abc abc2abc mftext midicopy yaps abcmatch
test -d $(DESTDIR)${prefix}/${bindir} || mkdir -p $(DESTDIR)${prefix}/${bindir}
$(INSTALL) -m 755 ${binaries} $(DESTDIR)${prefix}/${bindir}
# install documentation
test -d $(DESTDIR)${PREFIX}/share/doc/abcmidi || mkdir -p $(DESTDIR)${prefix}/${docdir}
$(INSTALL) -m 644 doc/*.txt $(DESTDIR)${prefix}/${docdir}
$(INSTALL) -m 644 doc/AUTHORS $(DESTDIR)${prefix}/${docdir}
$(INSTALL) -m 644 doc/CHANGES $(DESTDIR)${prefix}/${docdir}
$(INSTALL) -m 644 VERSION $(DESTDIR)${prefix}/${docdir}
# install manpages
test -d $(DESTDIR)${prefix}/${mandir} || mkdir -p $(DESTDIR)${prefix}/${mandir};
$(INSTALL) -m 644 doc/*.1 $(DESTDIR)${prefix}/${mandir}