]> git.sesse.net Git - x264/blob - Makefile
be7c3adef512db3a82caaa82c4e4fbc4d6e7b53d
[x264] / Makefile
1 # Makefile: tuned for i386/MMX system only
2
3 # For FreeBSD, remove -DHAVE_MALLOC_H and add -DSYS_FREEBSD
4
5 # Uncomment this for Mac OS X
6 #SYS_MACOSX=1
7
8 SRCS_COMMON= common/mc.c common/predict.c common/pixel.c common/macroblock.c \
9              common/frame.c common/dct.c common/cpu.c common/cabac.c \
10              common/common.c common/mdate.c common/csp.c \
11              encoder/analyse.c encoder/me.c encoder/ratecontrol.c \
12              encoder/set.c encoder/macroblock.c encoder/cabac.c \
13              encoder/cavlc.c encoder/encoder.c encoder/eval.c x264.c
14
15 ifdef SYS_MACOSX
16 PFLAGS=-DARCH_PPC -DSYS_MACOSX -faltivec
17 SRCS= $(SRCS_COMMON) common/ppc/mc.c common/ppc/pixel.c
18 else
19 PFLAGS=-DARCH_X86 -DHAVE_MMXEXT -DHAVE_SSE2 -DHAVE_MALLOC_H
20 SRCS= $(SRCS_COMMON) common/i386/mc-c.c common/i386/dct-c.c common/i386/predict.c
21 ASMSRC= common/i386/dct-a.asm common/i386/cpu-a.asm common/i386/pixel-a.asm common/i386/mc-a.asm
22 OBJASM= $(ASMSRC:%.asm=%.o)
23 endif
24
25 CC=gcc
26 CFLAGS=-Wall -I. -O4 -funroll-loops -D__X264__ $(PFLAGS)
27 ifdef NDEBUG
28 CFLAGS+=-s -DNDEBUG
29 else
30 CFLAGS+=-g -DDEBUG
31 endif
32
33 AS= nasm
34 # for linux
35 ASFLAGS=-f elf $(PFLAGS)
36 # for cygwin
37 #ASFLAGS=-f gnuwin32 -DPREFIX
38
39 OBJS = $(SRCS:%.c=%.o)
40 DEP  = depend
41
42 default: $(DEP) x264
43
44 libx264.a: $(OBJS) $(OBJASM)
45         ar rc libx264.a $(OBJS) $(OBJASM)
46         ranlib libx264.a
47
48 x264: libx264.a x264.o
49         $(CC) $(CFLAGS) -o x264 x264.o libx264.a -lm
50
51 checkasm: testing/checkasm.c libx264.a
52         $(CC) $(CFLAGS) -o checkasm $< libx264.a -lm
53
54 %.o: %.asm
55         $(AS) $(ASFLAGS) -o $@ $<
56
57 .depend: $(SRCS) x264.c
58         rm -f .depend
59         $(foreach SRC, $(SRCS) x264.c, $(CC) $(CFLAGS) $(SRC) -MM -MT $(SRC:%.c=%.o) 1>> .depend;)
60
61 depend: .depend
62 ifneq ($(wildcard .depend),)
63 include .depend
64 endif
65
66 clean:
67         rm -f $(OBJS) $(OBJASM) *.a x264.o .depend x264 TAGS
68
69 distclean: clean
70
71 etags: TAGS
72
73 TAGS:
74         etags $(SRCS)