1.SUFFIXES: .So
2VPATH = .
3
4PREFIX?= /usr/local
5LIBDIR= ${PREFIX}/lib
6INCLUDEDIR= ${PREFIX}/include
7
8SRCS_C= g722_decode.c g722_encode.c
9SRCS_H= g722.h g722_private.h g722_encoder.h g722_decoder.h
10
11CFLAGS?= -O2 -pipe
12
13OBJS = $(SRCS_C:.c=.o)
14OBJS_PIC = $(SRCS_C:.c=.So)
15
16TEST_OUT_FILES= test.raw test.raw.16k pcminb.g722 pcminb.raw.16k \
17    test.g722.out
18
19all: libg722.a libg722.so.0 libg722.so
20
21libg722.a: $(OBJS) $(SRCS_H)
22	$(AR) cq $@ $(OBJS)
23	ranlib $@
24
25libg722.so.0: $(OBJS_PIC) $(SRCS_H)
26	cc  -shared -o $@ -Wl,-soname,$@ $(OBJS_PIC)
27
28libg722.so: libg722.so.0
29	ln -sf libg722.so.0 $@
30
31.c.o:
32	$(CC) -c $(CFLAGS) $< -o $@
33
34.c.So:
35	$(CC) -fpic -DPIC -c $(CFLAGS) $< -o $@
36
37clean:
38	rm -f libg722.a libg722.so.0 $(OBJS) $(OBJS_PIC) test $(TEST_OUT_FILES)
39
40test: test.c libg722.a libg722.so.0
41	${CC} ${CFLAGS} -o $@ test.c -lm -L. -lg722
42	LD_LIBRARY_PATH=. ./$@ test.g722 test.raw
43	LD_LIBRARY_PATH=. ./$@ --sln16k test.g722 \
44	    test.raw.16k
45	LD_LIBRARY_PATH=. ./$@ --enc --sln16k --bend \
46	    pcminb.dat pcminb.g722
47	LD_LIBRARY_PATH=. ./$@ --sln16k --bend \
48	    pcminb.g722 pcminb.raw.16k
49	LD_LIBRARY_PATH=. ./$@ --enc test.raw \
50	    test.g722.out
51	sha256 ${TEST_OUT_FILES} | \
52	    diff test.checksum -
53
54install:
55	install -d ${DESTDIR}${LIBDIR}
56	install libg722.a ${DESTDIR}${LIBDIR}
57	install libg722.so.0 ${DESTDIR}${LIBDIR}
58	ln -sf libg722.so.0 ${DESTDIR}${LIBDIR}/libg722.so
59	install -d ${DESTDIR}${INCLUDEDIR}
60	install ${SRCS_H} ${DESTDIR}${INCLUDEDIR}
61