my $y = platform->sharedlib_simple($_);
$x ? "\"$x;$y\"" : () }
@{$unified_info{libraries}}) -}
-ENGINES={- join(" ", map { platform->dso($_) } @{$unified_info{engines}}) -}
+MODULES={- join(" ", map { platform->dso($_) } @{$unified_info{modules}}) -}
PROGRAMS={- join(" ", map { platform->bin($_) } @{$unified_info{programs}}) -}
SCRIPTS={- join(" ", @{$unified_info{scripts}}) -}
{- output_off() if $disabled{makedepend}; "" -}
INSTALL_LIBS={-
join(" ", map { platform->staticlib($_) // () }
- grep { !$unified_info{attributes}->{$_}->{noinst} }
+ grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
@{$unified_info{libraries}})
-}
INSTALL_SHLIBS={-
join(" ", map { platform->sharedlib($_) // () }
- grep { !$unified_info{attributes}->{$_}->{noinst} }
+ grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
@{$unified_info{libraries}})
-}
INSTALL_SHLIB_INFO={-
join(" ", map { my $x = platform->sharedlib($_);
my $y = platform->sharedlib_simple($_);
$x ? "\"$x;$y\"" : () }
- grep { !$unified_info{attributes}->{$_}->{noinst} }
+ grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
@{$unified_info{libraries}})
-}
INSTALL_ENGINES={-
join(" ", map { platform->dso($_) }
- grep { !$unified_info{attributes}->{$_}->{noinst} }
- @{$unified_info{engines}})
+ grep { !$unified_info{attributes}->{modules}->{$_}->{noinst}
+ && $unified_info{attributes}->{modules}->{$_}->{engine} }
+ @{$unified_info{modules}})
-}
INSTALL_PROGRAMS={-
join(" ", map { platform->bin($_) }
- grep { !$unified_info{attributes}->{$_}->{noinst} }
+ grep { !$unified_info{attributes}->{programs}->{$_}->{noinst} }
@{$unified_info{programs}})
-}
-{- output_off() if $disabled{apps}; "" -}
-BIN_SCRIPTS=$(BLDDIR)/tools/c_rehash
-MISC_SCRIPTS=$(BLDDIR)/apps/CA.pl $(BLDDIR)/apps/tsget.pl:tsget
-{- output_on() if $disabled{apps}; "" -}
+BIN_SCRIPTS={-
+ join(" ", map { my $x = $unified_info{attributes}->{scripts}->{$_}->{linkname};
+ $x ? "$_:$x" : $_ }
+ grep { !$unified_info{attributes}->{scripts}->{$_}->{noinst}
+ && !$unified_info{attributes}->{scripts}->{$_}->{misc} }
+ @{$unified_info{scripts}})
+-}
+MISC_SCRIPTS={-
+ join(" ", map { my $x = $unified_info{attributes}->{scripts}->{$_}->{linkname};
+ $x ? "$_:$x" : $_ }
+ grep { !$unified_info{attributes}->{scripts}->{$_}->{noinst}
+ && $unified_info{attributes}->{scripts}->{$_}->{misc} }
+ @{$unified_info{scripts}})
+-}
APPS_OPENSSL={- use File::Spec::Functions;
catfile("apps","openssl") -}
libdir={- file_name_is_absolute($libdir)
? $libdir : '$(INSTALLTOP)/$(LIBDIR)' -}
ENGINESDIR=$(libdir)/engines-{- $sover_dirname -}
+MODULESDIR=$(libdir)/ossl-modules
# Convenience variable for those who want to set the rpath in shared
# libraries and applications
join(' ', $target{lib_cppflags} || (),
$target{shared_cppflag} || (),
(map { '-D'.$_ }
- @{$config{lib_defines}},
- @{$config{shared_defines}}),
+ @{$config{lib_defines} || ()},
+ @{$config{shared_defines} || ()}),
@{$config{lib_cppflags}},
@{$config{shared_cppflag}});
join(' ', $lib_cppflags,
(map { '-D'.$_ }
'OPENSSLDIR="\"$(OPENSSLDIR)\""',
- 'ENGINESDIR="\"$(ENGINESDIR)\""'),
+ 'ENGINESDIR="\"$(ENGINESDIR)\""',
+ 'MODULESDIR="\"$(MODULESDIR)\""'),
'$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -}
LIB_CFLAGS={- join(' ', $target{lib_cflags} || (),
$target{shared_cflag} || (),
LIB_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS)
DSO_CPPFLAGS={- join(' ', $target{dso_cppflags} || (),
$target{module_cppflags} || (),
+ (map { '-D'.$_ }
+ @{$config{dso_defines} || ()},
+ @{$config{module_defines} || ()}),
@{$config{dso_cppflags}},
@{$config{module_cppflags}},
'$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -}
'$(CNF_LDFLAGS)', '$(LDFLAGS)') -}
DSO_EX_LIBS=$(CNF_EX_LIBS) $(EX_LIBS)
BIN_CPPFLAGS={- join(' ', $target{bin_cppflags} || (),
+ (map { '-D'.$_ } @{$config{bin_defines} || ()}),
@{$config{bin_cppflags}},
'$(CNF_CPPFLAGS)', '$(CPPFLAGS)') -}
BIN_CFLAGS={- join(' ', $target{bin_cflags} || (),
# The main targets ###################################################
-{- dependmagic('all'); -}: build_libs_nodep build_engines_nodep build_programs_nodep link-utils
+{- dependmagic('all'); -}: build_libs_nodep build_modules_nodep build_programs_nodep link-utils
{- dependmagic('build_libs'); -}: build_libs_nodep
-{- dependmagic('build_engines'); -}: build_engines_nodep
+{- dependmagic('build_modules'); -}: build_modules_nodep
{- dependmagic('build_programs'); -}: build_programs_nodep
build_generated: $(GENERATED_MANDATORY)
build_libs_nodep: libcrypto.pc libssl.pc openssl.pc
-build_engines_nodep: $(ENGINES)
+build_modules_nodep: $(MODULES)
build_programs_nodep: $(PROGRAMS) $(SCRIPTS)
# Kept around for backward compatibility
@ : {- output_on() if $disabled{makedepend}; "" -}
test: tests
-{- dependmagic('tests'); -}: build_programs_nodep build_engines_nodep link-utils
+{- dependmagic('tests'); -}: build_programs_nodep build_modules_nodep link-utils
@ : {- output_off() if $disabled{tests}; "" -}
( cd test; \
mkdir -p test-runs; \
PERL="$(PERL)" \
EXE_EXT={- platform->binext() -} \
OPENSSL_ENGINES=`cd ../$(BLDDIR)/engines 2>/dev/null && pwd` \
+ OPENSSL_MODULES=`cd ../$(BLDDIR)/providers 2>/dev/null && pwd` \
OPENSSL_DEBUG_MEMORY=on \
$(PERL) ../$(SRCDIR)/test/run_tests.pl $(TESTS) )
@ : {- if ($disabled{tests}) { output_on(); } else { output_off(); } "" -}
$(RM) *{- platform->defext() -}
clean: libclean
- $(RM) $(PROGRAMS) $(TESTPROGS) $(ENGINES) $(SCRIPTS)
+ $(RM) $(PROGRAMS) $(TESTPROGS) $(MODULES) $(SCRIPTS)
$(RM) $(GENERATED_MANDATORY) $(GENERATED)
- -$(RM) `find . -name .git -prune -o -name '*{- platform->depext() -}' -print`
- -$(RM) `find . -name .git -prune -o -name '*{- platform->objext() -}' -print`
+ -$(RM) `find . -name '*{- platform->depext() -}' \! -name '.*' -print`
+ -$(RM) `find . -name '*{- platform->objext() -}' \! -name '.*' -print`
$(RM) core
$(RM) tags TAGS doc-nits
$(RM) -r test/test-runs
$(RM) openssl.pc libcrypto.pc libssl.pc
- -$(RM) `find . -name .git -prune -o -type l -print`
+ -$(RM) `find . -type l \! -name '.*' -print`
$(RM) $(TARFILE)
distclean: clean
install_docs: install_man_docs install_html_docs
uninstall_docs: uninstall_man_docs uninstall_html_docs
- $(RM) -r -v $(DESTDIR)$(DOCDIR)
+ $(RM) -r $(DESTDIR)$(DOCDIR)
install_ssldirs:
@$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)/certs
-$(RMDIR) $(DESTDIR)$(libdir)/pkgconfig
-$(RMDIR) $(DESTDIR)$(libdir)
-install_engines: install_runtime_libs build_engines
+install_engines: install_runtime_libs build_modules
@[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
@$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(ENGINESDIR)/
- @$(ECHO) "*** Installing engines"
+ @$(ECHO) "*** Installing ENGINE modules"
@set -e; for e in dummy $(INSTALL_ENGINES); do \
if [ "$$e" = "dummy" ]; then continue; fi; \
fn=`basename $$e`; \
done
uninstall_engines:
- @$(ECHO) "*** Uninstalling engines"
+ @$(ECHO) "*** Uninstalling ENGINE modules"
@set -e; for e in dummy $(INSTALL_ENGINES); do \
if [ "$$e" = "dummy" ]; then continue; fi; \
fn=`basename $$e`; \
: {- output_off() unless windowsdll(); "" -}; \
$(ECHO) "install $$s -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
cp $$s $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
- chmod 644 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
+ chmod 755 $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \
$(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
: {- output_on() unless windowsdll(); "" -}{- output_off() if windowsdll(); "" -}; \
generate_crypto_conf generate_crypto_asn1 generate_fuzz_oids
.PHONY: doc-nits
-doc-nits:
- (cd $(SRCDIR); $(PERL) util/find-doc-nits -n -p ) >doc-nits
- @if [ -s doc-nits ] ; then cat doc-nits ; exit 1; \
- else echo 'doc-nits: no errors.'; rm doc-nits ; fi
+doc-nits: build_generated
+ (cd $(SRCDIR); $(PERL) util/find-doc-nits -n -e )
# Test coverage is a good idea for the future
#coverage: $(PROGRAMS) $(TESTPROGRAMS)
generate_apps:
( cd $(SRCDIR); $(PERL) VMS/VMSify-conf.pl \
< apps/openssl.cnf > apps/openssl-vms.cnf )
+ @ : {- output_off() if $disabled{apps}; "" -}
+ ( b=`pwd`; cd $(SRCDIR); \
+ $(PERL) -I$$b apps/progs.pl -H $(APPS_OPENSSL) > apps/progs.h )
+ ( b=`pwd`; cd $(SRCDIR); \
+ $(PERL) -I$$b apps/progs.pl -C $(APPS_OPENSSL) > apps/progs.c )
+ @ : {- output_on() if $disabled{apps}; "" -}
generate_crypto_bn:
( cd $(SRCDIR); $(PERL) crypto/bn/bn_prime.pl > crypto/bn/bn_prime.h )
our @cryptoheaders =
qw( include/internal/dso.h
include/internal/o_dir.h
- include/internal/o_str.h
include/internal/err.h
include/internal/sslconf.h );
- our @cryptoskipheaders = ( @sslheaders,
+ our @cryptoskipheaders = ( @sslheaders,
qw( include/openssl/conf_api.h
include/openssl/ebcdic.h
include/openssl/opensslconf.h
my $dofile = abs2rel(rel2abs(catfile($config{sourcedir},
"util", "dofile.pl")),
rel2abs($config{builddir}));
+ my @modules = ( 'configdata.pm',
+ grep { $_ =~ m|\.pm$| } @{$args{deps}} );
+ my %moduleincs = map { '"-I'.dirname($_).'"' => 1 } @modules;
+ @modules = map { "-M".basename($_, '.pm') } @modules;
+ my $modules = join(' ', '', sort keys %moduleincs, @modules);
return <<"EOF";
-$args{src}: $args{generator}->[0] $deps
- \$(PERL) "-I\$(BLDDIR)" -Mconfigdata "$dofile" \\
- "-o$target{build_file}" $generator > \$@
+$args{src}: $args{generator}->[0] $deps \$(BLDDIR)/configdata.pm
+ \$(PERL)$modules "$dofile" "-o$target{build_file}" $generator > \$@
EOF
} else {
return <<"EOF";
EOF
}
} else {
+ my $cppflags = {
+ shlib => '$(LIB_CFLAGS) $(LIB_CPPFLAGS)',
+ lib => '$(LIB_CFLAGS) $(LIB_CPPFLAGS)',
+ dso => '$(DSO_CFLAGS) $(DSO_CPPFLAGS)',
+ bin => '$(BIN_CFLAGS) $(BIN_CPPFLAGS)'
+ } -> {$args{intent}};
+
if ($args{generator}->[0] =~ /\.pl$/) {
- $generator = 'CC="$(CC)" $(PERL)'.$generator_incs.' '.$generator;
+ $generator = 'CC="$(CC)" $(PERL)'.$generator_incs.' '.$generator
+ .' "$(PERLASM_SCHEME)"'.$incs.' '.$cppflags.$defs.' $(PROCESSSOR)';
} elsif ($args{generator}->[0] =~ /\.m4$/) {
$generator = 'm4 -B 8192'.$generator_incs.' '.$generator.' >'
} elsif ($args{generator}->[0] =~ /\.S$/) {
die "Generator type for $args{src} unknown: $generator\n";
}
- my $cppflags = {
- shlib => '$(LIB_CFLAGS) $(LIB_CPPFLAGS)',
- lib => '$(LIB_CFLAGS) $(LIB_CPPFLAGS)',
- dso => '$(DSO_CFLAGS) $(DSO_CPPFLAGS)',
- bin => '$(BIN_CFLAGS) $(BIN_CPPFLAGS)'
- } -> {$args{intent}};
if (defined($generator)) {
return <<"EOF";
$args{src}: $args{generator}->[0] $deps
# last in the line. We may therefore need to put back a line ending.
sub src2obj {
my %args = @_;
- my $obj = platform->obj($args{obj});
+ my $obj = platform->convertext($args{obj});
my $dep = platform->dep($args{obj});
my @srcs = @{$args{srcs}};
my $srcs = join(" ", @srcs);
sub obj2shlib {
my %args = @_;
my @linkdirs = ();
- foreach (@{args{deps}}) {
- my $d = dirname($_);
- push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ my @linklibs = ();
+ foreach (@{$args{deps}}) {
+ if (platform->isstaticlib($_)) {
+ push @linklibs, platform->convertext($_);
+ } else {
+ my $d = "-L" . dirname($_);
+ my $l = basename($_);
+ $l =~ s/^lib//;
+ $l = "-l" . $l;
+ push @linklibs, $l;
+ push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ }
}
- my $linkflags = join("", map { "-L$_ " } @linkdirs);
- my $linklibs = join("", map { my $f = basename($_);
- (my $l = $f) =~ s/^lib//;
- " -l$l" } @{$args{deps}});
- my @objs = map { platform->obj($_) }
+ my $linkflags = join("", map { $_." " } @linkdirs);
+ my $linklibs = join("", map { $_." " } @linklibs);
+ my @objs = map { platform->convertext($_) }
grep { !platform->isdef($_) }
@{$args{objs}};
my @defs = map { platform->def($_) }
}
sub obj2dso {
my %args = @_;
- my $dso = platform->dso($args{lib});
+ my $dso = platform->dso($args{module});
my @linkdirs = ();
- foreach (@{args{deps}}) {
- my $d = dirname($_);
- push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ my @linklibs = ();
+ foreach (@{$args{deps}}) {
+ next unless defined $_;
+ if (platform->isstaticlib($_)) {
+ push @linklibs, platform->convertext($_);
+ } else {
+ my $d = "-L" . dirname($_);
+ my $l = basename($_);
+ $l =~ s/^lib//;
+ $l = "-l" . $l;
+ push @linklibs, $l;
+ push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ }
}
- my $linkflags = join("", map { "-L$_ " } @linkdirs);
- my $linklibs = join("", map { my $f = basename($_);
- (my $l = $f) =~ s/^lib//;
- " -l$l" } @{$args{deps}});
- my @objs = map { platform->obj($_) }
+ my $linkflags = join("", map { $_." " } @linkdirs);
+ my $linklibs = join("", map { $_." " } @linklibs);
+ my @objs = map { platform->convertext($_) }
grep { !platform->isdef($_) }
@{$args{objs}};
my @defs = map { platform->def($_) }
$dso: $deps
\$(CC) \$(DSO_CFLAGS) $linkflags\$(DSO_LDFLAGS) \\
-o $dso$shared_def $objs \\
- $linklibs \$(DSO_EX_LIBS)
+ $linklibs\$(DSO_EX_LIBS)
EOF
}
sub obj2lib {
my $objs = join(" ", map { platform->obj($_) } @{$args{objs}});
my $deps = join(" ", compute_lib_depends(@{$args{deps}}));
my @linkdirs = ();
- foreach (@{args{deps}}) {
- next if $_ =~ /\.a$/;
- my $d = dirname($_);
- push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ my @linklibs = ();
+ foreach (@{$args{deps}}) {
+ next unless defined $_;
+ if (platform->isstaticlib($_)) {
+ push @linklibs, platform->convertext($_);
+ } else {
+ my $d = "-L" . dirname($_);
+ my $l = basename($_);
+ $l =~ s/^lib//;
+ $l = "-l" . $l;
+ push @linklibs, $l;
+ push @linkdirs, $d unless grep { $d eq $_ } @linkdirs;
+ }
}
- my $linkflags = join("", map { "-L$_ " } @linkdirs);
- my $linklibs = join("", map { if ($_ =~ s/\.a$//) {
- " ".platform->staticlib($_);
- } else {
- my $f = basename($_);
- (my $l = $f) =~ s/^lib//;
- " -l$l"
- }
- } @{$args{deps}});
+ my $linkflags = join("", map { $_." " } @linkdirs);
+ my $linklibs = join("", map { $_." " } @linklibs);
my $cmd = '$(CC)';
my $cmdflags = '$(BIN_CFLAGS)';
if (grep /_cc\.o$/, @{$args{objs}}) {
rm -f $bin
\$\${LDCMD:-$cmd} $cmdflags $linkflags\$(BIN_LDFLAGS) \\
-o $bin $objs \\
- $linklibs \$(BIN_EX_LIBS)
+ $linklibs\$(BIN_EX_LIBS)
EOF
}
sub in2script {