]> git.sesse.net Git - x264/blob - Makefile
fix compilation on FreeBSD (from Loren Merritt (thanks to Igla))
[x264] / Makefile
1 # Makefile: tuned for i386/MMX system only
2 # For ppc append
3 #  SRCS: core/ppc/mc.c core/ppc/pixel.c 
4 #  Defines: HAVE_PPC
5 #  CFLAGS: -faltivec
6 # For FreeBSD, remove -DHAVE_MALLOC_H and add -DSYS_FREEBSD
7 #
8 PFLAGS=-DARCH_X86 -DHAVE_MMXEXT -DHAVE_SSE2
9 CC=gcc
10 CFLAGS=-g -Wall -I. -DDEBUG -O4 -funroll-loops -D__X264__ -DHAVE_MALLOC_H $(PFLAGS)
11
12 SRCS=  core/mc.c core/predict.c core/pixel.c core/macroblock.c \
13        core/frame.c core/dct.c core/cpu.c core/cabac.c \
14        core/common.c core/mdate.c core/csp.c \
15        encoder/analyse.c encoder/me.c encoder/ratecontrol.c \
16        encoder/set.c encoder/macroblock.c encoder/cabac.c encoder/cavlc.c \
17        encoder/encoder.c encoder/eval.c \
18        core/i386/mc-c.c core/i386/dct-c.c core/i386/predict.c \
19        x264.c
20
21 AS= nasm
22 # for linux
23 ASFLAGS=-f elf $(PFLAGS)
24 # for cygwin
25 #ASFLAGS=-f gnuwin32 -DPREFIX
26
27 ASMSRC= core/i386/dct.asm core/i386/cpu.asm core/i386/pixel.asm  core/i386/mc.asm
28 OBJASM= $(ASMSRC:%.asm=%.o)
29
30 OBJS = $(SRCS:%.c=%.o)
31 DEP  = depend
32
33 default: $(DEP) x264
34
35 libx264.a: $(OBJS) $(OBJASM)
36         ar rc libx264.a $(OBJS) $(OBJASM)
37
38 x264: libx264.a x264.o
39         $(CC) $(CFLAGS) -o x264 x264.o libx264.a -lm
40
41 checkasm: testing/checkasm.c libx264.a
42         $(CC) $(CFLAGS) -o checkasm $< libx264.a -lm
43
44 %.o: %.asm
45         $(AS) $(ASFLAGS) -o $@ $<
46
47 .depend: $(SRCS) x264.c
48         $(CC) -MM $(CFLAGS) $(SRCS) x264.c 1> .depend
49
50 depend: .depend
51 ifneq ($(wildcard .depend),)
52 include .depend
53 endif
54
55 clean:
56         rm -f $(OBJS) $(OBJASM) *.a x264.o .depend x264 TAGS
57
58 distclean: clean
59
60 etags: TAGS
61
62 TAGS:
63         etags $(SRCS)