diff options
author | Richard Levitte <levitte@openssl.org> | 2018-01-26 19:56:44 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2018-01-28 07:26:11 +0100 |
commit | 5b18235a186dd28ec7a37ed95e29f4ab61f2bcbe (patch) | |
tree | 8a47daad7d6f64c43fa78a696f90ce6db1c08432 /Configurations | |
parent | 8c3bc594e0c74926bfefb84b8bae8a2fac82e465 (diff) |
Processing GNU-style "make variables" - implementation
Support the following "make variables":
AR (GNU compatible)
ARFLAGS (GNU Compatible)
AS (GNU Compatible)
ASFLAGS (GNU Compatible)
CC (GNU Compatible)
CFLAGS (GNU Compatible)
CXX (GNU Compatible)
CXXFLAGS (GNU Compatible)
CPP (GNU Compatible)
CPPFLAGS (GNU Compatible)
CPPDEFINES List of CPP macro definitions. Alternative for -D
CPPINCLUDES List of CPP inclusion directories. Alternative for -I
HASHBANGPERL Perl invocation to be inserted after '#!' in public
perl scripts.
LDFLAGS (GNU Compatible)
LDLIBS (GNU Compatible)
RANLIB Program to generate library archive index
RC Program to manipulate Windows resources
RCFLAGS Flags for $(RC)
RM (GNU Compatible)
Setting one of these overrides the corresponding data from our config
targets. However, flags given directly on the configuration command
line are additional, and are therefore added to the flags coming from
one of the variables above or the config target.
Fixes #2420
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5177)
Diffstat (limited to 'Configurations')
-rw-r--r-- | Configurations/10-main.conf | 2 | ||||
-rw-r--r-- | Configurations/descrip.mms.tmpl | 16 | ||||
-rw-r--r-- | Configurations/shared-info.pl | 4 | ||||
-rw-r--r-- | Configurations/unix-Makefile.tmpl | 47 | ||||
-rw-r--r-- | Configurations/windows-makefile.tmpl | 40 |
5 files changed, 52 insertions, 57 deletions
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf index 9a27dc9065..e773563dab 100644 --- a/Configurations/10-main.conf +++ b/Configurations/10-main.conf @@ -1408,7 +1408,7 @@ my %targets = ( # WIN32 UNICODE build gets linked with unicows.lib for # backward compatibility with Win9x. push @ex_libs, 'unicows.lib' - if (grep { $_ eq "UNICODE" } @user_defines); + if (grep { $_ eq "UNICODE" } @{$user{CPPDEFINES}}); return join(" ", @ex_libs, @_); }), sys_id => "WIN32", diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index 9995b43b9f..87c6834a14 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -171,16 +171,16 @@ OPENSSLDIR_C={- $osslprefix -}DATAROOT:[000000] # Where installed engines reside, for C ENGINESDIR_C={- $osslprefix -}ENGINES{- $sover_dirname.$target{pointer_size} -}: -CC= {- $target{cc} -} +CC= {- $config{cc} -} DEFINES={- our $defines = join(",", '__dummy', # To make comma processing easier - @{$target{defines}}, @{$config{defines}}) -} -CPPFLAGS={- our $cppflags = join('', $target{cppflags}, $config{cppflags}) -} + @{$config{defines}}) -} +CPPFLAGS={- our $cppflags = join('', @{$config{cppflags}}) -} CPPFLAGS_Q={- $cppflags =~ s|"|""|g; $defines =~ s|"|""|g; $cppflags."/DEFINE($defines)" -} -CFLAGS={- $target{cflags} -} {- $config{cflags} -} -LDFLAGS= {- $target{lflags} -} -EX_LIBS= {- $target{ex_libs} ? ",".$target{ex_libs} : "" -}{- $config{ex_libs} ? ",".$config{ex_libs} : "" -} +CFLAGS={- join('', @{$config{cflags}}) -} +LDFLAGS= {- join('', @{$config{lflags}}) -} +EX_LIBS= {- join('', map { ','.$_ } @{$config{ex_libs}}) -} LIB_DEFINES={- join("", (map { ",$_" } @{$target{shared_defines}}, @@ -200,8 +200,8 @@ PERL={- $config{perl} -} # dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC # gcc, then the driver will automatically translate it to -xarch=v8plus # and pass it down to assembler. -AS={- $target{as} -} -ASFLAG={- $target{asflags} -} +AS={- $config{as} -} +ASFLAGS={- join('', @{$config{asflags}}) -} # .FIRST and .LAST are special targets with MMS and MMK. # The defines in there are for C. includes that look like diff --git a/Configurations/shared-info.pl b/Configurations/shared-info.pl index c5ebfc6e37..d3e6941eb6 100644 --- a/Configurations/shared-info.pl +++ b/Configurations/shared-info.pl @@ -13,12 +13,12 @@ sub detect_gnu_ld { my @lines = - `$config{cross_compile_prefix}$target{cc} -Wl,-V /dev/null 2>&1`; + `$config{cross_compile_prefix}$config{cc} -Wl,-V /dev/null 2>&1`; return grep /^GNU ld/, @lines; } sub detect_gnu_cc { my @lines = - `$config{cross_compile_prefix}$target{cc} -v 2>&1`; + `$config{cross_compile_prefix}$config{cc} -v 2>&1`; return grep /gcc/, @lines; } diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 4c4506bfb4..1eb5818ddc 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -185,24 +185,22 @@ ECHO = echo CROSS_COMPILE= {- $config{cross_compile_prefix} -} CPPFLAGS={- our $cppflags = join(" ", - (map { "-D".$_} - @{$target{defines}}, @{$config{defines}}), - (map { "-I".$_} - @{$target{includes}}, @{$config{includes}}), - $target{cppflags}, $config{cppflags}) -} + (map { "-D".$_} @{$config{defines}}), + (map { "-I".$_} @{$config{includes}}), + @{$config{cppflags}}) -} CPPFLAGS_Q={- $cppflags =~ s|([\\"])|\\$1|g; $cppflags -} -CC= $(CROSS_COMPILE){- $target{cc} -} -CFLAGS={- $target{cflags} -} {- $config{cflags} -} -CXX= $(CROSS_COMPILE){- $target{cxx} -} -CXXFLAGS={- $target{cxxflags} -} {- $config{cxxflags} -} -std=c++11 -LDFLAGS= {- $config{lflags} -} {- $target{lflags} -} -PLIB_LDFLAGS= {- $target{plib_lflags} -} -EX_LIBS= {- $target{ex_libs} -} {- $config{ex_libs} -} -LIB_CPPFLAGS={- join(" ", - (map { "-D".$_} - 'OPENSSLDIR="\"$(OPENSSLDIR)\""', - 'ENGINESDIR="\"$(ENGINESDIR)\""'), - $target{shared_cppflag} || "") -} +CC= $(CROSS_COMPILE){- $config{cc} -} +CFLAGS={- join(' ', @{$config{cflags}}) -} +CXX= $(CROSS_COMPILE){- $config{cxx} -} +CXXFLAGS={- join(' ', @{$config{cxxflags}}) -} -std=c++11 +LDFLAGS= {- join(' ', @{$config{lflags}}) -} +PLIB_LDFLAGS= {- join(' ', @{$config{plib_lflags}}) -} +EX_LIBS= {- join(' ', @{$config{ex_libs}}) -} +LIB_CPPFLAGS={- join(' ', + (map { '-D'.$_ } + ('OPENSSLDIR="\"$(OPENSSLDIR)\""', + 'ENGINESDIR="\"$(ENGINESDIR)\""')), + $target{shared_cppflag}) || "" -} LIB_CFLAGS={- $target{shared_cflag} || "" -} LIB_CXXFLAGS={- $target{shared_cxxflag} || "" -} LIB_LDFLAGS={- $target{shared_ldflag}." ".$config{shared_ldflag} -} @@ -217,12 +215,11 @@ BIN_LDFLAGS={- $target{bin_lflags} || "" -} PERL={- $config{perl} -} -ARFLAGS= {- $target{arflags} -} -AR=$(CROSS_COMPILE){- $target{ar} || "ar" -} $(ARFLAGS) r -RANLIB= {- $target{ranlib} -} -NM= $(CROSS_COMPILE){- $target{nm} || "nm" -} -RCFLAGS={- $target{shared_rcflag} -} +AR=$(CROSS_COMPILE){- $config{ar} -} +ARFLAGS= {- join(' ', @{$config{arflags}}) -} +RANLIB= {- $config{ranlib} -} RC= $(CROSS_COMPILE){- $target{rc} || "windres" -} +RCFLAGS={- join(' ', @{$config{rcflags}}) -} {- $target{shared_rcflag} -} RM= rm -f RMDIR= rmdir TAR= {- $target{tar} || "tar" -} @@ -238,8 +235,8 @@ TARFILE= ../$(NAME).tar # dependent assembler flags. E.g. if you throw -mcpu=ultrasparc at SPARC # gcc, then the driver will automatically translate it to -xarch=v8plus # and pass it down to assembler. -AS=$(CC) -c -ASFLAG=$(CFLAGS) +AS={- $config{as} || '$(CC) -c' -} +ASFLAGS={- join(' ', @{$config{asflags}}) || '$(CFLAGS)' -} PERLASM_SCHEME= {- $target{perlasm_scheme} -} # For x86 assembler: Set PROCESSOR to 386 if you want to support @@ -1057,7 +1054,7 @@ EOF my $objs = join(" ", @objs); return <<"EOF"; $lib$libext: $objs - \$(AR) \$\@ \$\? + \$(AR) \$(ARFLAGS) \$\@ \$\? \$(RANLIB) \$\@ || echo Never mind. EOF } diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index 95d7334dc6..082ce0798d 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -159,29 +159,27 @@ OPENSSLDIR=$(OPENSSLDIR_dev)$(OPENSSLDIR_dir) ENGINESDIR=$(ENGINESDIR_dev)$(ENGINESDIR_dir) !ENDIF -CC={- $target{cc} -} +CC={- $config{cc} -} CPPFLAGS={- our $cppflags = join(" ", - (map { "-D".$_} - @{$target{defines}}, @{$config{defines}}), - (map { " /I ".$_} - @{$target{includes}}, @{$config{includes}}), - $target{cppflags}, $config{cppflags}) -} + (map { "-D".$_} @{$config{defines}}), + (map { " /I ".$_} @{$config{includes}}), + @{$config{cppflags}}) -} CPPFLAGS_Q={- $cppflags =~ s|([\\"])|\\$1|g; $cppflags -} -CFLAGS={- $target{cflags} -} {- $config{cflags} -} +CFLAGS={- join(' ', @{$config{cflags}}) -} COUTFLAG={- $target{coutflag} || "/Fo" -}$(OSSL_EMPTY) -RC={- $target{rc} || "rc" -} +RC={- $config{rc} -} RCOUTFLAG={- $target{rcoutflag} || "/fo" -}$(OSSL_EMPTY) -LD={- $target{ld} || "link" -} -LDFLAGS={- $target{lflags} -} +LD={- $config{ld} -} +LDFLAGS={- join(' ', @{$config{lflags}}) -} LDOUTFLAG={- $target{loutflag} || "/out:" -}$(OSSL_EMPTY) -EX_LIBS={- $target{ex_libs} -} +EX_LIBS={- join(' ', @{$config{ex_libs}}) -} LIB_CPPFLAGS={- join(" ", $target{shared_cppflag} || "", (map { quotiry_l("-D".$_) } 'OPENSSLDIR="$(OPENSSLDIR)"', 'ENGINESDIR="$(ENGINESDIR)"')) -} -LIB_CFLAGS={- join(" ", $target{lib_cflags}, $target{shared_cflag}) || "" -} -LIB_LDFLAGS={- $target{shared_ldflag} || "" -} +LIB_CFLAGS={- join(" ", $target{lib_cflags}, $target{shared_cflag}) -} +LIB_LDFLAGS={- join(' ', $target{shared_ldflag}, $config{shared_ldflag}) -} DSO_CPPFLAGS={- $target{dso_cppflags} || "" -} DSO_CFLAGS={- $target{dso_cflags} || "" -} DSO_LDFLAGS={- $target{dso_ldflag} || "" -} @@ -191,17 +189,17 @@ BIN_LDFLAGS={- $target{bin_lflags} -} PERL={- $config{perl} -} -AR={- $target{ar} -} -ARFLAGS= {- $target{arflags} -} +AR={- $config{ar} -} +ARFLAGS= {- join(' ', @{$config{arflags}}) -} AROUTFLAG={- $target{aroutflag} || "/out:" -}$(OSSL_EMPTY) -MT={- $target{mt} -} -MTFLAGS= {- $target{mtflags} -} +MT={- $config{mt} -} +MTFLAGS= {- join(' ', @{$config{mtflags}}) -} MTINFLAG={- $target{mtinflag} || "-manifest " -}$(OSSL_EMPTY) MTOUTFLAG={- $target{mtoutflag} || "-outputresource:" -}$(OSSL_EMPTY) -AS={- $target{as} -} -ASFLAGS={- $target{asflags} -} +AS={- $config{as} -} +ASFLAGS={- join(' ', @{$config{asflags}}) -} ASOUTFLAG={- $target{asoutflag} -}$(OSSL_EMPTY) PERLASM_SCHEME= {- $target{perlasm_scheme} -} @@ -316,10 +314,10 @@ install_dev: @if "$(INSTALLTOP)"=="" ( echo INSTALLTOP should not be empty & exit 1 ) @echo *** Installing development files @"$(PERL)" "$(SRCDIR)\util\mkdir-p.pl" "$(INSTALLTOP)\include\openssl" - @rem {- output_off() unless grep { $_ eq "OPENSSL_USE_APPLINK" } @{$target{defines}}; "" -} + @rem {- output_off() unless grep { $_ eq "OPENSSL_USE_APPLINK" } @{$config{defines}}; "" -} @"$(PERL)" "$(SRCDIR)\util\copy.pl" "$(SRCDIR)\ms\applink.c" \ "$(INSTALLTOP)\include\openssl" - @rem {- output_on() unless grep { $_ eq "OPENSSL_USE_APPLINK" } @{$target{defines}}; "" -} + @rem {- output_on() unless grep { $_ eq "OPENSSL_USE_APPLINK" } @{$config{defines}}; "" -} @"$(PERL)" "$(SRCDIR)\util\copy.pl" "$(SRCDIR)\include\openssl\*.h" \ "$(INSTALLTOP)\include\openssl" @"$(PERL)" "$(SRCDIR)\util\copy.pl" $(BLDDIR)\include\openssl\*.h \ |