]> git.sesse.net Git - x264/blob - configure
* x264 compilation on NetBSD. Patch by Mike Matsnev.
[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 prefix='/usr/local'
23 eprefix='${prefix}'
24 bindir='${eprefix}/bin'
25 libdir='${eprefix}/lib'
26 includedir='${prefix}/include'
27
28 avis_input="no"
29 mp4_output="no"
30 pthread="no"
31 debug="no"
32 vfw="no"
33 vis="no"
34
35 CC="gcc"
36 CFLAGS="-Wall -I. -O4 -ffast-math -D__X264__"
37 LDFLAGS=""
38 HAVE_GETOPT_LONG=1
39
40 AS="nasm"
41 ASFLAGS="-f elf"
42
43 EXE=""
44
45 UNAMES="`uname -s`"
46 case "$UNAMES" in
47   BeOS)
48     SYS="BEOS"
49     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
50     ;;
51   Darwin)
52     SYS="MACOSX"
53     CFLAGS="$CFLAGS -falign-loops=16"
54     LDFLAGS="$LDFLAGS -lm -lmx"
55     ;;
56   FreeBSD)
57     SYS="FREEBSD"
58     LDFLAGS="$LDFLAGS -lm"
59     ;;
60   NetBSD)
61     SYS="NETBSD"
62     LDFLAGS="$LDFLAGS -lm"
63     ;;
64   Linux)
65     SYS="LINUX"
66     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
67     LDFLAGS="$LDFLAGS -lm"
68     ;;
69   CYGWIN*)
70     SYS="CYGWIN"
71     CFLAGS="$CFLAGS -mno-cygwin"
72     LDFLAGS="$LDFLAGS -mno-cygwin"
73     ASFLAGS="-f win32 -DPREFIX"
74     EXE=".exe"
75     ;;
76   MINGW*)
77     SYS="MINGW"
78     ASFLAGS="-f win32 -DPREFIX"
79     EXE=".exe"
80     ;;
81   SunOS)
82     SYS="SunOS"
83     CFLAGS="$CFLAGS -DHAVE_MALLOC_H"
84     LDFLAGS="$LDFLAGS -lm"
85     HAVE_GETOPT_LONG=0
86     ;;
87   *)
88     echo "Unknown system $UNAMES, edit the configure"
89     exit 1
90     ;;
91 esac
92
93 UNAMEM="`uname -m`"
94 case "$UNAMEM" in
95   i386|i486|i586|i686|BePC)
96     ARCH="X86"
97     CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2"
98     ;;
99   x86_64)
100     ARCH="X86_64"
101     CFLAGS="$CFLAGS -DHAVE_MMXEXT -DHAVE_SSE2"
102     AS="yasm"
103     ASFLAGS="-f elf -m amd64"
104     ;;
105   "Power Macintosh"|ppc)
106     ARCH="PPC"
107     if [ $SYS = MACOSX ]
108     then
109       CFLAGS="$CFLAGS -faltivec"
110     else
111       CFLAGS="$CFLAGS -maltivec -mabi=altivec"
112     fi
113     ;;
114   sun4m|sun4d)
115     ARCH="Sparc"
116     ;;
117   sun4u)
118     ARCH="UltraSparc"
119     CFLAGS="$CFLAGS -mcpu=ultrasparc"
120     LDFLAGS="$LDFLAGS -mcpu=ultrasparc"
121     AS="as"
122     ASFLAGS="-xarch=v8plusa"
123     ;;
124   *)
125     echo "Unknown platform $UNAMEM, edit the configure"
126     exit 1
127     ;;
128 esac
129
130 CFLAGS="$CFLAGS -DARCH_$ARCH -DSYS_$SYS"
131
132 # parse options
133
134 for opt do
135     optarg="${opt#*=}"
136     case "$opt" in
137         --prefix=*)
138             prefix="$optarg"
139             ;;
140         --exec-prefix=*)
141             eprefix="$optarg"
142             ;;
143         --bindir=*)
144             bindir="$optarg"
145             ;;
146         --libdir=*)
147             libdir="$optarg"
148             ;;
149         --includedir=*)
150             includedir="$optarg"
151             ;;
152         --enable-avis-input)
153             if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
154                 CFLAGS="$CFLAGS -DAVIS_INPUT"
155                 LDFLAGS="$LDFLAGS -lvfw32"
156                 avis_input="yes"
157             fi
158             ;;
159         --enable-mp4-output)
160             CFLAGS="$CFLAGS -DMP4_OUTPUT"
161             LDFLAGS="$LDFLAGS -lm4systems_static"
162             if [ $SYS = CYGWIN -o $SYS = MINGW ]; then
163                 LDFLAGS="$LDFLAGS -lwinmm"
164             fi
165             mp4_output="yes"
166             ;;
167         --extra-cflags=*)
168             CFLAGS="$CFLAGS ${opt#--extra-cflags=}"
169             VFW_CFLAGS="${opt#--extra-cflags=}"
170             ;;
171         --extra-ldflags=*)
172             LDFLAGS="$LDFLAGS ${opt#--extra-ldflags=}"
173             VFW_LDFLAGS="${opt#--extra-ldflags=}"
174             ;;
175         --enable-pthread)
176             CFLAGS="$CFLAGS -DHAVE_PTHREAD=1"
177             pthread="yes"
178             case $SYS in
179               MINGW|CYGWIN|BEOS)
180                 ;;
181               *)
182                 LDFLAGS="$LDFLAGS -lpthread"
183                 ;;
184             esac
185             ;;
186         --enable-debug)
187             CFLAGS="$CFLAGS -g"
188             debug="yes"
189             ;;
190         --enable-vfw)
191             vfw="yes"
192             ;;
193         --enable-visualize)
194             LDFLAGS="$LDFLAGS -L/usr/X11R6/lib -lX11"
195             CFLAGS="$CFLAGS -DVISUALIZE=1"
196             vis="yes"
197             ;;
198         *)
199             echo "Unknown option $opt, ignored"
200             ;;
201     esac
202 done
203
204 VFWFLAGS=
205 if [ "$debug" != "yes" ]; then
206     CFLAGS="$CFLAGS -s -fomit-frame-pointer"
207     LDFLAGS="$LDFLAGS -s"
208     VFW_LDFLAGS="$VFW_LDFLAGS -s"
209 fi
210
211 rm -f config.mak
212 cat > config.mak << EOF
213 prefix=$prefix
214 eprefix=$eprefix
215 bindir=$bindir
216 libdir=$libdir
217 includedir=$includedir
218 ARCH=$ARCH
219 SYS=$SYS
220 CC=$CC
221 CFLAGS=$CFLAGS
222 LDFLAGS=$LDFLAGS
223 AS=$AS
224 ASFLAGS=$ASFLAGS
225 VFW=$vfw
226 EXE=$EXE
227 VIS=$vis
228 HAVE_GETOPT_LONG=$HAVE_GETOPT_LONG
229 EOF
230
231 if [ "$vfw" = "yes" ]; then
232     rm -f vfw/build/cygwin/config.mak
233     cat > vfw/build/cygwin/config.mak << EOF
234 CFLAGS=$VFW_CFLAGS
235 LDFLAGS=$VFW_LDFLAGS
236 EOF
237     echo "default: x264vfw.dll" >> config.mak
238 fi
239
240 echo "Platform:   $ARCH"
241 echo "System:     $SYS"
242 echo "avis input: $avis_input"
243 echo "mp4 output: $mp4_output"
244 echo "pthread:    $pthread"
245 echo "vfw:        $vfw"
246 echo "debug:      $debug"
247 echo "visualize:  $vis"
248 echo
249 echo "You can run 'make' now."
250