600
721
dev_video_bktr_ioctl_bt848_h
611
742
machine_ioctl_bt848_h
612
743
machine_ioctl_meteor_h
793
# code dependency declarations
795
# architecture extensions
796
altivec_deps="powerpc"
797
armv5te_deps="armv4l"
807
# decoders / encoders
808
ac3_decoder_deps="gpl"
809
dxa_decoder_deps="zlib"
647
810
flashsv_decoder_deps="zlib"
648
811
flashsv_encoder_deps="zlib"
649
812
mpeg_xvmc_decoder_deps="xvmc"
650
813
png_decoder_deps="zlib"
651
814
png_encoder_deps="zlib"
652
x264_encoder_deps="x264"
653
xvid_encoder_deps="xvid"
654
815
zmbv_decoder_deps="zlib"
655
816
zmbv_encoder_deps="zlib"
657
aac_decoder_deps="libfaad"
658
mpeg4aac_decoder_deps="libfaad"
659
amr_nb_decoder_deps_any="amr_nb amr_nb_fixed"
660
amr_nb_encoder_deps_any="amr_nb amr_nb_fixed"
661
amr_wb_decoder_deps="amr_wb"
662
amr_wb_encoder_deps="amr_wb"
663
dts_decoder_deps="libdts"
664
faac_encoder_deps="libfaac"
665
819
liba52_decoder_deps="liba52"
820
liba52bin_decoder_extralibs='$ldl'
821
libamr_nb_decoder_deps="libamr_nb"
822
libamr_nb_encoder_deps="libamr_nb"
823
libamr_wb_decoder_deps="libamr_wb"
824
libamr_wb_encoder_deps="libamr_wb"
825
libfaac_encoder_deps="libfaac"
826
libfaad_decoder_deps="libfaad"
827
libfaadbin_decoder_extralibs='$ldl'
666
828
libgsm_decoder_deps="libgsm"
667
829
libgsm_encoder_deps="libgsm"
668
830
libgsm_ms_decoder_deps="libgsm"
669
831
libgsm_ms_encoder_deps="libgsm"
832
libmp3lame_encoder_deps="libmp3lame"
670
833
libtheora_encoder_deps="libtheora"
671
mp3lame_encoder_deps="libmp3lame"
672
oggvorbis_decoder_deps="libvorbis"
673
oggvorbis_encoder_deps="libvorbis"
834
libvorbis_encoder_deps="libvorbis"
835
libx264_encoder_deps="libx264"
836
libxvid_encoder_deps="libxvid"
837
mpeg4aac_decoder_deps="libfaad"
675
audio_demuxer_deps_any="audio_oss audio_beos"
676
audio_muxer_deps_any="audio_oss audio_beos"
677
dc1394_demuxer_deps="dc1394"
678
dv1394_demuxer_deps="dv1394"
840
ac3_demuxer_deps="ac3_parser"
841
audio_beos_demuxer_deps="audio_beos"
842
audio_beos_demuxer_extralibs="-lmedia -lbe"
843
audio_beos_muxer_deps="audio_beos"
844
audio_beos_muxer_extralibs="-lmedia -lbe"
845
avisynth_demuxer_deps="avisynth"
846
bktr_demuxer_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr_ioctl_bt848_h dev_ic_bt8xx_h"
847
dv1394_demuxer_deps="dv1394 dv_demuxer"
848
libdc1394_demuxer_deps="libdc1394"
680
849
libnut_demuxer_deps="libnut"
681
850
libnut_muxer_deps="libnut"
682
ogg_muxer_deps="libogg"
851
mp3_demuxer_deps="mpegaudio_parser"
852
oss_demuxer_deps_any="soundcard_h sys_soundcard_h"
853
oss_muxer_deps_any="soundcard_h sys_soundcard_h"
683
854
redir_demuxer_deps="network"
684
rtp_muxer_deps="network"
685
rtsp_demuxer_deps="network"
686
sdp_demuxer_deps="network"
687
v4l2_demuxer_deps="v4l2"
688
video_grab_device_demuxer_deps_any="v4l bktr"
689
x11_grab_device_demuxer_deps="x11grab"
855
rtp_muxer_deps="network rtp_protocol"
856
rtsp_demuxer_deps="sdp_demuxer"
857
sdp_demuxer_deps="rtp_protocol mpegts_demuxer"
858
v4l_demuxer_deps="linux_videodev_h"
859
v4l2_demuxer_deps="linux_videodev2_h"
860
vfwcap_demuxer_deps="capCreateCaptureWindow"
861
vfwcap_demuxer_extralibs="-lvfw32"
862
x11_grab_device_demuxer_deps="x11grab XShmCreateImage"
863
x11_grab_device_demuxer_extralibs="-lX11 -lXext"
866
http_protocol_deps="network"
867
rtp_protocol_deps="udp_protocol"
868
tcp_protocol_deps="network"
869
udp_protocol_deps="network"
872
movie_filter_deps="avfilter_lavf"
691
875
ffplay_deps="sdl"
692
ffserver_deps="network protocols muxers"
693
network_deps="protocols"
695
# set temporary file name
696
if test ! -z "$TMPDIR" ; then
698
elif test ! -z "$TEMPDIR" ; then
704
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
705
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
706
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}"
707
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
708
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
876
ffserver_deps="ffm_muxer rtp_protocol rtsp_demuxer"
877
ffserver_extralibs='$ldl'
878
vhook_extralibs='$ldl'
710
881
# default parameters
713
883
logfile="config.err"
715
885
# installation paths
717
libdir='${PREFIX}/lib'
887
libdir='$(PREFIX)/lib'
718
888
shlibdir="$libdir"
719
incdir='${PREFIX}/include/ffmpeg'
720
mandir='${PREFIX}/man'
721
bindir='${PREFIX}/bin'
889
incdir='$(PREFIX)/include'
890
mandir='$(PREFIX)/share/man'
891
bindir='$(PREFIX)/bin'
731
899
asmalign_pot="unknown"
754
# non-library system interfaces
907
target_os=$(tolower $(uname -s))
790
912
# configurable options
819
SHFLAGS='-shared -Wl,-soname,$@'
927
SHFLAGS='-shared -Wl,-soname,$$(@F)'
820
928
VHOOKSHFLAGS='$(SHFLAGS)'
822
FFLDFLAGS=-Wl,--warn-common
823
929
LDLATEFLAGS='-Wl,-rpath-link,\$(BUILD_ROOT)/libavcodec -Wl,-rpath-link,\$(BUILD_ROOT)/libavformat -Wl,-rpath-link,\$(BUILD_ROOT)/libavutil'
824
930
FFSERVERLDFLAGS=-Wl,-E
828
LIB='$(LIBPREF)$(NAME)$(LIBSUF)'
933
FULLNAME='$(NAME)$(BUILDSUF)'
934
LIBNAME='$(LIBPREF)$(FULLNAME)$(LIBSUF)'
831
SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF)'
937
SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF)'
832
938
SLIBNAME_WITH_VERSION='$(SLIBNAME).$(LIBVERSION)'
833
939
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
836
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(libdir)/$(LIB)"'
940
LIB_INSTALL_EXTRA_CMD='$(RANLIB) "$(LIBDIR)/$(LIBNAME)"'
942
# gcc stupidly only outputs the basename of targets with -MM
943
DEPEND_CMD='$(CC) $(CFLAGS) -MM -MG $< | sed "1s,^,$(@D)/,"'
838
945
# find source path
839
946
source_path="`dirname \"$0\"`"
840
source_path_used="yes"
947
enable source_path_used
841
948
if test -z "$source_path" -o "$source_path" = "." ; then
842
949
source_path="`pwd`"
843
source_path_used="no"
950
disable source_path_used
845
952
source_path="`cd \"$source_path\"; pwd`"
846
953
echo "$source_path" | grep -q '[[:blank:]]' &&
847
die "Out of tree builds are impossible with whitespace in source path."
850
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
954
die "Out of tree builds are impossible with whitespace in source path."
854
957
FFMPEG_CONFIGURATION="$@"
856
ENCODER_LIST=`sed -n 's/^[^#]*ENC.*, *\(.*\)).*/\1_encoder/p' "$source_path/libavcodec/allcodecs.c"`
857
DECODER_LIST=`sed -n 's/^[^#]*DEC.*, *\(.*\)).*/\1_decoder/p' "$source_path/libavcodec/allcodecs.c"`
858
PARSER_LIST=`sed -n 's/^[^#]*PARSER.*, *\(.*\)).*/\1_parser/p' "$source_path/libavcodec/allcodecs.c"`
859
MUXER_LIST=`sed -n 's/^[^#]*_MUX.*, *\(.*\)).*/\1_muxer/p' "$source_path/libavformat/allformats.c"`
860
DEMUXER_LIST=`sed -n 's/^[^#]*DEMUX.*, *\(.*\)).*/\1_demuxer/p' "$source_path/libavformat/allformats.c"`
862
enable $ENCODER_LIST $DECODER_LIST $PARSER_LIST $MUXER_LIST $DEMUXER_LIST
963
sed -n "s/^[^#]*$pattern.*([^,]*, *\([^,]*\)\(,.*\)*).*/\1_$thing/p" "$file"
966
ENCODER_LIST=$(find_things encoder ENC libavcodec/allcodecs.c)
967
DECODER_LIST=$(find_things decoder DEC libavcodec/allcodecs.c)
968
PARSER_LIST=$(find_things parser PARSER libavcodec/allcodecs.c)
969
BSF_LIST=$(find_things bsf BSF libavcodec/allcodecs.c)
970
MUXER_LIST=$(find_things muxer _MUX libavformat/allformats.c)
971
DEMUXER_LIST=$(find_things demuxer DEMUX libavformat/allformats.c)
972
OUTDEV_LIST=$(find_things muxer _MUX libavdevice/alldevices.c)
973
INDEV_LIST=$(find_things demuxer DEMUX libavdevice/alldevices.c)
974
PROTOCOL_LIST=$(find_things protocol PROTOCOL libavformat/allformats.c)
975
FILTER_LIST=$(find_things filter FILTER libavfilter/allfilters.c)
977
enable $ARCH_EXT_LIST \
865
990
echo "Unknown option \"$1\"."
998
echo $* | sed s/$suffix//g | tr ' ' '\n' | sort
875
--log=*) logging="$optval"
877
--prefix=*) PREFIX="$optval"
879
--libdir=*) libdir="$optval"
881
--shlibdir=*) shlibdir="$optval"
883
--incdir=*) incdir="$optval"
885
--mandir=*) mandir="$optval"
887
--source-path=*) source_path="$optval"
889
--cross-prefix=*) cross_prefix="$optval"
891
--cross-compile) cross_compile="yes"
893
--target-os=*) targetos="$optval"
897
--make=*) make="$optval"
899
--extra-cflags=*) add_cflags "$optval"
901
--extra-ldflags=*) add_ldflags "$optval"
903
--extra-libs=*) add_extralibs "$optval"
905
--build-suffix=*) BUILDSUF="$optval"
907
--arch=*) arch="$optval"
909
--cpu=*) cpu="$optval"
911
--enable-mingwce) wince="yes"
913
--disable-opts) optimize="no"
915
--enable-small) optimize="small"
917
--enable-sunmlib) mlib="yes"
919
--disable-strip) dostrip="no"
921
--disable-encoders) disable $ENCODER_LIST
923
--disable-decoders) disable $DECODER_LIST
925
--disable-muxers) disable $MUXER_LIST
927
--disable-demuxers) disable $DEMUXER_LIST
929
--disable-parsers) disable $PARSER_LIST
931
--enable-*=*|--disable-*=*)
932
eval `echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/'`
934
encoder|decoder|muxer|demuxer|parser) $action ${optval}_${thing} ;;
935
*) die_unknown "$opt" ;;
938
--enable-?*|--disable-?*)
939
eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
940
echo "$CMDLINE_SELECT" | grep -q "^ *$option\$" || die_unknown $opt
1005
--extra-cflags=*) add_cflags "$optval"
1007
--extra-ldflags=*) add_ldflags "$optval"
1009
--extra-libs=*) add_extralibs "$optval"
1011
--disable-devices) disable $INDEV_LIST $OUTDEV_LIST
1013
--enable-debug=*) debuglevel="$optval"
1015
--enable-*=*|--disable-*=*)
1016
eval `echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/'`
1018
encoder|decoder|muxer|demuxer|parser|bsf|protocol|filter) $action ${optval}_${thing} ;;
1019
*) die_unknown "$opt" ;;
1022
--enable-?*|--disable-?*)
1023
eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'`
1024
if is_in $option $COMPONENT_LIST; then
1025
eval $action \$$(toupper ${option%s})_LIST
1026
elif is_in $option $CMDLINE_SELECT; then
1033
NAME="${opt#--list-}"
1034
is_in $NAME $COMPONENT_LIST || die_unknown $opt
1036
eval show_list $NAME \$$(toupper $NAME)_LIST
1038
--help|-h) show_help
1042
optname="${optname#--}"
1043
optname=$(echo "$optname" | sed 's/-/_/g')
1044
is_in $optname $CMDLINE_SET || die_unknown $opt
1045
eval $optname='$optval'
952
i386|i486|i586|i686|i86pc|BePC)
957
canon_arch="`$cc -dumpmachine | sed -e 's,\([^-]*\)-.*,\1,'`"
958
if [ x"$canon_arch" = x"x86_64" -o x"$canon_arch" = x"amd64" ]; then
959
if [ -z "`echo $CFLAGS | grep -- -m32`" ]; then
965
# armv4l is a subset of armv[567]*l
973
"Power Macintosh"|ppc|powerpc)
1020
case `tolower $targetos` in
1022
PREFIX="$HOME/config"
1023
# helps building libavcodec
1024
add_cflags "-DPIC -fomit-frame-pointer"
1025
# 3 gcc releases known for BeOS, each with ugly bugs
1026
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
1027
case "$gcc_version" in
1028
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
1031
*20010315*) echo "BeBits gcc"
1032
add_cflags "-fno-expensive-optimizations"
1035
LDCONFIG="echo ignoring ldconfig"
1037
# disable Linux things
1039
# enable BeOS things
1040
disabled audio_beos || enable_audio_beos
1041
# no need for libm, but the inet stuff
1043
# XXX: actually should check for NOT net_server
1044
if (echo $BEINCLUDES|grep 'headers/be/bone' >/dev/null); then
1045
osextralibs="-lbind -lsocket"
1047
beos_netserver="yes"
1054
SHFLAGS="-shared -Wl,-h,\$@"
1055
add_extralibs "-lsocket -lnsl"
1059
add_extralibs "-lossaudio"
1064
LIBOBJFLAGS="\$(PIC)"
1065
LDCONFIG="ldconfig -m \$(shlibdir)"
1067
SLIBNAME='$(SLIBPREF)$(NAME)$(SLIBSUF).$(LIBVERSION)'
1068
SLIBNAME_WITH_VERSION='$(SLIBNAME)'
1069
SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
1070
add_extralibs "-lossaudio"
1075
add_cflags "-pthread"
1079
add_cflags "-pthread"
1083
osextralibs="-lpoll -lgnugetopt -lm"
1090
SHFLAGS="-dynamiclib -Wl,-single_module -Wl,-install_name,\$(shlibdir)/\$(SLIBNAME),-current_version,\$(SPPVERSION),-compatibility_version,\$(SPPVERSION) -Wl,-read_only_relocs,suppress"
1091
VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(shlibdir)/vhook/$@'
1094
FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
1096
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME).$(LIBVERSION)$(SLIBSUF)'
1097
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME).$(LIBMAJOR)$(SLIBSUF)'
1098
FFSERVERLDFLAGS=-Wl,-bind_at_load
1101
if enabled_all shared static; then
1103
You can only build one library type at once on MinGW.
1104
Specify --disable-static --enable-shared to only build
1105
the shared libraries. To build only the static libraries
1106
you do not need to pass additional options.
1113
if enabled wince; then
1119
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
1120
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
1121
SLIB_EXTRA_CMD="-lib /machine:i386 /def:\$(@:${SLIBSUF}=.def)"
1122
SLIB_INSTALL_EXTRA_CMD="-install -m 644 \$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib) \"\$(shlibdir)/\$(SLIBNAME_WITH_MAJOR:\$(SLIBSUF)=.lib)\""
1123
SHFLAGS="-shared -Wl,--output-def,\$(@:${SLIBSUF}=.def),--out-implib,lib\$(SLIBNAME:\$(SLIBSUF)=.dll.a) -Wl,--enable-runtime-pseudo-reloc"
1124
add_extralibs -lws2_32
1130
VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libswscale -L$(BUILD_ROOT)/libavutil'
1131
VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lswscale$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
1136
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
1137
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(NAME)-$(LIBMAJOR)$(SLIBSUF)'
1138
SHFLAGS='-shared -Wl,--out-implib=lib$(NAME).dll.a'
1141
LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
1145
ranlib="echo ignoring ranlib"
1150
ranlib="echo ignoring ranlib"
1151
strip="echo ignoring strip"
1153
FFLDFLAGS="-Zomf -Zstack 16384 -s"
1154
SHFLAGS="-Zdll -Zomf"
1169
targetos="${targetos}-UNKNOWN"
1053
prefix="$HOME/config"
1054
# helps building libavcodec
1055
add_cflags "-DPIC -fomit-frame-pointer"
1056
# 3 gcc releases known for BeOS, each with ugly bugs
1057
gcc_version="`$cc -v 2>&1 | grep version | cut -d ' ' -f3-`"
1058
case "$gcc_version" in
1059
2.9-beos-991026*|2.9-beos-000224*) echo "R5/GG gcc"
1062
*20010315*) echo "BeBits gcc"
1063
add_cflags "-fno-expensive-optimizations"
1067
# enable BeOS things
1069
# no need for libm, but the inet stuff
1071
# XXX: actually should check for NOT net_server
1072
if echo $BEINCLUDES | grep -q 'headers/be/bone'; then
1073
network_extralibs="-lbind -lsocket"
1075
enable beos_netserver
1076
network_extralibs="-lnet"
1080
SHFLAGS='-shared -Wl,-h,$$(@F)'
1081
network_extralibs="-lsocket -lnsl"
1084
oss_demuxer_extralibs="-lossaudio"
1085
oss_muxer_extralibs="-lossaudio"
1088
disable need_memalign
1089
LIBOBJFLAGS='$(PIC)'
1091
SLIBNAME='$(SLIBPREF)$(FULLNAME)$(SLIBSUF).$(LIBVERSION)'
1092
SLIBNAME_WITH_VERSION='$(SLIBNAME)'
1093
SLIBNAME_WITH_MAJOR='$(SLIBNAME)'
1094
oss_demuxer_extralibs="-lossaudio"
1095
oss_muxer_extralibs="-lossaudio"
1098
disable need_memalign
1101
osextralibs="-lpoll -lgnugetopt"
1105
disable need_memalign
1106
SHFLAGS='-dynamiclib -Wl,-single_module -Wl,-install_name,$(SHLIBDIR)/$(SLIBNAME),-current_version,$(LIBVERSION),-compatibility_version,$(LIBMAJOR) -Wl,-read_only_relocs,suppress'
1107
VHOOKSHFLAGS='-dynamiclib -Wl,-single_module -flat_namespace -undefined suppress -Wl,-install_name,$(SHLIBDIR)/vhook/$$(@F)'
1109
FFLDFLAGS="-Wl,-dynamic,-search_paths_first"
1111
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
1112
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)'
1113
FFSERVERLDFLAGS=-Wl,-bind_at_load
1118
VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
1119
VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
1120
if enabled swscale; then
1121
VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
1122
VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
1128
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
1129
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
1130
SLIB_EXTRA_CMD='-lib /machine:i386 /def:$$(@:$(SLIBSUF)=.def)'
1131
SLIB_INSTALL_EXTRA_CMD='-install -m 644 $(SUBDIR)$(SLIBNAME_WITH_MAJOR:$(SLIBSUF)=.lib) "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
1132
SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(SHLIBDIR)/$(SLIBNAME:$(SLIBSUF)=.lib)"'
1133
SHFLAGS='-shared -Wl,--output-def,$$(@:$(SLIBSUF)=.def) -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-image-base'
1138
VHOOKSHFLAGS='-shared -L$(BUILD_ROOT)/libavformat -L$(BUILD_ROOT)/libavcodec -L$(BUILD_ROOT)/libavutil'
1139
VHOOKLIBS='-lavformat$(BUILDSUF) -lavcodec$(BUILDSUF) -lavutil$(BUILDSUF) $(EXTRALIBS)'
1140
if enabled swscale; then
1141
VHOOKSHFLAGS="$VHOOKSHFLAGS -L\$(BUILD_ROOT)/libswscale"
1142
VHOOKLIBS="$VHOOKLIBS -lswscale\$(BUILDSUF)"
1147
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME)-$(LIBVERSION)$(SLIBSUF)'
1148
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
1149
SHFLAGS='-shared -Wl,--enable-auto-image-base'
1151
*-dos|freedos|opendos)
1152
disable ffplay ffserver vhook
1153
disable $INDEV_LIST $OUTDEV_LIST
1154
network_extralibs="-lsocket"
1158
LDLATEFLAGS="-Wl,--as-needed $LDLATEFLAGS"
1163
ranlib="echo ignoring ranlib"
1169
FFLDFLAGS="-Zomf -Zbin-files -Zargs-wild -Zmap"
1170
SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
1175
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(NAME)-$(LIBVERSION)$(SLIBSUF)'
1176
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(shell echo $(NAME) | cut -c1-6)$(LIBMAJOR)$(SLIBSUF)'
1177
SLIB_CREATE_DEF_CMD='echo LIBRARY $(SLIBNAME_WITH_MAJOR) INITINSTANCE TERMINSTANCE > $(SUBDIR)$(NAME).def; \
1178
echo PROTMODE >> $(SUBDIR)$(NAME).def; \
1179
echo CODE PRELOAD MOVEABLE DISCARDABLE >> $(SUBDIR)$(NAME).def; \
1180
echo DATA PRELOAD MOVEABLE MULTIPLE NONSHARED >> $(SUBDIR)$(NAME).def; \
1181
echo EXPORTS >> $(SUBDIR)$(NAME).def; \
1182
emxexp -o $(OBJS) >> $(SUBDIR)$(NAME).def'
1183
SLIB_EXTRA_CMD='emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(NAME).def; \
1184
emximp -o $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib $(SUBDIR)$(NAME).def;'
1185
SLIB_INSTALL_EXTRA_CMD='install -m 644 $(SUBDIR)$(LIBPREF)$(NAME)_dll.a $(SUBDIR)$(LIBPREF)$(NAME)_dll.lib "$(LIBDIR)"'
1186
SLIB_UNINSTALL_EXTRA_CMD='rm -f "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.a "$(LIBDIR)"/$(LIBPREF)$(NAME)_dll.lib'
1194
target_os="${target_os}-UNKNOWN"
1198
# set temporary file name
1199
if test ! -z "$TMPDIR" ; then
1201
elif test ! -z "$TEMPDIR" ; then
1202
TMPDIR1="${TEMPDIR}"
1207
TMPC="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.c"
1208
TMPE="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}${EXESUF}"
1209
TMPH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.h"
1210
TMPO="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.o"
1211
TMPS="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.S"
1212
TMPSH="${TMPDIR1}/ffmpeg-conf-${RANDOM}-$$-${RANDOM}.sh"
1173
1215
add_extralibs $osextralibs
1175
if ! disabled logging ; then
1176
enabled logging || logfile="$logging"
1177
echo "# $0 $@" >$logfile
1217
disabled logging && logfile=/dev/null
1219
echo "# $0 $@" >$logfile
1223
i386|i486|i586|i686|i86pc|BePC)
1225
enable fast_unaligned
1229
enable fast_unaligned
1230
check_cc <<EOF && enable fast_64bit && arch="x86_64"
1231
int test[sizeof(char*) - 7];
1234
# armv4l is a subset of armv[567]*l
1242
"Power Macintosh"|ppc|powerpc)
1288
enabled_any x86_32 x86_64 && enable x86
1289
enabled sparc64 && enable sparc
1183
1291
# Combine FFLDFLAGS and the LDFLAGS environment variable.
1184
1292
LDFLAGS="$FFLDFLAGS $LDFLAGS"
1186
test -n "$cross_prefix" && cross_compile=yes
1294
test -n "$cross_prefix" && enable cross_compile
1187
1295
cc="${cross_prefix}${cc}"
1188
1296
ar="${cross_prefix}${ar}"
1297
nm="${cross_prefix}${nm}"
1189
1298
ranlib="${cross_prefix}${ranlib}"
1190
1299
strip="${cross_prefix}${strip}"
1192
1301
# we need to build at least one lib type
1193
if disabled_all static shared; then
1302
if ! enabled_any static shared; then
1195
1304
At least one library type must be built.
1196
1305
Specify --enable-static to build the static libraries or --enable-shared to
1438
# check armv5te instructions support
1439
if test $armv5te = "default" -a $arch = "armv4l"; then
1441
check_cc <<EOF && armv5te=yes
1443
__asm__ __volatile__ ("qadd r0, r0, r0");
1448
if test $armv6 = "default" -a $arch = "armv4l"; then
1449
check_cc <<EOF && armv6=yes || armv6=no
1451
__asm__ __volatile__ ("sadd16 r0, r0, r0");
1456
# check iwmmxt support
1457
if test $iwmmxt = "default" -a $arch = "armv4l"; then
1459
check_cc <<EOF && iwmmxt=yes
1461
__asm__ __volatile__ ("wunpckelub wr6, wr4");
1466
# mmi only available on mips
1467
if test $mmi = "default"; then
1468
if test $arch = "mips"; then
1475
# check if our compiler supports mmi
1476
enabled mmi && check_cc <<EOF || mmi="no"
1478
__asm__ ("lq \$2, 0(\$2)");
1530
# We have to check if pld is a nop and disable it.
1531
enabled armv4l && check_asm pld '"pld [r0]"'
1532
enabled armv5te && check_asm armv5te '"qadd r0, r0, r0"'
1533
enabled armv6 && check_asm armv6 '"sadd16 r0, r0, r0"'
1534
enabled armvfp && check_asm armvfp '"fadds s0, s0, s0"'
1535
enabled iwmmxt && check_asm iwmmxt '"wunpckelub wr6, wr4"'
1536
enabled mmi && check_asm mmi '"lq $2, 0($2)"'
1537
enabled vis && check_asm vis '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc
1539
enabled vis && add_cflags "-mcpu=ultrasparc -mtune=ultrasparc"
1484
1542
# big/little-endian test
1485
if disabled cross_compile; then
1486
check_ld <<EOF || die "endian test failed" && $TMPE && bigendian="yes"
1487
#include <inttypes.h>
1488
int main(int argc, char ** argv){
1489
volatile uint32_t i=0x01234567;
1490
return (*((uint8_t*)(&i))) == 0x67;
1543
check_cc <<EOF || die "endian test failed"
1544
unsigned int endian = 'B' << 24 | 'I' << 16 | 'G' << 8 | 'E';
1494
# programs cannot be launched if cross compiling, so make a static guess
1495
if test "$arch" = "powerpc" -o "$arch" = "mips" ; then
1546
od -A n -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
1501
1549
# check availability of some header files
1551
if check_func dlopen; then
1553
elif check_func dlopen -ldl; then
1558
check_func gethrtime
1559
check_func getrusage
1560
check_func inet_aton $network_extralibs
1563
check_func2 windows.h GetProcessTimes
1565
check_header byteswap.h
1566
check_header conio.h
1567
check_header dlfcn.h
1503
1568
check_header malloc.h
1569
check_header sys/mman.h
1570
check_header termios.h
1506
if disabled_all memalign memalign_hack && enabled need_memalign ; then
1572
if ! enabled_any memalign memalign_hack && enabled need_memalign ; then
1507
1573
die "Error, no memalign() but SSE enabled, disable it or use --enable-memalign-hack."
1510
check_header byteswap.h
1512
check_func inet_aton
1513
check_func localtime_r
1514
enabled zlib && check_lib zlib.h zlibVersion -lz || zlib="no"
1576
enabled zlib && check_lib zlib.h zlibVersion -lz || disable zlib
1516
1578
# ffserver uses poll(),
1517
1579
# if it's not found we can emulate it using select().
1518
1580
if enabled ffserver; then
1519
check_header sys/poll.h
1582
check_header sys/select.h
1522
1585
# check for some common methods of building with pthread support
1644
1705
texi2html -version >/dev/null 2>&1 && enable texi2html || disable texi2html
1707
check_type sys/socket.h socklen_t
1709
##########################################
1712
if enabled network; then
1713
# Prefer arpa/inet.h over winsock2
1714
if check_header arpa/inet.h ; then
1715
check_func closesocket
1716
elif check_header winsock2.h ; then
1717
network_extralibs="-lws2_32"
1718
check_type ws2tcpip.h socklen_t
1719
check_func2 winsock2.h closesocket
1646
1723
##########################################
1649
enabled network && enabled ipv6 && check_ld <<EOF && ipv6=yes || ipv6=no
1726
enabled network && enabled ipv6 && check_ld <<EOF && enable ipv6 || disable ipv6
1650
1727
#include <sys/types.h>
1651
1728
#include <sys/socket.h>
1652
1729
#include <netinet/in.h>
1653
1730
#include <netdb.h>
1655
struct sockaddr_storage saddr;
1656
struct ipv6_mreq mreq6;
1657
getaddrinfo(0,0,0,0);
1658
getnameinfo(0,0,0,0,0,0,0);
1659
IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
1732
struct sockaddr_storage saddr;
1733
struct ipv6_mreq mreq6;
1734
getaddrinfo(0,0,0,0);
1735
getnameinfo(0,0,0,0,0,0,0);
1736
IN6_IS_ADDR_MULTICAST((const struct in6_addr *)0);
1663
enabled v4l && check_header linux/videodev.h || disable v4l
1664
enabled v4l2 && check_header linux/videodev2.h || disable v4l2
1740
check_header linux/videodev.h
1741
check_header linux/videodev2.h
1743
check_func2 "windows.h vfw.h" capCreateCaptureWindow -lvfw32
1666
1745
# check for ioctl_meteor.h, ioctl_bt848.h and alternatives
1667
if enabled bktr; then
1668
{ check_header dev/bktr/ioctl_meteor.h &&
1669
check_header dev/bktr/ioctl_bt848.h; } ||
1670
{ check_header machine/ioctl_meteor.h &&
1671
check_header machine/ioctl_bt848.h; } ||
1672
{ check_header dev/video/meteor/ioctl_meteor.h &&
1673
check_header dev/video/bktr/ioctl_bt848.h; } ||
1674
check_header dev/ic/bt8xx.h ||
1678
enabled audio_oss &&
1679
check_header sys/soundcard.h ||
1680
check_header soundcard.h ||
1683
# Deal with the x11 frame grabber
1746
{ check_header dev/bktr/ioctl_meteor.h &&
1747
check_header dev/bktr/ioctl_bt848.h; } ||
1748
{ check_header machine/ioctl_meteor.h &&
1749
check_header machine/ioctl_bt848.h; } ||
1750
{ check_header dev/video/meteor/ioctl_meteor.h &&
1751
check_header dev/video/bktr/ioctl_bt848.h; } ||
1752
check_header dev/ic/bt8xx.h
1754
check_header sys/soundcard.h
1755
check_header soundcard.h
1757
# deal with the X11 frame grabber
1684
1758
enabled x11grab &&
1686
enabled x11_grab_device_demuxer &&
1687
1759
check_header X11/Xlib.h &&
1688
1760
check_header X11/extensions/XShm.h &&
1689
1761
check_func XOpenDisplay -lX11 &&
1690
check_func XShmCreateImage -lX11 -lXext &&
1691
add_extralibs -lX11 -lXext ||
1692
disable x11_grab_device_demuxer
1762
check_func XShmCreateImage -lX11 -lXext
1694
enabled debug && add_cflags -g
1764
enabled debug && add_cflags -g"$debuglevel"
1696
1766
# add some useful compiler flags if supported
1697
1767
check_cflags -Wdeclaration-after-statement
1733
1810
add_ldflags "-p"
1736
VHOOKCFLAGS="-fPIC $CFLAGS"
1737
enabled needmdynamicnopic && add_cflags -mdynamic-no-pic
1739
# find if .align arg is power-of-two or not
1815
# Find out if the .align argument is a power of two or not.
1740
1816
if test $asmalign_pot = "unknown"; then
1742
echo 'asm (".align 3");' | check_cc && asmalign_pot="yes"
1817
disable asmalign_pot
1818
echo 'asm (".align 3");' | check_cc && enable asmalign_pot
1745
enabled_any $ENCODER_LIST && enable encoders
1746
enabled_any $DECODER_LIST && enable decoders
1747
enabled_any $MUXER_LIST && enable muxers
1748
enabled_any $DEMUXER_LIST && enable demuxers
1750
enabled_any $THREADS_LIST && enable threads
1752
check_deps $CONFIG_LIST $HAVE_LIST $DECODER_LIST $ENCODER_LIST $PARSER_LIST \
1753
$DEMUXER_LIST $MUXER_LIST
1755
enabled libogg && append pkg_requires "ogg >= 1.1"
1821
enabled_any $DECODER_LIST && enable decoders
1822
enabled_any $ENCODER_LIST && enable encoders
1823
enabled_any $BSF_LIST && enable bsfs
1824
enabled_any $DEMUXER_LIST && enable demuxers
1825
enabled_any $MUXER_LIST && enable muxers
1826
enabled_any $FILTER_LIST && enable filters
1827
enabled_any $INDEV_LIST && enable demuxers
1828
enabled_any $OUTDEV_LIST && enable muxers
1829
enabled_any $PROTOCOL_LIST && enable protocols
1831
enabled_any $THREADS_LIST && enable threads
1833
check_deps $CONFIG_LIST \
1846
enabled libdc1394 && append pkg_requires "libraw1394"
1756
1847
enabled libtheora && append pkg_requires "theora"
1757
enabled libvorbis && append pkg_requires "vorbis vorbisenc"
1758
enabled dc1394 && append pkg_requires "libraw1394"
1848
enabled libvorbis && append pkg_requires "vorbisenc"
1760
echo "install prefix $PREFIX"
1850
echo "install prefix $prefix"
1761
1851
echo "source path $source_path"
1762
1852
echo "C compiler $cc"
1764
1853
echo ".align is power-of-two $asmalign_pot"
1765
1854
echo "ARCH $arch ($cpu)"
1766
if test "$BUILDSUF" != ""; then
1767
echo "build suffix $BUILDSUF"
1855
if test "$build_suffix" != ""; then
1856
echo "build suffix $build_suffix"
1769
echo "big-endian $bigendian"
1858
echo "big-endian ${bigendian-no}"
1770
1859
if test $arch = "x86_32" -o $arch = "x86_64"; then
1771
echo "MMX enabled $mmx"
1772
echo "CMOV enabled $cmov"
1773
echo "CMOV is fast $fast_cmov"
1860
echo "MMX enabled ${mmx-no}"
1861
echo "CMOV enabled ${cmov-no}"
1862
echo "CMOV is fast ${fast_cmov-no}"
1863
echo "EBX available ${ebx_available-no}"
1864
echo "EBP available ${ebp_available-no}"
1775
1866
if test $arch = "armv4l"; then
1776
echo "ARMv5TE enabled $armv5te"
1777
echo "ARMv6 enabled $armv6"
1778
echo "IWMMXT enabled $iwmmxt"
1867
echo "ARMv5TE enabled ${armv5te-no}"
1868
echo "ARMv6 enabled ${armv6-no}"
1869
echo "ARM VFP enabled ${armvfp-no}"
1870
echo "IWMMXT enabled ${iwmmxt-no}"
1780
1872
if test $arch = "mips"; then
1781
echo "MMI enabled $mmi"
1873
echo "MMI enabled ${mmi-no}"
1783
1875
if test $arch = "powerpc"; then
1784
echo "AltiVec enabled $altivec"
1785
echo "dcbzl available $dcbzl"
1876
echo "AltiVec enabled ${altivec-no}"
1877
echo "dcbzl available ${dcbzl-no}"
1787
echo "gprof enabled $gprof"
1788
echo "debug symbols $debug"
1789
echo "strip symbols $dostrip"
1790
echo "optimize $optimize"
1791
echo "static $static"
1792
echo "shared $shared"
1793
echo "postprocessing support $pp"
1794
echo "software scaler enabled $swscaler"
1795
echo "video hooking $vhook"
1879
echo "gprof enabled ${gprof-no}"
1880
echo "debug symbols ${debug-no}"
1881
echo "strip symbols ${stripping-no}"
1882
echo "optimizations ${optimizations-no}"
1883
echo "static ${static-no}"
1884
echo "shared ${shared-no}"
1885
echo "postprocessing support ${postproc-no}"
1886
echo "software scaler enabled ${swscale-no}"
1887
echo "new filter support ${avfilter-no}"
1888
echo "filters using lavformat ${avfilter_lavf-no}"
1889
echo "video hooking ${vhook-no}"
1796
1890
if enabled vhook; then
1797
echo "Imlib2 support $imlib2"
1798
echo "FreeType support $freetype2"
1891
echo "Imlib2 support ${imlib2-no}"
1892
echo "FreeType support ${freetype2-no}"
1800
echo "network support $network"
1894
echo "network support ${network-no}"
1801
1895
if enabled network; then
1802
echo "IPv6 support $ipv6"
1896
echo "IPv6 support ${ipv6-no}"
1804
echo "threading support $thread_type"
1805
echo "SDL support $sdl"
1898
echo "threading support ${thread_type-no}"
1899
echo "SDL support ${sdl-no}"
1806
1900
if enabled sdl_too_old; then
1807
1901
echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support."
1809
echo "Sun medialib support $mlib"
1810
echo "AVISynth enabled $avisynth"
1811
echo "liba52 support $liba52"
1812
echo "liba52 dlopened $liba52bin"
1813
echo "libdts support $libdts"
1814
echo "libfaac enabled $libfaac"
1815
echo "libfaad enabled $libfaad"
1816
echo "faadbin enabled $libfaadbin"
1817
echo "libgsm enabled $libgsm"
1818
echo "libmp3lame enabled $libmp3lame"
1819
echo "libnut enabled $libnut"
1820
echo "libogg enabled $libogg"
1821
echo "libtheora enabled $libtheora"
1822
echo "libvorbis enabled $libvorbis"
1823
echo "x264 enabled $x264"
1824
echo "XviD enabled $xvid"
1825
echo "zlib enabled $zlib"
1826
echo "AMR-NB float support $amr_nb"
1827
echo "AMR-NB fixed support $amr_nb_fixed"
1828
echo "AMR-WB float support $amr_wb"
1829
echo "AMR-WB IF2 support $amr_if2"
1830
if disabled gpl; then
1831
echo "License: LGPL"
1903
echo "Sun medialib support ${mlib-no}"
1904
echo "AVISynth enabled ${avisynth-no}"
1905
echo "liba52 support ${liba52-no}"
1906
echo "liba52 dlopened ${liba52bin-no}"
1907
echo "libamr-nb support ${libamr_nb-no}"
1908
echo "libamr-wb support ${libamr_wb-no}"
1909
echo "libdc1394 support ${libdc1394-no}"
1910
echo "libfaac enabled ${libfaac-no}"
1911
echo "libfaad enabled ${libfaad-no}"
1912
echo "libfaad dlopened ${libfaadbin-no}"
1913
echo "libgsm enabled ${libgsm-no}"
1914
echo "libmp3lame enabled ${libmp3lame-no}"
1915
echo "libnut enabled ${libnut-no}"
1916
echo "libtheora enabled ${libtheora-no}"
1917
echo "libvorbis enabled ${libvorbis-no}"
1918
echo "x264 enabled ${libx264-no}"
1919
echo "XviD enabled ${libxvid-no}"
1920
echo "zlib enabled ${zlib-no}"
1923
for type in decoder encoder parser demuxer muxer protocol filter bsf indev outdev; do
1924
echo "Enabled ${type}s:"
1925
eval list=\$$(toupper $type)_LIST
1926
for part in $list; do
1927
enabled $part && echo ${part%_*}
1928
done | sort | pr -3 -t
1933
echo "License: unredistributable" ||
1935
echo "License: GPL" ||
1936
echo "License: LGPL")
1836
1938
echo "Creating config.mak and config.h..."
1838
1940
echo "# Automatically generated by configure - do not modify!" > config.mak
1839
1941
echo "/* Automatically generated by configure - do not modify! */" > $TMPH
1942
echo "#ifndef FFMPEG_CONFIG_H" >> $TMPH
1943
echo "#define FFMPEG_CONFIG_H" >> $TMPH
1840
1944
echo "#define FFMPEG_CONFIGURATION \"$FFMPEG_CONFIGURATION\"" >> $TMPH
1842
echo "PREFIX=$PREFIX" >> config.mak
1843
echo "prefix=\$(DESTDIR)\${PREFIX}" >> config.mak
1844
echo "libdir=\$(DESTDIR)$libdir" >> config.mak
1845
echo "shlibdir=\$(DESTDIR)$shlibdir" >> config.mak
1846
echo "incdir=\$(DESTDIR)$incdir" >> config.mak
1847
echo "bindir=\$(DESTDIR)$bindir" >> config.mak
1848
echo "mandir=\$(DESTDIR)$mandir" >> config.mak
1849
echo "MAKE=$make" >> config.mak
1946
echo "PREFIX=$prefix" >> config.mak
1947
echo "prefix=\$(DESTDIR)\$(PREFIX)" >> config.mak
1948
echo "LIBDIR=\$(DESTDIR)$libdir" >> config.mak
1949
echo "SHLIBDIR=\$(DESTDIR)$shlibdir" >> config.mak
1950
echo "INCDIR=\$(DESTDIR)$incdir" >> config.mak
1951
echo "BINDIR=\$(DESTDIR)$bindir" >> config.mak
1952
echo "MANDIR=\$(DESTDIR)$mandir" >> config.mak
1850
1953
echo "CC=$cc" >> config.mak
1851
1954
echo "AR=$ar" >> config.mak
1852
1955
echo "RANLIB=$ranlib" >> config.mak
1853
if enabled dostrip; then
1854
echo "STRIP=$strip" >> config.mak
1956
echo "LN_S=$ln_s" >> config.mak
1957
enabled stripping &&
1958
echo "STRIP=$strip" >> config.mak ||
1856
1959
echo "STRIP=echo ignoring strip" >> config.mak
1859
1961
echo "OPTFLAGS=$CFLAGS" >> config.mak
1860
1962
echo "VHOOKCFLAGS=$VHOOKCFLAGS">>config.mak
1861
1963
echo "LDFLAGS=$LDFLAGS" >> config.mak
1862
echo "LDCONFIG=$LDCONFIG" >> config.mak
1863
1964
echo "FFSERVERLDFLAGS=$FFSERVERLDFLAGS" >> config.mak
1864
1965
echo "SHFLAGS=$SHFLAGS" >> config.mak
1865
1966
echo "VHOOKSHFLAGS=$VHOOKSHFLAGS" >> config.mak
1866
1967
echo "VHOOKLIBS=$VHOOKLIBS" >> config.mak
1867
1968
echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
1868
1969
echo "BUILD_STATIC=$static" >> config.mak
1869
echo "BUILDSUF=$BUILDSUF" >> config.mak
1970
echo "BUILDSUF=$build_suffix" >> config.mak
1971
echo "FULLNAME=$FULLNAME" >> config.mak
1870
1972
echo "LIBPREF=$LIBPREF" >> config.mak
1871
echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
1872
if enabled static; then
1873
echo "LIB=$LIB" >> config.mak
1874
else # Some Make complain if this variable does not exist.
1875
echo "LIB=" >> config.mak
1973
echo "LIBSUF=$LIBSUF" >> config.mak
1974
echo "LIBNAME=$LIBNAME" >> config.mak
1877
1975
echo "SLIBPREF=$SLIBPREF" >> config.mak
1878
echo "SLIBSUF=\${BUILDSUF}$SLIBSUF" >> config.mak
1879
echo "EXESUF=\${BUILDSUF}$EXESUF" >> config.mak
1881
ucarch=`toupper $arch`
1882
echo "TARGET_ARCH_${ucarch}=yes" >> config.mak
1883
echo "#define ARCH_${ucarch} 1" >> $TMPH
1888
echo "TARGET_ARCH_X86=yes" >> config.mak
1889
echo "#define ARCH_X86 1" >> $TMPH
1892
if test "$POWERPCMODE" = "64bits"; then
1893
echo "#define POWERPC_MODE_64BITS 1" >> $TMPH
1897
echo "TARGET_ARCH_SPARC=yes" >> config.mak
1898
echo "#define ARCH_SPARC 1" >> $TMPH
1976
echo "SLIBSUF=$SLIBSUF" >> config.mak
1977
echo "EXESUF=$EXESUF" >> config.mak
1978
echo "DEPEND_CMD=$DEPEND_CMD" >> config.mak
1902
1980
if enabled bigendian; then
1903
echo "WORDS_BIGENDIAN=yes" >> config.mak
1904
echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1906
if enabled mmx; then
1907
echo "#define __CPU__ 586" >> $TMPH
1981
echo "WORDS_BIGENDIAN=yes" >> config.mak
1982
echo "#define WORDS_BIGENDIAN 1" >> $TMPH
1910
1985
if enabled sdl; then
1911
echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
1912
echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
1986
echo "SDL_LIBS=`"${SDL_CONFIG}" --libs`" >> config.mak
1987
echo "SDL_CFLAGS=`"${SDL_CONFIG}" --cflags`" >> config.mak
1914
1989
if enabled texi2html; then
1915
echo "BUILD_DOC=yes" >> config.mak
1990
echo "BUILD_DOC=yes" >> config.mak
1918
sws_version=`grep '#define LIBSWSCALE_VERSION ' "$source_path/libswscale/swscale.h" | sed 's/[^0-9\.]//g'`
1919
pp_version=`grep '#define LIBPOSTPROC_VERSION ' "$source_path/libpostproc/postprocess.h" | sed 's/[^0-9\.]//g'`
1920
lavc_version=`grep '#define LIBAVCODEC_VERSION ' "$source_path/libavcodec/avcodec.h" | sed 's/[^0-9\.]//g'`
1921
lavf_version=`grep '#define LIBAVFORMAT_VERSION ' "$source_path/libavformat/avformat.h" | sed 's/[^0-9\.]//g'`
1922
lavu_version=`grep '#define LIBAVUTIL_VERSION ' "$source_path/libavutil/avutil.h" | sed 's/[^0-9\.]//g'`
1995
file=$source_path/$2
1996
eval $(grep "#define ${name}_VERSION_M" "$file" | awk '{ print $2"="$3 }')
1997
eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO
1998
lcname=$(tolower $name)
1999
eval echo "${lcname}_VERSION=\$${name}_VERSION" >> config.mak
2000
eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak
2003
get_version LIBSWSCALE libswscale/swscale.h
2004
get_version LIBPOSTPROC libpostproc/postprocess.h
2005
get_version LIBAVCODEC libavcodec/avcodec.h
2006
get_version LIBAVDEVICE libavdevice/avdevice.h
2007
get_version LIBAVFORMAT libavformat/avformat.h
2008
get_version LIBAVUTIL libavutil/avutil.h
2009
get_version LIBAVFILTER libavfilter/avfilter.h
1926
2011
if enabled shared; then
1927
echo "BUILD_SHARED=yes" >> config.mak
1928
echo "PIC=-fPIC -DPIC" >> config.mak
1929
echo "SPPMAJOR=${pp_version%%.*}" >> config.mak
1930
echo "SPPVERSION=$pp_version" >> config.mak
1931
echo "LAVCMAJOR=${lavc_version%%.*}" >> config.mak
1932
echo "LAVCVERSION=$lavc_version" >> config.mak
1933
echo "LAVFMAJOR=${lavf_version%%.*}" >> config.mak
1934
echo "LAVFVERSION=$lavf_version" >> config.mak
1935
echo "LAVUMAJOR=${lavu_version%%.*}" >> config.mak
1936
echo "LAVUVERSION=$lavu_version" >> config.mak
1937
echo "SWSMAJOR=${sws_version%%.*}" >> config.mak
1938
echo "SWSVERSION=$sws_version" >> config.mak
1939
echo "SLIBNAME=${SLIBNAME}" >> config.mak
1940
echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
1941
echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
1942
echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
1943
echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
2012
echo "BUILD_SHARED=yes" >> config.mak
2013
echo "PIC=-fPIC -DPIC" >> config.mak
2014
echo "SLIBNAME=${SLIBNAME}" >> config.mak
2015
echo "SLIBNAME_WITH_VERSION=${SLIBNAME_WITH_VERSION}" >> config.mak
2016
echo "SLIBNAME_WITH_MAJOR=${SLIBNAME_WITH_MAJOR}" >> config.mak
2017
echo "SLIB_CREATE_DEF_CMD=${SLIB_CREATE_DEF_CMD}" >> config.mak
2018
echo "SLIB_EXTRA_CMD=${SLIB_EXTRA_CMD}" >> config.mak
2019
echo "SLIB_INSTALL_EXTRA_CMD=${SLIB_INSTALL_EXTRA_CMD}" >> config.mak
2020
echo "SLIB_UNINSTALL_EXTRA_CMD=${SLIB_UNINSTALL_EXTRA_CMD}" >> config.mak
1945
2022
echo "LIB_INSTALL_EXTRA_CMD=${LIB_INSTALL_EXTRA_CMD}" >> config.mak
1946
2023
echo "EXTRALIBS=$extralibs" >> config.mak
2025
print_config ARCH_ $TMPH config.mak $ARCH_LIST
1948
2026
print_config HAVE_ $TMPH config.mak $HAVE_LIST
1949
print_config CONFIG_ $TMPH config.mak $CONFIG_LIST
1950
print_config TARGET_ $TMPH config.mak $TARGET_LIST
1952
if test "$targetos" = "Darwin"; then
1953
echo "#define CONFIG_DARWIN 1" >> $TMPH
2027
print_config CONFIG_ $TMPH config.mak $CONFIG_LIST \
1956
2039
echo "#define restrict $_restrict" >> $TMPH
1958
if test "$optimize" = "small"; then
1959
echo "#define always_inline" >> $TMPH
1960
echo "#define CONFIG_SMALL 1" >> $TMPH
2041
if enabled small; then
2042
echo "#define av_always_inline" >> $TMPH
1963
2045
echo "SRC_PATH=\"$source_path\"" >> config.mak
1964
2046
echo "SRC_PATH_BARE=$source_path" >> config.mak
1965
2047
echo "BUILD_ROOT=\"$PWD\"" >> config.mak
1967
if enabled amr_if2; then
1968
echo "AMR_CFLAGS=-DIF2=1" >> config.mak
1971
2049
# Apparently it's not possible to portably echo a backslash.
1972
if enabled asmalign_pot; then
1973
printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH
1975
printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
1979
for codec in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST $MUXER_LIST; do
1980
ucname="`toupper $codec`"
1981
config_name="CONFIG_$ucname"
1982
enabled_name="ENABLE_$ucname"
1983
if enabled $codec; then
1984
echo "#define $config_name 1" >> $TMPH
1985
echo "#define $enabled_name 1" >> $TMPH
1986
echo "$config_name=yes" >> config.mak
1988
echo "#define $enabled_name 0" >> $TMPH
1992
# Do not overwrite config.h if unchanged to avoid superfluous rebuilds.
1993
if ! cmp -s $TMPH config.h; then
1994
mv -f $TMPH config.h
1996
echo "config.h is unchanged"
1999
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
2050
enabled asmalign_pot &&
2051
printf '#define ASMALIGN(ZEROBITS) ".align " #ZEROBITS "\\n\\t"\n' >> $TMPH ||
2052
printf '#define ASMALIGN(ZEROBITS) ".align 1<<" #ZEROBITS "\\n\\t"\n' >> $TMPH
2054
echo "#define EXTERN_PREFIX \"${extern_prefix}\"" >> $TMPH
2056
echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
2058
# Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
2059
cmp -s $TMPH config.h &&
2060
echo "config.h is unchanged" ||
2061
mv -f $TMPH config.h
2063
rm -f $TMPC $TMPE $TMPH $TMPO $TMPS $TMPSH
2001
2065
# build tree in object directory if source path is different from current one
2002
2066
if enabled source_path_used; then
2015
libavcodec/amr_float \
2016
libavcodec/amrwb_float \
2026
libavformat/Makefile \
2027
libavcodec/Makefile \
2028
libpostproc/Makefile \
2029
libavutil/Makefile \
2030
libswscale/Makefile \
2093
libavcodec/Makefile \
2094
libavdevice/Makefile \
2095
libavfilter/Makefile \
2096
libavformat/Makefile \
2097
libavutil/Makefile \
2098
libpostproc/Makefile \
2099
libswscale/Makefile \
2036
2101
for dir in $DIRS ; do
2039
2104
for f in $FILES ; do
2040
ln -sf "$source_path/$f" $f
2105
$ln_s "$source_path/$f" $f
2045
2110
# build pkg-config files
2046
# FIXME: libdir and includedir are hardcoded and may differ from the real path.
2048
2112
pkgconfig_generate(){