92
92
ifeq (${DYNLINK},1)
93
93
pianobar: ${PIANOBAR_OBJ} ${PIANOBAR_HDR} libpiano.so.0
94
${CC} -o $@ ${PIANOBAR_OBJ} ${LDFLAGS} -lao -lpthread -lm -L. -lpiano \
95
@${CC} -o $@ ${PIANOBAR_OBJ} ${LDFLAGS} -lao -lpthread -lm -L. -lpiano \
95
96
${LIBFAAD_LDFLAGS} ${LIBMAD_LDFLAGS} ${LIBGNUTLS_LDFLAGS}
97
98
pianobar: ${PIANOBAR_OBJ} ${PIANOBAR_HDR} ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} \
98
99
${LIBWAITRESS_HDR} ${LIBEZXML_OBJ} ${LIBEZXML_HDR}
99
${CC} ${CFLAGS} ${LDFLAGS} ${PIANOBAR_OBJ} ${LIBPIANO_OBJ} \
101
@${CC} ${CFLAGS} ${LDFLAGS} ${PIANOBAR_OBJ} ${LIBPIANO_OBJ} \
100
102
${LIBWAITRESS_OBJ} ${LIBEZXML_OBJ} -lao -lpthread -lm \
101
103
${LIBFAAD_LDFLAGS} ${LIBMAD_LDFLAGS} ${LIBGNUTLS_LDFLAGS} -o $@
105
107
libpiano.so.0: ${LIBPIANO_RELOBJ} ${LIBPIANO_HDR} ${LIBWAITRESS_RELOBJ} \
106
108
${LIBWAITRESS_HDR} ${LIBEZXML_RELOBJ} ${LIBEZXML_HDR} \
107
109
${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} ${LIBEZXML_OBJ}
108
${CC} -shared -Wl,-soname,libpiano.so.0 ${CFLAGS} ${LDFLAGS} ${LIBGNUTLS_LDFLAGS} \
111
@${CC} -shared -Wl,-soname,libpiano.so.0 ${CFLAGS} ${LDFLAGS} ${LIBGNUTLS_LDFLAGS} \
109
112
-o libpiano.so.0.0.0 ${LIBPIANO_RELOBJ} \
110
113
${LIBWAITRESS_RELOBJ} ${LIBEZXML_RELOBJ}
111
ln -s libpiano.so.0.0.0 libpiano.so.0
112
ln -s libpiano.so.0 libpiano.so
113
${AR} rcs libpiano.a ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} ${LIBEZXML_OBJ}
114
@ln -s libpiano.so.0.0.0 libpiano.so.0
115
@ln -s libpiano.so.0 libpiano.so
116
@echo " AR libpiano.a"
117
@${AR} rcs libpiano.a ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} ${LIBEZXML_OBJ}
116
${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
121
@${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
117
122
-I ${LIBEZXML_INCLUDE} ${LIBFAAD_CFLAGS} \
118
123
${LIBMAD_CFLAGS} ${LIBGNUTLS_CFLAGS} -c -o $@ $<
120
125
# create position independent code (for shared libraries)
122
${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
128
@${CC} ${CFLAGS} -I ${LIBPIANO_INCLUDE} -I ${LIBWAITRESS_INCLUDE} \
123
129
-I ${LIBEZXML_INCLUDE} -c -fPIC -o $@ $<
126
${RM} ${PIANOBAR_OBJ} ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} ${LIBWAITRESS_OBJ}/test.o \
133
@${RM} ${PIANOBAR_OBJ} ${LIBPIANO_OBJ} ${LIBWAITRESS_OBJ} ${LIBWAITRESS_OBJ}/test.o \
127
134
${LIBEZXML_OBJ} ${LIBPIANO_RELOBJ} ${LIBWAITRESS_RELOBJ} \
128
135
${LIBEZXML_RELOBJ} pianobar libpiano.so* libpiano.a waitress-test
133
debug: CFLAGS=-Wall -pedantic -ggdb
140
debug: CFLAGS=-pedantic -ggdb -Wall -Wmissing-declarations -Wshadow -Wcast-qual \
141
-Wformat=2 -Winit-self -Wignored-qualifiers -Wmissing-include-dirs \
142
-Wfloat-equal -Wundef -Wpointer-arith -Wtype-limits -Wbad-function-cast \
143
-Wcast-align -Wclobbered -Wempty-body -Wjump-misses-init -Waddress \
144
-Wlogical-op -Waggregate-return -Wstrict-prototypes \
145
-Wold-style-declaration -Wold-style-definition -Wmissing-parameter-type \
146
-Wmissing-prototypes -Wmissing-field-initializers -Woverride-init \
147
-Wpacked -Wredundant-decls -Wnested-externs
148
# warnings for gcc 4.5; disabled:
149
# -Wswitch-default: too many bogus warnings
150
# -Wswitch-enum: too many bogus warnings
151
# -Wunused-parameter: too many bogus warnings
152
# -Wstrict-overflow: depends on optimization level
153
# -Wunsafe-loop-optimizations: depends on optimization level
154
# -Wwrite-strings: to be enabled
155
# -Wconversion: too many (bogus?) warnings
156
# -Wsign-conversion: same here
157
# -Wsign-compare: to be enabled
158
# -Wmissing-noreturn: recommendation
159
# -Wmissing-format-attribute: same here
160
# -Wpadded: have a closer look at this one
161
# -Winline: we don't care
162
# -Winvalid-pch: not our business
163
# -Wdisabled-optimization: depends on optimization level
164
# -Wstack-protector: we don't use stack protector
165
# -Woverlength-strings: over-portability-ish
135
167
waitress-test: CFLAGS+= -DTEST
136
168
waitress-test: ${LIBWAITRESS_OBJ}