headers installation
[ffmpeg.git] / libavcodec / Makefile
1 include ../config.mak
2
3 CFLAGS= $(OPTFLAGS) -Wall -g -DHAVE_AV_CONFIG_H
4 LDFLAGS= -g
5
6 OBJS= common.o utils.o mpegvideo.o h263.o jrevdct.o jfdctfst.o \
7       mpegaudio.o ac3enc.o mjpeg.o resample.o dsputil.o \
8       motion_est.o imgconvert.o imgresample.o msmpeg4.o \
9       mpeg12.o h263dec.o rv10.o mpegaudiodec.o pcm.o
10 ASM_OBJS=
11
12 # currently using libac3 for ac3 decoding
13 ifeq ($(CONFIG_AC3),yes)
14 OBJS+= ac3dec.o \
15        libac3/bit_allocate.o libac3/bitstream.o libac3/downmix.o \
16        libac3/imdct.o  libac3/parse.o
17 endif
18
19 # i386 mmx specific stuff
20 ifeq ($(TARGET_MMX),yes)
21 OBJS += i386/fdct_mmx.o i386/cputest.o \
22         i386/dsputil_mmx.o i386/mpegvideo_mmx.o \
23         i386/idct_mmx.o i386/motion_est_mmx.o
24 endif
25
26 # armv4l specific stuff
27 ifeq ($(TARGET_ARCH_ARMV4L),yes)
28 ASM_OBJS += armv4l/jrevdct_arm.o
29 OBJS += armv4l/dsputil_arm.o
30 endif
31
32 # sun mediaLib specific stuff
33 # currently only works when libavcodec is used in mplayer
34 ifeq ($(HAVE_MLIB),yes)
35 OBJS += mlib/dsputil_mlib.o
36 CFLAGS += $(MLIB_INC)
37 endif
38
39 SRCS = $(OBJS:.o=.c) $(ASM_OBJS:.o=.s)
40
41 LIB= libavcodec.a
42 ifeq ($(BUILD_SHARED),yes)
43 SLIB= libffmpeg-$(VERSION).so
44 endif
45 TESTS= imgresample-test dct-test motion-test
46
47 all: $(LIB) $(SLIB)
48 tests: apiexample cpuid_test $(TESTS)
49
50 $(LIB): $(OBJS) $(ASM_OBJS)
51         rm -f $@
52         $(AR) rcs $@ $(OBJS) $(ASM_OBJS)
53
54 $(SLIB): $(OBJS) $(ASM_OBJS)
55         rm -f $@
56         $(CC) -shared -o $@ $(OBJS) $(ASM_OBJS)
57         ln -sf $@ libffmpeg.so
58 dsputil.o: dsputil.c dsputil.h
59
60 %.o: %.c
61         $(CC) $(CFLAGS) -c -o $@ $< 
62
63 %.o: %.S
64         $(CC) $(CFLAGS) -c -o $@ $<
65
66 # depend only used by mplayer now
67 dep:    depend
68
69 depend:
70         $(CC) -MM $(CFLAGS) $(SRCS) 1>.depend
71
72 clean: 
73         rm -f *.o *~ $(LIB) $(SLIB) *.so i386/*.o i386/*~ \
74            armv4l/*.o armv4l/*~ \
75            mlib/*.o mlib/*~ \
76            libac3/*.o libac3/*~ \
77            apiexample $(TESTS)
78
79 distclean: clean
80         rm -f Makefile.bak .depend
81
82 # api example program
83 apiexample: apiexample.c $(LIB)
84         $(CC) $(CFLAGS) -o $@ $< $(LIB) -lm
85
86 # cpuid test
87 cpuid_test: i386/cputest.c
88         $(CC) $(CFLAGS) -D__TEST__ -o $@ $<
89
90 # testing progs
91
92 imgresample-test: imgresample.c
93         $(CC) $(CFLAGS) -DTEST -o $@ $^ 
94
95 dct-test: dct-test.o jfdctfst.o i386/fdct_mmx.o \
96           fdctref.o jrevdct.o i386/idct_mmx.o
97         $(CC) -o $@ $^
98
99 motion-test: motion_test.o $(LIB)
100         $(CC) -o $@ $^
101
102 install: all
103 #       install -m 644 $(LIB) $(prefix)/lib
104 ifeq ($(BUILD_SHARED),yes)
105         install -s -m 755 $(SLIB) $(prefix)/lib
106         ln -sf $(prefix)/lib/$(SLIB) $(prefix)/lib/libffmpeg.so
107         ldconfig
108         mkdir -p $(prefix)/include/libffmpeg
109         install -m 644 avcodec.h $(prefix)/include/libffmpeg/avcodec.h
110 endif
111 #
112 # include dependency files if they exist
113 #
114 ifneq ($(wildcard .depend),)
115 include .depend
116 endif