[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [creduce-dev] Experiences building C-Reduce on Windows

I actually ended up getting flex.exe from gnuwin32. I put flex.exe on PATH, and then CMake finished.

I was able to build unifdef from source and place it manually in the creduce build tree where it would normally be produced, and that seems to work.

I mucked with cpan for a while and now msysgit's perl seems to do the right thing.

I had to comment out the "is executable" check from creduce to get it to accept my shell script, and now I have a reduction.

I guess it all worked out. :)

On Fri, Oct 13, 2017 at 11:41 AM, Dmitry Babokin <babokin@gmail.com> wrote:
If you need flex/bison, it's quite difficult to get around it with just "proper" configuration script ;-)

I would suggest trying either Gygwin (it does have pre-built flex/bison and they should be relatively new) or GnuWin32 tool set (flex/bison in this one are quite old and this may be an issue).


On Fri, Oct 13, 2017 at 11:04 AM, Reid Kleckner <rnk@google.com> wrote:
Has anyone else tried this with any success?

My goal here was to reduce a disagreement between MSVC and Clang down to some minimal example where one errors in a specific way but the other does not. I think the shortest path to a solution for me is going to be running MSVC under Wine on Linux, but I figured I should send this email to document the state of the art.

The INSTALL instructions don't mention Windows at all, but the CMakeLists.txt commit messages do, so I blithely ignored all advice about dependencies and did the usual CMake pattern:

git clone ... creduce
cd creduce
mkdir build
cd build
cmake -GNinja ..

Worked OK, until if failed to find flex:
-- Could NOT find FLEX (missing: FLEX_EXECUTABLE)
CMake Error at clex/CMakeLists.txt:23 (FLEX_TARGET):
  Unknown CMake command "FLEX_TARGET".

OK, now I go get flex, which has moved to github (https://github.com/westes/flex). This wants me to run autogen.sh, which relies on autoconf and automake, which I do not have installed. I only have what mingw64 gives me make & GCC. Wasn't the point of autoconf to generate a shell script that you check in so users don't need anything other than a shell?

So, let's ignore that build system. flex is like 10 .c files, how hard can it be to build? Let's look at the README. Hm, looks like it has a pretty hard dependency on bison "to generate parse.c from parse.y". Was someone nice enough to check in parse.c so that users could build without that dependence? Nope. =/

I'm two dependencies deep and wondering, how did mpflanzer do it?