Merge branch 'develop' into develop-rootless

This commit is contained in:
Rene Rivera 2018-12-13 11:49:12 -06:00
commit 6eb8e1e095
10 changed files with 120 additions and 32 deletions

15
.editorconfig Normal file
View File

@ -0,0 +1,15 @@
# Copyright 2018 Rene Rivera
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE.txt or http://www.boost.org/LICENSE_1_0.txt)
root = true
[*]
charset = utf-8
indent_size = 4
indent_style = space
tab_width = 4
trim_trailing_whitespace = true
[*.yml]
indent_size = 2

23
LICENSE.txt Normal file
View File

@ -0,0 +1,23 @@
Boost Software License - Version 1.0 - August 17th, 2003
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:
The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

View File

@ -1,4 +1,6 @@
= Boost.Build User Manual
:copyright: Copyright 2018 Rene Rivera; Copyright 2006, 2014 Vladimir Prus
:author: Rene Rivera, Vladimir Prus, Steven Watanabe
:toc: left
:toclevels: 3
:sectanchors:

21
index.html Normal file
View File

@ -0,0 +1,21 @@
<html>
<head>
<meta http-equiv="refresh" content="0; URL=../doc/html/index.html">
</head>
<body>
Automatic redirection failed, please go to
<a href="./doc/html/index.html">./doc/html/index.html</a>
<p>Distributed under the Boost Software License, Version 1.0. (See accompanying file
<a href="LICENSE.txt">LICENSE.txt</a> or copy at
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>).
</p>
</body>
</html>
<!--
Copyright Rene Rivera 2013-2018
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE.txt or copy at www.boost.org/LICENSE_1_0.txt).
-->

View File

@ -31,8 +31,9 @@ error_exit ()
echo "### ./build.sh gcc"
echo "###"
echo "### Toolsets supported by this script are:"
echo "### acc, como, darwin, gcc, intel-darwin, intel-linux, kcc, kylix,"
echo "### mipspro, pathscale, pgi, qcc, sun, sunpro, tru64cxx, vacpp"
echo "### acc, clang, como, darwin, gcc, intel-darwin, intel-linux,"
echo "### kcc, kylix, mipspro, pathscale, pgi, qcc, sun, sunpro,"
echo "### tru64cxx, vacpp"
echo "###"
echo "### A special toolset; cc, is available which is used as a fallback"
echo "### when a more specific toolset is not found and the cc command is"
@ -79,6 +80,7 @@ Guess_Toolset ()
elif test_uname AIX && test_path xlc; then BOOST_JAM_TOOLSET=vacpp
elif test_uname FreeBSD && test_path freebsd-version && test_path clang; then BOOST_JAM_TOOLSET=clang
elif test_path gcc ; then BOOST_JAM_TOOLSET=gcc
elif test_path clang ; then BOOST_JAM_TOOLSET=clang
elif test_path icc ; then BOOST_JAM_TOOLSET=intel-linux
elif test -r /opt/intel/cc/9.0/bin/iccvars.sh ; then
BOOST_JAM_TOOLSET=intel-linux

View File

