]> git.sesse.net Git - x264/blob - configure
tweak cflags
[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-visualize       enables visualization (X11 only)"
16 echo "  --extra-cflags=ECFLAGS   add ECFLAGS to CFLAGS"
17 echo "  --extra-ldflags=ELDFLAGS add ELDFLAGS to LDFLAGS"
18 echo ""
19 exit 1
20 fi
21
22 avis_input="no"
23 mp4_output="no"
24 pthread="no"
25 debug="no"
26 vfw="no"
27 vis="no"
28
29 CC="gcc"
30 CFLAGS="-Wall -I. -O4 -ffast-math -D__X264__"
31 LDFLAGS=""
32
33 AS="nasm"
34 ASFLAGS="-f elf"
35
36 EXE=""
37
38 UNAMES="`uname -s`"
39 case "$UNAMES" in
40   BeOS)
41     SYS="BEOS"
42     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
43     ;;
44   Darwin)
45     SYS="MACOSX"
46     CFLAGS="$CFLAGS -falign-loops=16"
47     LDFLAGS="$LDFLAGS -lm -lmx"
48     ;;
49   FreeBSD)
50     SYS="FREEBSD"
51     LDFLAGS="$LDFLAGS -lm"
52     ;;
53   Linux)
54     SYS="LINUX"
55     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
56     LDFLAGS="$LDFLAGS -lm"
57     ;;
58   CYGWIN*)
59     SYS="CYGWIN"
60     CFLAGS="$CFLAGS -mno-cygwin"
61     LDFLAGS="$LDFLAGS -mno-cygwin"
62     ASFLAGS="-f win32 -DPREFIX"
63     EXE=".exe"
64     ;;
65   MINGW*)
66     SYS="MINGW"
67     ASFLAGS="-f win32 -DPREFIX"
68     EXE=".exe"
69     ;;
70   *)
71     echo "Unknown system $UNAMES, edit the configure"
72     exit 1
73     ;;
74 esac
75
76 UNAMEM="`uname -m`"
77 case "$UNAMEM" in
78   i386|i486|i586|i686|BePC)
79     ARCH="X86"
80     CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2"
81     ;;
82   x86_64)
83     ARCH="X86_64"
84     CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2"
85     AS="yasm"
86     ASFLAGS="-f elf -m amd64"
87     ;;
88   "Power Macintosh"|ppc)
89     ARCH="PPC"
90     if [ $SYS = MACOSX ]
91     then
92       CFLAGS="$CFLAGS -faltivec"
93     else
94       CFLAGS="$CFLAGS -maltivec -mabi=altivec"
95     fi
96     ;;
97   *)
98     echo "Unknown platform $UNAMEM, edit the configure"
99     exit 1
100     ;;
101 esac
102
103 CFLAGS="$CFLAGS -DARCH_$ARCH -DSYS_$SYS"
104
105 # parse options
106
107 for opt do
108     case "$opt" in
109         --enable-avis-input)
110             if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
111                 CFLAGS="$CFLAGS -DAVIS_INPUT"
112                 LDFLAGS="$LDFLAGS -lvfw32"
113                 avis_input="yes"
114             fi
115             ;;
116         --enable-mp4-output)
117             CFLAGS="$CFLAGS -DMP4_OUTPUT"
118             LDFLAGS="$LDFLAGS -lm4systems_static"
119             if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
120                 LDFLAGS="$LDFLAGS -lwinmm"
121             fi
122             mp4_output="yes"
123             ;;
124         --extra-cflags=*)
125             CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
126             VFW_CFLAGS="${opt#--extra-cflags=}"
127             ;;
128         --extra-ldflags=*)
129             LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
130             VFW_LDFLAGS="${opt#--extra-ldflags=}"
131             ;;
132         --enable-pthread)
133             CFLAGS="$CFLAGS -DHAVE_PTHREAD=1"
134             pthread="yes"
135             case $SYS in
136               MINGW)
137                 LDFLAGS="$LDFLAGS -lpthreadGC2"
138                 ;;
139               BEOS)
140                 ;;
141               *)
142                 LDFLAGS="$LDFLAGS -lpthread"
143                 ;;
144             esac
145             ;;
146         --enable-debug)
147             CFLAGS="$CFLAGS -g"
148             debug="yes"
149             ;;
150         --enable-vfw)
151             vfw="yes"
152             ;;
153         --enable-visualize)
154             LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
155             CFLAGS="$CFLAGS -DVISUALIZE=1"
156             vis="yes"
157             ;;
158         *)
159             echo "Unknown option $opt, ignored"
160             ;;
161     esac
162 done
163
164 VFWFLAGS=
165 if [ "$debug" != "yes" ]; then
166     CFLAGS="$CFLAGS -s -fomit-frame-pointer"
167     LDFLAGS="$LDFLAGS -s"
168     VFW_LDFLAGS="$VFW_LDFLAGS -s"
169 fi
170
171 rm -f config.mak
172 cat > config.mak << EOF
173 ARCH=$ARCH
174 SYS=$SYS
175 CC=$CC
176 CFLAGS=$CFLAGS
177 LDFLAGS=$LDFLAGS
178 AS=$AS
179 ASFLAGS=$ASFLAGS
180 VFW=$vfw
181 EXE=$EXE
182 VIS=$vis
183 EOF
184
185 if [ "$vfw" = "yes" ]; then
186     rm -f vfw/build/cygwin/config.mak
187     cat > vfw/build/cygwin/config.mak << EOF
188 CFLAGS=$VFW_CFLAGS
189 LDFLAGS=$VFW_LDFLAGS
190 EOF
191     echo "default: x264vfw.dll" >> config.mak
192 fi
193
194 echo "Platform:   $ARCH"
195 echo "System:     $SYS"
196 echo "avis input: $avis_input"
197 echo "mp4 output: $mp4_output"
198 echo "pthread:    $pthread"
199 echo "vfw:        $vfw"
200 echo "debug:      $debug"
201 echo "visualize:  $vis"
202 echo
203 echo "You can run 'make' now."
204