Fossil

View Ticket
Login

View Ticket

2011-07-22
22:43 Ticket [5ad1d9a2] Makefile fails to run uname with GNU Make 3.82 status still Open with 1 other change ... (artifact: b04e1a7f user: steveb)
2011-06-13
21:23 Ticket [5ad1d9a2]: 1 change ... (artifact: 728bbea1 user: anonymous)
15:28 Ticket [5ad1d9a2]: 2 changes ... (artifact: d0561737 user: ben)
2011-06-12
23:01 New ticket [5ad1d9a2]. ... (artifact: c00d981c user: anonymous)

Ticket Hash: 5ad1d9a23ca5a8462fb6058efdb8a56489c3ed0c
Title: Makefile fails to run uname with GNU Make 3.82
Status: Open Type: Build_Problem
Severity: Important Priority:
Subsystem: Resolution: Open
Last Modified: 2011-07-22 22:43:01
Version Found In:
Description:
When trying to build Fossil on Haiku (ticket 084eedc010), I run into a problem with the Makefile. The following syntaxes do not seem to be supported by GNU Make 3.82:

HOST_OS :sh = uname -s

and

HOST_OS = $(uname -s:sh)

The following does work (but breaks things for other make variants, I assume):

HOST_OS = $(shell uname -s)


ben added on 2011-06-13 15:28:00 UTC:
I believe you've tried to edit the Makefile to add the changes in ticket [084eedc010].

Currently the only platforms which need these additions use BSD make, where this works. So currently it hasn't mattered that this doesn't work on platforms which use GNU make. Changes to work with GNU make break non-Linux platforms -- the current syntax works on as many as possible.

Given the project wants to avoid a configure step, it might be necessary to add a Makefile.haiku.


anonymous claiming to be brecht added on 2011-06-13 21:23:11 UTC:
Perhaps the following offers a solution:

HOST_OS_CMD = uname -s
BSD_HOST_OS = $($(HOST_OS_CMD):sh)
GNU_HOST_OS = $(shell $(HOST_OS_CMD) )
HOST_OS = $(BSD_HOST_OS)$(GNU_HOST_OS)

It works for GNU Make, as BSD_HOST_OS will be empty. I'm hoping GNU_HOST_OS would be empty when using BSD Make.


steveb added on 2011-07-22 22:43:01 UTC:
As of [c32b23d626] fossil builds on Haiku R1/Alpha 3 with ./configure; make