]> git.sesse.net Git - x264/blob - configure
cabac: merge i_state with i_mps. bs_write multiple bits at once.
[x264] / configure
1 #! /bin/sh
2
3 if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
4
5 echo "Usage: ./configure [options]"
6 echo ""
7 echo "available options:"
8 echo ""
9 echo "  --help                   print this message"
10 echo "  --enable-avis-input      enables avisynth input (win32 only)"
11 echo "  --enable-mp4-output      enables mp4 output (using gpac)"
12 echo "  --enable-vfw             compiles the VfW frontend"
13 echo "  --enable-pthread         enables multithreaded encoding"
14 echo "  --enable-debug           adds -g, doesn't strip"
15 echo "  --enable-gprof           adds -pg, doesn't strip"
16 echo "  --enable-visualize       enables visualization (X11 only)"
17 echo "  --extra-asflags=EASFLAGS add EASFLAGS to ASFLAGS"
18 echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS"
19 echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS"
20 echo ""
21 exit 1
22 fi
23
24 prefix='/usr/local'
25 eprefix='${prefix}'
26 bindir='${eprefix}/bin'
27 libdir='${eprefix}/lib'
28 includedir='${prefix}/include'
29
30 avis_input="no"
31 mp4_output="no"
32 pthread="no"
33 debug="no"
34 gprof="no"
35 vfw="no"
36 vis="no"
37
38 CC="gcc"
39 CFLAGS="-Wall -I. -O4 -ffast-math -D__X264__"
40 LDFLAGS=""
41 HAVE_GETOPT_LONG=1
42
43 AS="nasm"
44 ASFLAGS="-f elf"
45
46 EXE=""
47
48 UNAMES="`uname -s`"
49 case "$UNAMES" in
50   BeOS)
51     SYS="BEOS"
52     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
53     ;;
54   Darwin)
55     SYS="MACOSX"
56     CFLAGS="$CFLAGS -falign-loops=16"
57     LDFLAGS="$LDFLAGS -lm -lmx"
58     ;;
59   FreeBSD)
60     SYS="FREEBSD"
61     LDFLAGS="$LDFLAGS -lm"
62     ;;
63   NetBSD)
64     SYS="NETBSD"
65     LDFLAGS="$LDFLAGS -lm"
66     ;;
67   Linux)
68     SYS="LINUX"
69     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
70     LDFLAGS="$LDFLAGS -lm"
71     ;;
72   CYGWIN*)
73     SYS="CYGWIN"
74     CFLAGS="$CFLAGS -mno-cygwin"
75     LDFLAGS="$LDFLAGS -mno-cygwin"
76     ASFLAGS="-f win32 -DPREFIX"
77     EXE=".exe"
78     ;;
79   MINGW*)
80     SYS="MINGW"
81     ASFLAGS="-f win32 -DPREFIX"
82     EXE=".exe"
83     ;;
84   SunOS)
85     SYS="SunOS"
86     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
87     LDFLAGS="$LDFLAGS -lm"
88     HAVE_GETOPT_LONG=0
89     ;;
90   *)
91     echo "Unknown system $UNAMES, edit the configure"
92     exit 1
93     ;;
94 esac
95
96 UNAMEM="`uname -m`"
97 case "$UNAMEM" in
98   i386|i486|i586|i686|BePC)
99     ARCH="X86"
100     CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2"
101     ;;
102   x86_64)
103     ARCH="X86_64"
104     CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2"
105     AS="yasm"
106     ASFLAGS="-f elf -m amd64"
107     ;;
108   "Power Macintosh"|ppc)
109     ARCH="PPC"
110     if [ $SYS = MACOSX ]
111     then
112       CFLAGS="$CFLAGS -faltivec"
113     else
114       CFLAGS="$CFLAGS -maltivec -mabi=altivec"
115     fi
116     ;;
117   sun4m|sun4d|sparc|sparc64)
118     ARCH="Sparc"
119     ;;
120   sun4u)
121     ARCH="UltraSparc"
122     CFLAGS="$CFLAGS -mcpu=ultrasparc"
123     LDFLAGS="$LDFLAGS -mcpu=ultrasparc"
124     AS="as"
125     ASFLAGS="-xarch=v8plusa"
126     ;;
127   ia64)
128     ARCH="IA64"
129     ;;
130   mips|mipsel)
131     ARCH="MIPS"
132     ;;
133   m68k)
134     ARCH="M68K"
135     ;;
136   arm)
137     ARCH="ARM"
138     ;;
139   s390|s390x)
140     ARCH="S390"
141     ;;
142   parisc|parisc64)
143     ARCH="PARISC"
144     ;;
145   *)
146     echo "Unknown platform $UNAMEM, edit the configure"
147     exit 1
148     ;;
149 esac
150
151 CFLAGS="$CFLAGS -DARCH_$ARCH -DSYS_$SYS"
152
153 # parse options
154
155 for opt do
156     optarg="${opt#*=}"
157     case "$opt" in
158         --prefix=*)
159             prefix="$optarg"
160             ;;
161         --exec-prefix=*)
162             eprefix="$optarg"
163             ;;
164         --bindir=*)
165             bindir="$optarg"
166             ;;
167         --libdir=*)
168             libdir="$optarg"
169             ;;
170         --includedir=*)
171             includedir="$optarg"
172             ;;
173         --enable-avis-input)
174             if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
175                 CFLAGS="$CFLAGS -DAVIS_INPUT"
176                 LDFLAGS="$LDFLAGS -lvfw32"
177                 avis_input="yes"
178             fi
179             ;;
180         --enable-mp4-output)
181             CFLAGS="$CFLAGS -DMP4_OUTPUT"
182             LDFLAGS="$LDFLAGS -lgpac_static"
183             if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
184                 LDFLAGS="$LDFLAGS -lwinmm"
185             fi
186             mp4_output="yes"
187             ;;
188         --extra-asflags=*)
189             ASFLAGS="$ASFLAGS ${opt#--extra-asflags=}"
190             ;;
191         --extra-cflags=*)
192             CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
193             VFW_CFLAGS="${opt#--extra-cflags=}"
194             ;;
195         --extra-ldflags=*)
196             LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
197             VFW_LDFLAGS="${opt#--extra-ldflags=}"
198             ;;
199         --enable-pthread)
200             CFLAGS="$CFLAGS -DHAVE_PTHREAD=1"
201             pthread="yes"
202             case $SYS in
203               MINGW|CYGWIN|BEOS)
204                 ;;
205               *)
206                 LDFLAGS="$LDFLAGS -lpthread"
207                 ;;
208             esac
209             ;;
210         --enable-debug)
211             CFLAGS="$CFLAGS -g"
212             debug="yes"
213             ;;
214         --enable-gprof)
215             CFLAGS="$CFLAGS -pg"
216             LDFLAGS="$LDFLAGS -pg"
217             gprof="yes"
218             ;;
219         --enable-vfw)
220             vfw="yes"
221             ;;
222         --enable-visualize)
223             LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
224             CFLAGS="$CFLAGS -DVISUALIZE=1"
225             vis="yes"
226             ;;
227         *)
228             echo "Unknown option $opt, ignored"
229             ;;
230     esac
231 done
232
233 VFWFLAGS=
234 if [ "$debug" != "yes" -a "$gprof" != "yes" ]; then
235     CFLAGS="$CFLAGS -s -fomit-frame-pointer"
236     LDFLAGS="$LDFLAGS -s"
237     VFW_LDFLAGS="$VFW_LDFLAGS -s"
238 fi
239
240 rm -f config.mak
241 cat > config.mak << EOF
242 prefix=$prefix
243 eprefix=$eprefix
244 bindir=$bindir
245 libdir=$libdir
246 includedir=$includedir
247 ARCH=$ARCH
248 SYS=$SYS
249 CC=$CC
250 CFLAGS=$CFLAGS
251 LDFLAGS=$LDFLAGS
252 AS=$AS
253 ASFLAGS=$ASFLAGS
254 VFW=$vfw
255 EXE=$EXE
256 VIS=$vis
257 HAVE_GETOPT_LONG=$HAVE_GETOPT_LONG
258 EOF
259
260 if [ "$vfw" = "yes" ]; then
261     rm -f vfw/build/cygwin/config.mak
262     cat > vfw/build/cygwin/config.mak << EOF
263 CFLAGS=$VFW_CFLAGS
264 LDFLAGS=$VFW_LDFLAGS
265 EOF
266     echo "default: x264vfw.dll" >> config.mak
267 fi
268
269 echo "Platform:   $ARCH"
270 echo "System:     $SYS"
271 echo "avis input: $avis_input"
272 echo "mp4 output: $mp4_output"
273 echo "pthread:    $pthread"
274 echo "vfw:        $vfw"
275 echo "debug:      $debug"
276 echo "gprof:      $gprof"
277 echo "visualize:  $vis"
278 echo
279 echo "You can run 'make' now."
280