Issue504

Title use separate Makefile/environment variables for 32- and 64-bit libraries
Priority wish Status resolved
Superseder Nosy List florian, jendrik, malte
Assigned To florian Keywords
Optional summary

Created on 2014-12-16.01:26:53 by malte, last changed by florian.

Messages
msg4900 (view) Author: florian Date: 2015-12-08.16:01:04
The new CMake file is merged and the documentation is updated. The remaining
warning on the buildbot should go away with the next build.
msg4896 (view) Author: florian Date: 2015-12-08.14:36:50
64-bit CLP/COIN now also work on Windows (I tested release32, debug32,
release64, debug64 with DOWNWARD_COIN_ROOT32 and DOWNWARD_COIN_ROOT64 set)
msg4891 (view) Author: florian Date: 2015-12-08.00:51:38
Still have to test it on Windows, but it seems to work fine on Linux (release32,
debug32, release64, debug64 with DOWNWARD_COIN_ROOT32 and DOWNWARD_COIN_ROOT64 set)

https://bitbucket.org/flogo/downward-issues/pull-requests/9
msg4890 (view) Author: malte Date: 2015-12-07.19:29:39
Sounds good.
msg4889 (view) Author: florian Date: 2015-12-07.19:20:35
In the new CMake build system, we have the following four environment variables:

DOWNWARD_COIN_ROOT
DOWNWARD_COIN_ROOT_RELEASE
DOWNWARD_COIN_ROOT_DEBUG

DOWNWARD_CPLEX_ROOT

For COIN we have three variables, because on Windows we need to differentiate
between debug and release libraries, and on Linux, we don't. CPLEX uses
standardized paths to distinguish these versions, so we only need one variable.
If both DOWNWARD_COIN_ROOT and DOWNWARD_COIN_ROOT_RELEASE are set, we look for
the library in both paths and prefer the more specific one.

Distinguishing between 32- and 64-bit builds is similar: CPLEX uses standardized
paths, so we can use the same environment variable for both. This only assumes
that both the 32-bit version and the 64-bit version were installed with the same
version and the same prefix, e.g., in "/" or "~/local/". If we want to support
different prefixes or different versions for 32- and 64-bit. We would need two
environment variables.

For COIN, there are no standardized paths and it is not possible to have the 32-
and 64-bit version in the same prefix. So here we need additional variables.

I suggest we use the following variables:

DOWNWARD_COIN_ROOT
DOWNWARD_COIN_ROOT32
DOWNWARD_COIN_ROOT64
DOWNWARD_COIN_ROOT_RELEASE32
DOWNWARD_COIN_ROOT_RELEASE64
DOWNWARD_COIN_ROOT_DEBUG32
DOWNWARD_COIN_ROOT_DEBUG64

DOWNWARD_CPLEX_ROOT
msg3949 (view) Author: malte Date: 2014-12-16.01:26:53
The LP libraries need to be stored in different places for 32-bit and 64-bit
mode. This means that it is not possible to set up one set of environment
variables that allow compiling the planner in 32-bit and 64-bit mode.

Suggestion: add ..._32 and ..._64 versions of the LP library options so that all
paths can be set at the same time (e.g. in the user's ~/.bashrc).

We should also make sure to take care of this aspect when dealing with issue67.

@Florian: adding you to nosy as an FYI. If I don't have time to work on this
myself, it can wait until after cmake migration.
History
Date User Action Args
2015-12-08 16:01:04floriansetstatus: chatting -> resolved
messages: + msg4900
summary: TODO: update the documentation on http://www.fast-downward.org/LPBuildInstructions after merging. ->
2015-12-08 14:36:50floriansetmessages: + msg4896
summary: TODO: update the documentation on http://www.fast-downward.org/LPBuildInstructions after merging.
2015-12-08 00:51:38floriansetmessages: + msg4891
2015-12-07 21:20:16floriansetassignedto: malte -> florian
2015-12-07 19:29:39maltesetmessages: + msg4890
2015-12-07 19:20:35floriansetmessages: + msg4889
2014-12-16 12:12:38jendriksetnosy: + jendrik
2014-12-16 01:26:53maltecreate