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
|
# Set this to 0 to disable compiling the libvlc input
ENABLE_INPUT_VLC=1
# Set this to 0 to disable compiling the JACK input
ENABLE_INPUT_JACK=1
CC = gcc
HEADERS = \
absthr.h \
ath.h \
audio_read.h \
availbits.h \
bitstream.h \
common.h \
crc.h \
critband.h \
encode.h \
encode_new.h \
encoder.h \
enwindow.h \
fft.h \
freqtable.h \
ieeefloat.h \
mem.h \
musicin.h \
options.h \
portableio.h \
psycho_0.h \
psycho_1.h \
psycho_1_priv.h \
psycho_2.h \
psycho_3.h \
psycho_3priv.h \
psycho_4.h \
psycho_n1.h \
subband.h \
tables.h \
toolame.h \
utils.h \
xpad.h \
zmqoutput.h \
vlc_input.h
c_sources = \
common.c \
encode.c \
ieeefloat.c \
toolame.c \
portableio.c \
psycho_n1.c \
psycho_0.c \
psycho_1.c \
psycho_2.c \
psycho_3.c \
psycho_4.c \
fft.c \
subband.c \
audio_read.c \
bitstream.c \
mem.c \
crc.c \
tables.c \
availbits.c \
ath.c \
encode_new.c \
zmqoutput.c \
utils.c \
xpad.c \
vlc_input.c
OBJ = $(c_sources:.c=.o)
GIT_VER = -DGIT_VERSION="\"`sh git-version.sh`\""
#Uncomment this if you want to do some profiling/debugging
#PG = -g -pg
PG = -g -fomit-frame-pointer
# Optimize flag.
OPTIM = -O2
ifeq (${ENABLE_INPUT_VLC},1)
VLC_CFLAGS=-DVLC_INPUT
VLC_LDFLAGS=-lvlc -lpthread
else
VLC_CFLAGS=
VLC_LDFLAGS=
endif
ifeq (${ENABLE_INPUT_JACK},1)
JACK_CFLAGS=-DJACK_INPUT
JACK_LDFLAGS=-ljack -lpthread
else
JACK_CFLAGS=
JACK_LDFLAGS=
endif
# These flags are pretty much mandatory
REQUIRED = -DINLINE= ${GIT_VER} ${VLC_CFLAGS} ${JACK_CFLAGS}
#pick your architecture
ARCH = -march=native
#Possible x86 architectures
#gcc3.2 => i386, i486, i586, i686, pentium, pentium-mmx
# pentiumpro, pentium2, pentium3, pentium4, k6, k6-2, k6-3,
# athlon, athlon-tbird, athlon-4, athlon-xp and athlon-mp.
#TWEAK the hell out of the compile. Some of these are real dodgy
# and will cause program instability
#TWEAKS = -finline-functions -fexpensive-optimizations -ffast-math \
# -malign-double \
# -mfancy-math-387 -funroll-loops -funroll-all-loops -pipe \
# -fschedule-insns2 -fno-strength-reduce
#Set a stack of warnings to overcome my atrocious coding style . MFC.
WARNINGS = -Wall
WARNINGS2 = -Wstrict-prototypes -Wmissing-prototypes -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wredundant-decls
NEW_02L_FIXES = -DNEWENCODE
CC_SWITCHES = $(OPTIM) $(REQUIRED) $(ARCH) $(PG) $(TWEAKS) $(WARNINGS) $(NEW_02L_FIXES)
PGM = toolame
LIBS = -lm -lzmq ${VLC_LDFLAGS} ${JACK_LDFLAGS}
#nick burch's OS/2 fix gagravarr@SoftHome.net
UNAME = $(shell uname)
ifeq ($(UNAME),OS/2)
SHELL=sh
PGM = toolame.exe
PG = -Zcrtdll -Zexe
LIBS =
endif
%.o: %.c $(HEADERS) Makefile
$(CC) $(CC_SWITCHES) -c $< -o $@
$(PGM): $(OBJ) $(HEADERS) Makefile
$(CC) $(PG) -o $(PGM) $(OBJ) $(LIBS)
clean:
-rm $(OBJ) $(DEP) $(PGM)
megaclean:
-rm $(OBJ) $(DEP) $(PGM) \#*\# *~
distclean:
-rm $(OBJ) $(DEP) $(PGM) \#* *~ gmon.out gprof* core *shit* *.wav *.mp2 *.c.* *.mp2.* *.da *.h.* *.d *.mp3 *.pcm *.wav logfile
tags: TAGS
TAGS: ${c_sources}
etags -T ${c_sources}
|