[SERVER-13722] Allow scons to pick up paths for shared library and friends from the command line Created: 27/Jun/13  Updated: 06/Dec/22  Resolved: 19/May/20

Status: Closed
Project: Core Server
Component/s: Build
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor - P4
Reporter: Johan Hedin Assignee: [DO NOT ASSIGN] Backlog - Server Development Platform Team (SDP) (Inactive)
Resolution: Done Votes: 2
Labels: build-planning
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Linux/Unix


Issue Links:
Related
related to SERVER-6514 scons --sharedclient mongoclient buil... Closed
related to SERVER-9570 Add SCons support for hygenic builds Closed
Assigned Teams:
Server Development Platform
Participants:

 Description   

Allow scons to pick up directory paths for where to put binaries, header files, shared and static libraries and man pages from the command line.

This is basically the same as whats supported by autoconf/automake and friends. Typically you are able to alter the locations where binaries, header files, libraries etc are put when running ./configure making is super simple to package mongodb in different Linux distributions packaging systems.

Design idea:

$ scons --includedir=/usr/include --libdir=/usr/lib64 --bindir=/usr/bin --mandir=/usr/share/man

Defaults if these options are left out could be the current layout (backwards compatible) or a layout based in /usr/local like most automake/autoconf based builds.

The current --prefix can be left as is and its value, if specified, will be prepended to to values of the "new" arguments making it possible to both specify a certain layout and the move that whole layout around (typically this is used when building packages for Linux distributions).



 Comments   
Comment by Andrew Morrow (Inactive) [ 19/May/20 ]

I'm closing this venerable ticket as gone away, because the work done to add --install-mode=hygienic has fully captured the intent. Hygienic builds aren't the default, yet, but will be as soon as SERVER-41674 is completed, hopefully in the next few weeks. Public facing build documentation will be updated to explain how to use the new functionality enabled by --install-mode=hygienic.

Comment by Johan Hedin [ 30/Jun/13 ]

Thanks Ultrabug, I will try that out on the Fedora/CentOS RPM:s that I build!

Comment by Ultrabug [ 28/Jun/13 ]

On our Gentoo Linux packaging, after SERVER-6514 (which fixed quite a bunch of other patch we had to apply) and the release 2.4.5_rc0, we have to do this to fix this issue :

sed -i -e "s@\$INSTALL_DIR/lib@\$INSTALL_DIR/$(get_libdir)@g" src/SConscript.client

– where $(get_libdir) will either return 'lib' or 'lib64' depending on the system (gentoo ebuild helper)

Comment by Andrew Morrow (Inactive) [ 27/Jun/13 ]

Linking to the ticket where this discussion started for additional context.

Generated at Thu Feb 08 03:32:39 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.