Subject: bug#19708: Bowtie fails to build

From: Andreas Enge <[email-masked]>
Date: Wed, 28 Jan 2015 17:57:35 +0100

On Wed, Jan 28, 2015 at 03:11:06PM +0100, Ricardo Wurmus wrote:
> Whether or not a platform is 64-bit is determined with uname.  Both
> these errors relate to using uname.

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.

> 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".

Andreas