summaryrefslogtreecommitdiffstats
path: root/Configurations
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2018-01-26 19:56:44 +0100
committerRichard Levitte <levitte@openssl.org>2018-01-28 07:26:11 +0100
commit5b18235a186dd28ec7a37ed95e29f4ab61f2bcbe (patch)
tree8a47daad7d6f64c43fa78a696f90ce6db1c08432 /Configurations
parent8c3bc594e0c74926bfefb84b8bae8a2fac82e465 (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.conf2
-rw-r--r--Configurations/descrip.mms.tmpl16
-rw-r--r--Configurations/shared-info.pl4
-rw-r--r--Configurations/unix-Makefile.tmpl47
-rw-r--r--Configurations/windows-makefile.tmpl40
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 \