<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix"><br>
    </div>
    <blockquote
cite="mid:CAK4YBZtAmVcJM0d6qa6nVpU237c90HaUFgyMWCfGCgCHXgjy1A@mail.gmail.com"
      type="cite">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Tue, Sep 16, 2014 at 6:26 AM,
            Steve Borho <span dir="ltr"><<a moz-do-not-send="true"
                href="mailto:steve@borho.org" target="_blank">steve@borho.org</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
              <div>
                <div>On 09/16, Kovacs Peter wrote:<br>
                  > Hi All,<br>
                  ><br>
                  > maybe somebody else will also find this useful,
                  so let me share my<br>
                  > experience with compiling x264 with Visual Studio
                  2010 SP1 and Intel(R) C++<br>
                  > Compiler XE 15.0.<br>
                  > I have used the latest stable tarball
                  (x264-snapshot-20140915-2245-stable).<br>
                  > -create a new Win32 console application, create
                  an empty project<br>
                  > -create appropriate filters under Source files
                  and Header files to retain<br>
                  > structure: common, encoder, extras, filters,
                  filters/video, input, output<br>
                  > -add .c and .h files from these directories to
                  the project (including those<br>
                  > not located in subdirs), except:<br>
                  >     common/opencl.c, common/opencl.h,
                  encoder/rdo.c, encoder/slicetype.c,<br>
                  > input/ffms.c, input/lavf.c, output/mp4.c,
                  output/mp4_lsmash.c<br>
                  > -right click the project file, and choose to use
                  Intel C++ compiler<br>
                  > -in project properties, under C/C+ / Language
                  [Intel C++] / Enable C99<br>
                  > support, choose Yes for All Configurations<br>
                  > -in project properties, under C/C+ / Output
                  Files, change Object File Name<br>
                  > to "$(IntDir)/%(RelativeDir)/", for All
                  Configurations (to get rid of these<br>
                  > link errors <a moz-do-not-send="true"
href="http://stackoverflow.com/questions/3695174/visual-studio-2010s-strange-warning-lnk4042"
                    target="_blank">http://stackoverflow.com/questions/3695174/visual-studio-2010s-strange-warning-lnk4042</a>)<br>
                  > -in project properties, under C/C+ / General, add
                  "extras" and "." into<br>
                  > Additional Include Directories, for All
                  Configurations<br>
                  > -in project properties, under C/C+ /
                  Preprocessor, add "HAVE_CONFIG_H" into<br>
                  > Preprocessor definitions, for All Configurations<br>
                  > -create x264_config.h and config.h with the
                  attached contents, and add them<br>
                  > to the project<br>
                  > -compile!<br>
                  ><br>
                  > This will result in an x264 binary that does not
                  use asm functions, OpenCL,<br>
                  > or any other acceleration, nor will support many
                  input/output formats, but<br>
                  > can be used for experimentation, studying the
                  code via single stepping, and<br>
                  > implement experiments (for the impatient).<br>
                  > The patches from Steve Borho for VC12 were much
                  appreciated - this small<br>
                  > guide is for those who are still using VS2010.<br>
                  ><br>
                  > Project files are attached for reference. Hope
                  somebody will find this<br>
                  > useful.<br>
                  <br>
                </div>
              </div>
              For what it's worth, it wasn't my patches that eventually
              landed in<br>
              x264. It was Kemuri-9's much superior patches<br>
              <br>
              However you might also find this attached cmake file
              useful.  I don't<br>
              have a system with Intel C installed to verify, but this
              should build<br>
              x264 with Intel C or MSVC 2013. If yasm is detected, it
              will use that to<br>
              build the assembly code, making the binary somewhat
              useful.<br>
              <br>
              To use with Intel C, copy CMakeLists.txt into the x264
              root folder,<br>
              then:<br>
              <br>
              mkdir build<br>
              cd build<br>
              call "%ICPP_COMPILER14%\bin\compilervars.bat" intel64<br>
              set CC=icl<br>
              set CXX=icl<br>
              cmake -G "NMake Makefiles" ..<br>
              make<br>
              <span><font color="#888888"><br>
                  --<br>
                  Steve Borho<br>
                </font></span><br>
            </blockquote>
            <div><br>
            </div>
            <div>Peter,</div>
            <div><br>
            </div>
            <div>x264 does already support using Intel's Compiler for
              Windows, when it's combined with Visual Studio 2005 or
              later.</div>
            <div>However, we do not utilize visual studio's proprietary
              build system in our support (we're not particularly
              looking to maintain multiple build systems)</div>
            <div><br>
            </div>
            <div>Instead we utilize MSYS, like we do for utilizing MinGW
              to build x264.</div>
            <div><br>
            </div>
            <div>Looks like the documentation i wrote when we first
              added support is still available [1], though it's for
              Intel Compiler 11.1 with Visual Studio 2008.</div>
            <div>But I don't expect there's been that many changes to
              where you can't follow the flow with VS2010 + IC15</div>
            <div><br>
            </div>
            <div>[1] <a moz-do-not-send="true"
                href="http://kemuri9.net/dev/x264/other/intel_howto.html"
                target="_blank">http://kemuri9.net/dev/x264/other/intel_howto.html</a></div>
            <div><br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    Dear Steven,<br>
    <br>
    thanks for pointing this out. Indeed, the steps in the referenced
    guide still work with this combination of tools (using this
    workaround <a class="moz-txt-link-freetext" href="https://software.intel.com/en-us/forums/topic/531996">https://software.intel.com/en-us/forums/topic/531996</a>).<br>
    However please note that the original purpose of making a VS project
    for it was to facilitate single stepping in the code for students
    who are more familiar with VS. If I'm not mistaken, compiling with
    the Intel compiler using above methods does not allow that.<br>
    <br>
    Best regards,<br>
    Peter<br>
    <br>
  </body>
</html>