SRCTOP=../$(SRCDIR) \
BLDTOP=../$(BLDDIR) \
EXE_EXT={- $exeext -} \
+ OPENSSL_ENGINES=../$(BLDDIR)/engines \
$(PERL) ../$(SRCDIR)/test/run_tests.pl $(TESTS) )
list-tests:
# This exists solely for those who still type 'make depend'
#
# We check if any depfile is newer than Makefile and decide to
-# concatenate only if that is true, or if 'test' (a.k.a [ )
-# doesn't have the option to figure it out (-nt).
-#
-# To check if test has the file age comparison operator, we
-# simply try, and rely test to exit with 0 if the comparison
-# was true, 1 if false, and most importantly, 2 if it doesn't
-# recognise the operator.
+# concatenate only if that is true.
depend:
@: {- output_off() if $disabled{makedepend}; "" -}
- @catdepends=false; \
- if [ Makefile -nt Makefile ] 2>/dev/null || [ $$? = 1 ]; then \
- for d in $(DEPS); do \
- if [ $$d -nt Makefile ]; then \
- catdepends=true; \
- break; \
- fi; \
- done; \
- else \
- catdepends=true; \
- fi; \
- if [ $$catdepends = true ]; then \
+ @if [ -z "`find $(DEPS) -newer Makefile 2>/dev/null; exit 0`" ]; then \
( sed -e '/^# DO NOT DELETE THIS LINE.*/,$$d' < Makefile; \
echo '# DO NOT DELETE THIS LINE -- make depend depends on it.'; \
echo; \
- for d in $(DEPS); do \
- if [ -f $$d ]; then cat $$d; fi; \
+ for f in $(DEPS); do \
+ if [ -f $$f ]; then cat $$f; fi; \
done ) > Makefile.new; \
if cmp Makefile.new Makefile >/dev/null 2>&1; then \
rm -f Makefile.new; \
# A method to extract all names from a .pod file
# The first sed extracts everything between "=head1 NAME" and the next =head1
-# The second sed joins all the lines into one
-# The third sed removes the description and turns all commas into spaces
+# The perl command joins all the lines into one
+# The second sed removes the description and turns all commas into spaces
# VoilĂ , you have a space separated list of names!
EXTRACT_NAMES=sed -e '1,/^=head1 *NAME *$$/d;/^=head1/,$$d' | \
- sed -e ':a;{N;s/\n/ /;ba}' | \
+ $(PERL) -p -0 -e 's/\n/ /g; END {print "\n"}' | \
sed -e 's/ - .*$$//;s/,/ /g'
PROCESS_PODS=\
set -e; \
lint:
lint -DLINT $(INCLUDES) $(SRCS)
-generate_apps: $(SRCDIR)/apps/openssl-vms.cnf $(SRCDIR)/apps/progs.h
-
-generate_crypto_bn: $(SRCDIR)/crypto/bn/bn_prime.h
-
-generate_crypto_objects: $(SRCDIR)/crypto/objects/obj_dat.h \
- $(SRCDIR)/include/openssl/obj_mac.h \
- $(SRCDIR)/crypto/objects/obj_xref.h
+{- # because the program apps/openssl has object files as sources, and
+ # they then have the corresponding C files as source, we need to chain
+ # the lookups in %unified_info
+ my $apps_openssl = catfile("apps","openssl");
+ our @openssl_source = map { @{$unified_info{sources}->{$_}} }
+ @{$unified_info{sources}->{$apps_openssl}};
+ ""; -}
+generate_apps:
+ ( cd $(SRCDIR); $(PERL) VMS/VMSify-conf.pl \
+ < apps/openssl.cnf > apps/openssl-vms.cnf )
+ ( b=`pwd`; cd $(SRCDIR); $(PERL) -I$$b apps/progs.pl \
+ {- join(" ", @openssl_source) -} \
+ > apps/progs.h )
+
+generate_crypto_bn:
+ ( cd $(SRCDIR); $(PERL) crypto/bn/bn_prime.pl > crypto/bn/bn_prime.h )
+
+generate_crypto_objects:
+ ( cd $(SRCDIR); $(PERL) crypto/objects/obj_dat.pl \
+ include/openssl/obj_mac.h \
+ crypto/objects/obj_dat.h )
+ ( cd $(SRCDIR); $(PERL) crypto/objects/objects.pl \
+ crypto/objects/objects.txt \
+ crypto/objects/obj_mac.num \
+ include/openssl/obj_mac.h )
+ ( cd $(SRCDIR); $(PERL) crypto/objects/objxref.pl \
+ crypto/objects/obj_mac.num \
+ crypto/objects/obj_xref.txt \
+ > crypto/objects/obj_xref.h )
errors:
( cd $(SRCDIR); $(PERL) util/ck_errf.pl -strict */*.c */*/*.c )
ln -sf "../$(SRCDIR)/util/shlib_wrap.sh" "$(BLDDIR)/util"; \
fi
-$(SRCDIR)/apps/openssl-vms.cnf: $(SRCDIR)/apps/openssl.cnf
- $(PERL) $(SRCDIR)/VMS/VMSify-conf.pl \
- < $(SRCDIR)/apps/openssl.cnf > $(SRCDIR)/apps/openssl-vms.cnf
-
-{- # because the program apps/openssl has object files as sources, and
- # they then have the corresponding C files as source, we need to chain
- # the lookups in %unified_info
- my $apps_openssl = catfile("apps","openssl");
- our @openssl_source = map { @{$unified_info{sources}->{$_}} }
- @{$unified_info{sources}->{$apps_openssl}};
- ""; -}
-$(SRCDIR)/apps/progs.h:
- $(RM) $@
- $(PERL) $(SRCDIR)/apps/progs.pl {- join(" ", @openssl_source) -} > $@
-
-$(SRCDIR)/crypto/bn/bn_prime.h: $(SRCDIR)/crypto/bn/bn_prime.pl
- $(PERL) $(SRCDIR)/crypto/bn/bn_prime.pl > $(SRCDIR)/crypto/bn/bn_prime.h
-
-$(SRCDIR)/crypto/objects/obj_dat.h: $(SRCDIR)/crypto/objects/obj_dat.pl \
- $(SRCDIR)/include/openssl/obj_mac.h
- $(PERL) $(SRCDIR)/crypto/objects/obj_dat.pl \
- $(SRCDIR)/include/openssl/obj_mac.h \
- $(SRCDIR)/crypto/objects/obj_dat.h
-
-# objects.pl both reads and writes obj_mac.num
-$(SRCDIR)/include/openssl/obj_mac.h: $(SRCDIR)/crypto/objects/objects.pl \
- $(SRCDIR)/crypto/objects/objects.txt \
- $(SRCDIR)/crypto/objects/obj_mac.num
- $(PERL) $(SRCDIR)/crypto/objects/objects.pl \
- $(SRCDIR)/crypto/objects/objects.txt \
- $(SRCDIR)/crypto/objects/obj_mac.num \
- $(SRCDIR)/include/openssl/obj_mac.h
- @sleep 1; touch $(SRCDIR)/include/openssl/obj_mac.h; sleep 1
-
-$(SRCDIR)/crypto/objects/obj_xref.h: $(SRCDIR)/crypto/objects/objxref.pl \
- $(SRCDIR)/crypto/objects/obj_xref.txt \
- $(SRCDIR)/crypto/objects/obj_mac.num
- $(PERL) $(SRCDIR)/crypto/objects/objxref.pl \
- $(SRCDIR)/crypto/objects/obj_mac.num \
- $(SRCDIR)/crypto/objects/obj_xref.txt \
- > $(SRCDIR)/crypto/objects/obj_xref.h
- @sleep 1; touch $(SRCDIR)/crypto/objects/obj_xref.h; sleep 1
-
FORCE:
# Building targets ###################################################
my %args = @_;
my $generator = join(" ", @{$args{generator}});
my $incs = join("", map { " -I".$_ } @{$args{incs}});
+ my $deps = join(" ", @{$args{deps}});
if ($args{src} !~ /\.[sS]$/) {
return <<"EOF";
-$args{src}: $args{generator}->[0]
+$args{src}: $args{generator}->[0] $deps
\$(PERL) $generator > \$@
EOF
} else {
if ($args{src} =~ /\.S$/) {
(my $target = $args{src}) =~ s|\.S$|.s|;
return <<"EOF";
-$target: $args{generator}->[0]
+$target: $args{generator}->[0] $deps
( trap "rm -f \$@.*" INT 0; \\
$generator \$@.S; \\
\$(CC) \$(CFLAGS) $incs -E -P \$@.S > \$@.i && mv -f \$@.i \$@ )
}
# Otherwise....
return <<"EOF";
-$args{src}: $args{generator}->[0]
+$args{src}: $args{generator}->[0] $deps
$generator \$@
EOF
}
return <<"EOF";
-$args{src}: $args{generator}->[0]
+$args{src}: $args{generator}->[0] $deps
\$(CC) \$(CFLAGS) $incs -E -P \$< > \$@
EOF
}
sub src2obj {
my %args = @_;
my $obj = $args{obj};
- my @srcs = map { (my $x = $_) =~ s/\.S$/.s/; $x } ( @{$args{srcs}} );
+ my @srcs = map { if ($unified_info{generate}->{$_}) {
+ (my $x = $_) =~ s/\.S$/.s/; $x
+ } else {
+ $_
+ }
+ } ( @{$args{srcs}} );
my $srcs = join(" ", @srcs);
my $deps = join(" ", @srcs, @{$args{deps}});
my $incs = join("", map { " -I".$_ } @{$args{incs}});
if (!$disabled{makedepend} && $makedepprog =~ /\/makedepend/) {
$recipe .= <<"EOF";
$obj$depext: $deps
- rm -f \$\@.tmp; touch \$\@.tmp
- -\$(MAKEDEPEND) -f\$\@.tmp -o"|$obj$objext" -- \$(CFLAGS) $ecflags$incs -- $srcs \\
- 2>/dev/null
- perl -i -pe 's/^.*\\|//; s/ \\/(\\\\.|[^ ])*//; \$\$_ = undef if (/: *\$\$/ || /^(#.*| *)\$\$/); \$\$_.="\\n" unless !defined(\$\$_) or /\\R\$\$/g;' \$\@.tmp
+ -\$(MAKEDEPEND) -f- -o"|$obj$objext" -- \$(CFLAGS) $ecflags$incs -- $srcs \\
+ >\$\@.tmp 2>/dev/null
+ -\$(PERL) -i -pe 's/^.*\\|//; s/ \\/(\\\\.|[^ ])*//; \$\$_ = undef if (/: *\$\$/ || /^(#.*| *)\$\$/); \$\$_.="\\n" unless !defined(\$\$_) or /\\R\$\$/g;' \$\@.tmp
\@if cmp \$\@.tmp \$\@ > /dev/null 2> /dev/null; then \\
rm -f \$\@.tmp; \\
else \\