title: Problems compiling ffmpeg on windows using cygwin
body: <p>I've been having a lot of trouble recently compiling ffmpeg on windows. I'm currently using the cgywin terminal to run the code. I've tried following many of the most popular tutorials on the web but I can't seem to get it to work. I'm currently using this tutorial as a guide <a href="http://www.roman10.net/how-to-build-ffmpeg-for-android/" rel="nofollow noreferrer">http://www.roman10.net/how-to-build-ffmpeg-for-android/</a> </p>
  
  <p><strong>Where I'm at:</strong></p>
  
  <p>I've created a bash script </p>
  
  <pre><code>#!/bin/bash
  
  NDK=C:/Users/jrblain/Development/adt-bundle-windows-x86_64-20130514/android-ndk-r9
  PLATFORM=$NDK/platforms/android-8/arch-arm/
  PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64
  function build_one
  {
  ./configure --target-os=linux \
      --prefix=$PREFIX \
      --enable-cross-compile \
      --extra-libs="-lgcc" \
      --arch=arm \
      --cc=$PREBUILT/bin/arm-linux-androideabi-gcc \
      --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- \
      --nm=$PREBUILT/bin/arm-linux-androideabi-nm \
      --sysroot=$PLATFORM \
      --extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " \
      --disable-shared \
      --enable-static \
      --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog" \
      --disable-everything \
      --enable-demuxer=mov \
      --enable-demuxer=h264 \
      --disable-ffplay \
      --enable-protocol=file \
      --enable-avformat \
      --enable-avcodec \
      --enable-decoder=rawvideo \
      --enable-decoder=mjpeg \
      --enable-decoder=h263 \
      --enable-decoder=mpeg4 \
      --enable-decoder=h264 \
      --enable-parser=h264 \
      --disable-network \
      --enable-zlib \
      --disable-avfilter \
      --disable-avdevice \
      $ADDITIONAL_CONFIGURE_FLAG
  
  make clean
  make  -j4 install
  $PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o
  $PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib  -soname libffmpeg.so -shared -nostdlib  -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog  --warn-once  --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a
  }
  
  #arm v6
  #CPU=armv6
  #OPTIMIZE_CFLAGS="-marm -march=$CPU"
  #PREFIX=./android/$CPU 
  #ADDITIONAL_CONFIGURE_FLAG=
  #build_one
  
  #arm v7vfpv3
  CPU=armv7-a
  OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU "
  PREFIX=./android/$CPU
  ADDITIONAL_CONFIGURE_FLAG=
  build_one
  
  #arm v7vfp
  #CPU=armv7-a
  #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "
  #PREFIX=./android/$CPU-vfp
  #ADDITIONAL_CONFIGURE_FLAG=
  #build_one
  
  #arm v7n
  #CPU=armv7-a
  #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8"
  #PREFIX=./android/$CPU 
  #ADDITIONAL_CONFIGURE_FLAG=--enable-neon
  #build_one
  
  #arm v6+vfp
  #CPU=armv6
  #OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU"
  #PREFIX=./android/${CPU}_vfp 
  #ADDITIONAL_CONFIGURE_FLAG=
  #build_one
  </code></pre>
  
  <p>I then followed steps 4-6 of this post <a href="https://stackoverflow.com/questions/10665039/does-anyone-find-this-useful-compiling-ffmpeg-on-windows-with-cywin-and-ndk-r">Does anyone find this useful? - Compiling FFMPEG on Windows with Cywin and NDK r5</a> which consists of </p>
  
  <pre><code>4 - Open the file 'configure' in the root of the FFMPEG directory in a text editor.
  
  5 - Comment out lines 2073, 2074 and 2075.
  
  6 - Below 2075, add the following line:
  
  TMPDIR=c:/cygwin/tmp
  </code></pre>
  
  <p>When I ran the script in cgywin I got this result:</p>
  
  <pre><code>    install prefix            ./android/armv7-a
  source path               .
  C compiler                C:/Users/jrblain/Development/adt-bundle-windows-x86_64-20130514/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc
  ARCH                      arm (armv7-a)
  big-endian                no
  runtime cpu detection     yes
  ARMv5TE enabled           yes
  ARMv6 enabled             yes
  ARMv6T2 enabled           yes
  VFP enabled               yes
  NEON enabled              yes
  THUMB enabled             no
  debug symbols             yes
  strip symbols             yes
  optimize for size         no
  optimizations             yes
  static                    yes
  shared                    no
  postprocessing support    no
  new filter support        no
  network support           no
  threading support         pthreads
  safe bitstream reader     yes
  SDL support               no
  opencl enabled            no
  texi2html enabled         no
  perl enabled              no
  pod2man enabled           no
  makeinfo enabled          no
  
  External libraries:
  zlib
  
  Enabled decoders:
  h263                    mjpeg                   rawvideo
  h264                    mpeg4
  
  Enabled encoders:
  
  Enabled hwaccels:
  
  Enabled parsers:
  h263                    h264                    mpeg4video
  
  Enabled demuxers:
  h264                    mov
  
  Enabled muxers:
  
  Enabled protocols:
  file
  
  Enabled filters:
  
  Enabled bsfs:
  
  Enabled indevs:
  
  Enabled outdevs:
  
  License: LGPL version 2.1 or later
  Creating config.mak, config.h, and doc/config.texi...
  libavutil/avconfig.h is unchanged
  
  WARNING: C:/Users/jrblain/Development/adt-bundle-windows-x86_64-20130514/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.
  library.mak:105: *** missing separator.  Stop.
  library.mak:105: *** missing separator.  Stop.
  C:\Users\jrblain\Development\adt-bundle-windows-x86_64-20130514\android-ndk-r9\toolchains\arm-linux-androideabi-4.6\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe: ,noexecstack: unknown -z option
  C:\Users\jrblain\Development\adt-bundle-windows-x86_64-20130514\android-ndk-r9\toolchains\arm-linux-androideabi-4.6\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe: use the --help option for usage information
  </code></pre>
  
  <p>After this script runs I get some new files within my ffmpeg folder. They are .config, config(header), config.mak , config.fate. The android folder is never created like it is supposed to. I'm also not sure where the library.mak error is coming from considering that it came with ffmpeg download. </p>
  
  <p>I'm not sure where this i'm going wrong in all of this. I feel like the fact that I'm using windows will make this build process different.</p>