[svn] / branches / dev-api-3 / xvidcore / build / generic / Makefile.linux Repository:
ViewVC logotype

Annotation of /branches/dev-api-3/xvidcore/build/generic/Makefile.linux

Parent Directory Parent Directory | Revision Log Revision Log


Revision 531 - (view) (download)

1 : edgomez 191 #############################################################################
2 :     #
3 :     # GNU/Linux Makefile
4 :     #
5 :     # Edit this file to enable/disable optimizations
6 :     #
7 : chl 531 # $Id: Makefile.linux,v 1.6.2.2 2002-09-23 20:41:23 chl Exp $
8 : edgomez 191 #
9 :     #############################################################################
10 : Isibaar 3
11 :     include Makefile.inc
12 :    
13 : edgomez 191 # You can set/add options to CC and CFLAGS without editing this Makefile
14 :     # You have just to export an environment CC/CFLAGS variable before running
15 :     # make.
16 :     #
17 :     # Examples :
18 :     # $ export CC='gcc-3.1'
19 :     # $ export CFLAGS='-maccumulate-outgoing-args'
20 :     # $ make
21 :     # ...
22 : Isibaar 3
23 : edgomez 191 # You can choose a specific compiler here removing the sharp symbol
24 :     # - Default is 'cc' which is a symlink to your default distro gcc
25 :    
26 :    
27 :     # CC = gcc
28 :     # CC = gcc-3.1
29 :     # CC = icc
30 :    
31 :     # Assembler
32 :     AS = nasm
33 :     AFLAGS = -f elf
34 :    
35 :     # Constants which should not be modified
36 :     CFLAGS += -DARCH_X86
37 :     CFLAGS += -DLINUX
38 :    
39 : chl 266 # Enable multithreaded ME (experimental), other routines to follow
40 :     # CFLAGS += -D_SMP
41 :    
42 : edgomez 191 # Enable some experimental/debugging code
43 :     # (Use only if you know what you're doing !)
44 : edgomez 236 # PSNR during encoding
45 :     # CFLAGS += -D_DEBUG_PSNR
46 :     # BFRAMES encoding
47 : chl 531 CFLAGS += -DBFRAMES
48 : edgomez 236 # BFRAMES decoding
49 : chl 531 CFLAGS += -DBFRAMES_DEC
50 : edgomez 191
51 : Isibaar 3 LIBDIR = /usr/local/lib
52 :    
53 :     ifeq ($(CC),icc)
54 :    
55 : edgomez 191 # -tpp7 might be faster (P4 optmization)...
56 :     CFLAGS += -O3 -ip -tpp6 -xM
57 :     CFLAGS += -I/opt/intel/compiler50/ia32/include
58 :     CFLAGS += -I/opt/intel/compiler50/ia32/substitute_headers/
59 :    
60 : Isibaar 3 else
61 :    
62 : edgomez 191 # Warning level options
63 :     # Shows all warnings
64 :     CFLAGS += -Wall
65 :     # To detect non ANSI C code (xvid is not ANSI C (yet?))
66 :     # CFLAGS += -pedantic
67 : Isibaar 3
68 : edgomez 314
69 : edgomez 191 # General Optimization options
70 :     # Optimize code for size (implies -O2)
71 :     CFLAGS += -Os
72 :     # Unroll loops code, this might speed up loops
73 :     CFLAGS += -funroll-loops
74 :     # Generates FPU math code
75 :     CFLAGS += -ffast-math
76 :     # ??? (man gcc)
77 :     CFLAGS += -fstrict-aliasing
78 :     # Omit the x86 push ebp; mov ebp, esp function
79 :     # header and its corresponding function tailer
80 :     CFLAGS += -fomit-frame-pointer
81 :     # Generates Position Independant Code depending on your nasm version,
82 :     # this could generate shared libraries that segfault because of a nasm
83 :     # bug
84 : edgomez 314 CFLAGS += -fPIC
85 : edgomez 191
86 : edgomez 314 # Debugging and Profiling options
87 :     # Writes debugging symbols in object files
88 :     # CFLAGS += -g
89 :     # Includes profiling code in generated code, don't forget to disable
90 :     # -fomit-frame-pointer as these 2 options are exclusive.
91 :     # CFLAGS += -p
92 : edgomez 191
93 : edgomez 314
94 : edgomez 191 # Architecture options : Valid for every gcc version
95 :     # Uncomment the one which you want to compile for
96 :    
97 :     # CFLAGS += -march=i386 -mcpu=i386
98 :     # CFLAGS += -march=i486 -mcpu=i486
99 :     # CFLAGS += -march=i586 -mcpu=i586
100 :     # CFLAGS += -march=i686 -mcpu=i686
101 : chl 276 # CFLAGS += -march=pentium -mcpu=pentium
102 :     # CFLAGS += -march=pentiumpro -mcpu=pentiumpro
103 : edgomez 191
104 :     # Architecture options : Valid for every gcc >= 3.1
105 :     # Uncomment the one which you want to compile for
106 :    
107 :     # CFLAGS += -march=pentium-mmx -mcpu=pentium-mmx
108 :     # CFLAGS += -march=pentium3 -mcpu=pentium3
109 :     # CFLAGS += -march=pentium4 -mcpu=pentium4
110 :     # CFLAGS += -march=athlon -mcpu=athlon
111 :     # CFLAGS += -march=k6 -mcpu=k6
112 :     # CFLAGS += -march=k6-2 -mcpu=k6-2
113 :     # CFLAGS += -march=k6-3 -mcpu=k6-3
114 :     # CFLAGS += -march=athlon-tbird -mcpu=athlon-tbird
115 :     # CFLAGS += -march=athlon-xp -mcpu=athlon-xp
116 :     # CFLAGS += -march=athlon-mp -mcpu=athlon-mp
117 :    
118 : edgomez 314 # x86 specific optimization for every gcc
119 : edgomez 191 # Aligns the stack to 2^4=16bytes boundaries in each function
120 :     # Local variables should be aligned and make the code faster
121 :     # some gcc versions (3.0.4) have problems with this option
122 :     # we can't really trust gcc output :-( You're warned.
123 :     CFLAGS += -mpreferred-stack-boundary=4
124 :    
125 :     # Architecture specific optimization available in gcc >= 3.1
126 :     # generates floating point sse code (for >= pentium 3)
127 :     # CFLAGS += -mfpmath=sse
128 :     # generates both floating point sse and 387 code, this double the amount
129 :     # of fp registers and could make the code faster
130 :     # (Still experimental in gcc 3.1.0)
131 :     # CFLAGS += -mfpmath=sse,387
132 :    
133 : Isibaar 3 endif
134 :    
135 : edgomez 191 #############################################################################
136 :     #
137 :     # Makefile rules
138 :     #
139 :     #############################################################################
140 : Isibaar 3
141 :     %.o: %.asm
142 :     $(AS) $(AFLAGS) $< -o $@
143 :    
144 :     RM = rm -rf
145 :    
146 :    
147 :     all: $(LIB) $(LIBSO)
148 :    
149 :    
150 :     $(LIB): $(SRC:.c=.o) $(SRC_INTEL:.asm=.o)
151 :     ar rcs $@ $^
152 :    
153 :    
154 :     $(LIBSO): $(SRC:.c=.o) $(SRC_INTEL:.asm=.o)
155 :     $(CC) $(CFLAGS) $^ -shared -lc -lm -o $@
156 :    
157 :    
158 :     clean:
159 :     $(RM) `find $(SRCDIR) -name "*.o"`
160 :     $(RM) $(LIB)
161 :     $(RM) $(LIBSO)
162 :    
163 :     install: libxvidcore.so
164 :     cp libxvidcore.so $(LIBDIR) # you have to bee root for this
165 : chl 394 cp $(SRCDIR)/xvid.h /usr/local/include
166 : Isibaar 3 /sbin/ldconfig
167 :    
168 :     install-test: libxvidcore.so # if you don't want to overwrite previous compile
169 :     cp libxvidcore.so $(LIBDIR)/libtestcore.so
170 :     /sbin/ldconfig

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4