Subject: Re: bug#19708: Bowtie fails to build

From: Ricardo Wurmus <[email-masked]>
Date: Thu, 29 Jan 2015 11:01:56 +0100

Andreas Enge writes:
> Clearly, only x86_64 is supported. Citing from Makefile:
> BITS=32
> ifeq (x86_64,$(shell uname -m))
>         BITS=64
> endif
> # msys will always be 32 bit so look at the cpu arch instead.
> ifneq (,$(findstring AMD64,$(PROCESSOR_ARCHITEW6432)))
>         ifeq (1,$(MINGW))
>                 BITS=64
>         endif
> endif
> ifeq (32,$(BITS))
>   $(error bowtie2 compilation requires a 64-bit platform )
> endif
>
> So we should disable mips and i686.

Submitted a patch to the ML to do just that.

>> This is odd.  The Makefile only adds this option on MacOS:
>>     MACOS = 0
>>     ifneq (,$(findstring Darwin,$(shell uname)))
>>             MACOS = 1
>>             ifneq (,$(findstring 13,$(shell uname -r)))
>>                     CPP = clang++
>>                     CC = clang
>>                     EXTRA_FLAGS += -stdlib=libstdc++
>>             endif
>>     endif
>
> I see the following in my Makefile:
> MACOS = 0
> ifneq (,$(findstring Darwin,$(shell uname)))
>         MACOS = 1
> endif
>
> ifneq (,$(findstring 13,$(shell uname -r)))
>         CPP = clang++
>         CC = clang
>         EXTRA_FLAGS += -stdlib=libstdc++
> endif
>
> Notice the different placements of the "endif". Are we talking about different
> versions of bowtie? I looked at the top Makefile from the result of
> "guix build bowtie -S".

Oh, I must have been looking at master.  In commit 4a99b0023[1] this was
changed to:

    MACOS = 0
    ifneq (,$(findstring Darwin,$(shell uname)))
    	MACOS = 1
    	ifneq (,$(findstring 13,$(shell uname -r)))
    		CPP = clang++
    		CC = clang
    		EXTRA_FLAGS += -stdlib=libstdc++
    	endif
    endif

I'm not sure why it built the first time, though.  (Compare [2] and
[3], both using the same release.)  Anyway, I can go ahead and patch the
Makefile until a new release is out.

What do you think?

~~ Ricardo

[1]: https://github.com/BenLangmead/bowtie2/commit/4a99b0023bdfbbe486b9649489a32ea184c18c9a
[2]: http://hydra.gnu.org/build/175069
[3]: http://hydra.gnu.org/build/204787