@ -1138,12 +1138,12 @@ static void debug_start_child( int argc, const char * * argv )
assert( debug_state == DEBUG_NO_CHILD );
if ( ! CreatePipe( &pipe1[ 0 ], &pipe1[ 1 ], &sa, 0 ) )
{
printf("internal error\n");
printf("internal error: CreatePipe:1: 0x$08x\n", GetLastError());
return;
}
if ( ! CreatePipe( &pipe2[ 0 ], &pipe2[ 1 ], &sa, 0 ) )
{
printf("internal error\n");
printf("internal error: CreatePipe:2: 0x$08x\n", GetLastError());
CloseHandle( pipe1[ 0 ] );
CloseHandle( pipe1[ 1 ] );
return;
@ -1223,8 +1223,19 @@ static void debug_start_child( int argc, const char * * argv )
int pid;
int i;
assert( debug_state == DEBUG_NO_CHILD );
pipe(pipe1);
pipe(pipe2);
if (pipe(pipe1) == -1)
{
printf("internal error: pipe:1: %s\n", strerror(errno));
return;
}
if (pipe(pipe2) == -1)
{
close( pipe1[ 0 ] );
close( pipe1[ 1 ] );
printf("internal error: pipe:2: %s\n", strerror(errno));
return;
}
pid = fork();
if ( pid == -1 )
{
@ -1232,7 +1243,9 @@ static void debug_start_child( int argc, const char * * argv )
close( pipe1[ 0 ] );
close( pipe1[ 1 ] );
close( pipe2[ 0 ] );
close( pipe1[ 1 ] );
close( pipe2[ 1 ] );
printf("internal error: fork: %s\n", strerror(errno));
return;
}
else if ( pid == 0 )
{

View File

@ -14,6 +14,7 @@
/* This file is ALSO:
* Copyright 2001-2004 David Abrahams.
* Copyright 2018 Rene Rivera
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
@ -98,8 +99,19 @@
#include "jam.h"
#include "patchlevel.h"
/* Keep JAMVERSYM in sync with VERSION. */
/* It can be accessed as $(JAMVERSION) in the Jamfile. */
#define JAM_STRINGIZE(X) JAM_DO_STRINGIZE(X)
#define JAM_DO_STRINGIZE(X) #X
#define VERSION_MAJOR_SYM JAM_STRINGIZE(VERSION_MAJOR)
#define VERSION_MINOR_SYM JAM_STRINGIZE(VERSION_MINOR)
#define VERSION_PATCH_SYM JAM_STRINGIZE(VERSION_PATCH)
#define VERSION VERSION_MAJOR_SYM "." VERSION_MINOR_SYM
#define JAMVERSYM "JAMVERSION=" VERSION
#include "builtins.h"
#include "class.h"
#include "compile.h"
@ -274,7 +286,7 @@ int main( int argc, char * * argv, char * * arg_environ )
#ifdef JAM_DEBUGGER
is_debugger = 0;
if ( getoptions( argc - 1, argv + 1, "-:l:m:d:j:p:f:gs:t:ano:qv", optv ) < 0 )
usage( progname );

View File

@ -3,15 +3,15 @@
*
* This file is part of Jam - see jam.c for Copyright information.
*/
/*
This file is ALSO:
Copyright 2018 Rene Rivera
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
*/
/* Keep JAMVERSYM in sync with VERSION. */
/* It can be accessed as $(JAMVERSION) in the Jamfile. */
#define VERSION_MAJOR 2018
#define VERSION_MINOR 2
#define VERSION_PATCH 0
#define VERSION_MAJOR_SYM "2018"
#define VERSION_MINOR_SYM "02"
#define VERSION_PATCH_SYM "00"
#define VERSION "2018.02"
#define JAMVERSYM "JAMVERSION=2018.02"
#define VERSION_MINOR 02
#define VERSION_PATCH 00

View File

@ -85,47 +85,47 @@ toolset.flags clang-linux.link OPTIONS <threading>multi/<target-os>windows : -pt
# C and C++ compilation
rule compile.c++ ( targets * : sources * : properties * ) {
local pth-file = [ on $(<) return $(PCH_FILE) ] ;
local pch-file = [ on $(<) return $(PCH_FILE) ] ;
if $(pth-file) {
DEPENDS $(<) : $(pth-file) ;
if $(pch-file) {
DEPENDS $(<) : $(pch-file) ;
clang-linux.compile.c++.with-pch $(targets) : $(sources) ;
}
else {
clang-linux.compile.c++.without-pth $(targets) : $(sources) ;
clang-linux.compile.c++.without-pch $(targets) : $(sources) ;
}
}
actions compile.c++.without-pth {
actions compile.c++.without-pch {
"$(CONFIG_COMMAND)" -c -x c++ $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -o "$(<)" "$(>)"
}
actions compile.c++.with-pch bind PCH_FILE
{
"$(CONFIG_COMMAND)" -c -x c++ $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -include-pth -Xclang "$(PCH_FILE)" -o "$(<)" "$(>)"
"$(CONFIG_COMMAND)" -c -x c++ $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -include-pch -Xclang "$(PCH_FILE)" -o "$(<)" "$(>)"
}
rule compile.c ( targets * : sources * : properties * )
{
local pth-file = [ on $(<) return $(PCH_FILE) ] ;
local pch-file = [ on $(<) return $(PCH_FILE) ] ;
if $(pth-file) {
DEPENDS $(<) : $(pth-file) ;
if $(pch-file) {
DEPENDS $(<) : $(pch-file) ;
clang-linux.compile.c.with-pch $(targets) : $(sources) ;
}
else {
clang-linux.compile.c.without-pth $(targets) : $(sources) ;
clang-linux.compile.c.without-pch $(targets) : $(sources) ;
}
}
actions compile.c.without-pth
actions compile.c.without-pch
{
"$(CONFIG_COMMAND)" -c -x c $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
}
actions compile.c.with-pch bind PCH_FILE
{
"$(CONFIG_COMMAND)" -c -x c $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -include-pth -Xclang "$(PCH_FILE)" -c -o "$(<)" "$(>)"
"$(CONFIG_COMMAND)" -c -x c $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -include-pch -Xclang "$(PCH_FILE)" -c -o "$(<)" "$(>)"
}
###############################################################################
@ -137,7 +137,7 @@ rule compile.c++.pch ( targets * : sources * : properties * ) {
}
actions compile.c++.pch {
$(RM) -f "$(<)" && "$(CONFIG_COMMAND)" -c -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -emit-pth -o "$(<)" "$(>)"
$(RM) -f "$(<)" && "$(CONFIG_COMMAND)" -c -x c++-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -emit-pch -o "$(<)" "$(>)"
}
rule compile.c.pch ( targets * : sources * : properties * ) {
@ -145,7 +145,7 @@ rule compile.c.pch ( targets * : sources * : properties * ) {
actions compile.c.pch
{
$(RM) -f "$(<)" && "$(CONFIG_COMMAND)" -c -x c-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -emit-pth -o "$(<)" "$(>)"
$(RM) -f "$(<)" && "$(CONFIG_COMMAND)" -c -x c-header $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(INCLUDES)" -Xclang -emit-pch -o "$(<)" "$(>)"
}
###############################################################################

View File

@ -74,7 +74,7 @@ rule init ( version ? : command * : options * )
local compiler = "\"$(command)\"" ;
compiler = "$(compiler:J= )" ;
version ?= [ MATCH "version ([0-9.]+)" : [ SHELL "$(compiler) --version" ] ] ;
version ?= [ MATCH "version ([0-9.]+)" : [ SHELL "$(compiler) -v 2>&1" ] ] ;
.notice "using compiler '$(compiler)', version '$(version)'" ;