grep { $unified_info{sources}->{$_}->[0] =~ /\.c$/ }
keys %{$unified_info{sources}}); -}
{- output_on() if $disabled{makedepend}; "" -}
+GENERATED={- join(" ", map { (my $x = $_) =~ s|\.S$|\.s|; $x } keys %{$unified_info{generate}}) -}
BIN_SCRIPTS=$(BLDDIR)/tools/c_rehash
MISC_SCRIPTS=$(SRCDIR)/tools/c_hash $(SRCDIR)/tools/c_info \
LDFLAGS= {- $target{lflags} -}
PLIB_LDFLAGS= {- $target{plib_lflags} -}
EX_LIBS= {- $target{ex_libs} -} {- $config{ex_libs} -}
-SHARED_CFLAGS={- $target{shared_cflag} || "" -}
-SHARED_LDFLAGS={- $target{shared_ldflag}." ".$config{shared_ldflag}
- # Unlike other OSes (like Solaris, Linux, Tru64,
- # IRIX) BSD run-time linkers (tested OpenBSD, NetBSD
- # and FreeBSD) "demand" RPATH set on .so objects.
- # Apparently application RPATH is not global and
- # does not apply to .so linked with other .so.
- # Problem manifests itself when libssl.so fails to
- # load libcrypto.so. One can argue that we should
- # engrave this into Makefile.shared rules or into
- # BSD-* config lines above. Meanwhile let's try to
- # be cautious and pass -rpath to linker only when
- # $prefix is not /usr.
- . ($config{target} =~ m|^BSD-| && $prefix !~ m|^/usr/.*$|
- ? " -Wl,-rpath,\$\$(LIBRPATH)" : "") -}
-SHARED_RCFLAGS={- $target{shared_rcflag} -}
+LIB_CFLAGS={- $target{shared_cflag} || "" -}
+LIB_LDFLAGS={- $target{shared_ldflag}." ".$config{shared_ldflag}
+ # Unlike other OSes (like Solaris, Linux, Tru64,
+ # IRIX) BSD run-time linkers (tested OpenBSD, NetBSD
+ # and FreeBSD) "demand" RPATH set on .so objects.
+ # Apparently application RPATH is not global and
+ # does not apply to .so linked with other .so.
+ # Problem manifests itself when libssl.so fails to
+ # load libcrypto.so. One can argue that we should
+ # engrave this into Makefile.shared rules or into
+ # BSD-* config lines above. Meanwhile let's try to
+ # be cautious and pass -rpath to linker only when
+ # $prefix is not /usr.
+ . ($config{target} =~ m|^BSD-| && $prefix !~ m|^/usr/.*$|
+ ? " -Wl,-rpath,\$\$(LIBRPATH)" : "") -}
+RCFLAGS={- $target{shared_rcflag} -}
DSO_CFLAGS={- $target{shared_cflag} || "" -}
+DSO_LDFLAGS=$(LIB_LDFLAGS)
BIN_CFLAGS={- "" -}
PERL={- $config{perl} -}
uninstall: uninstall_docs uninstall_sw
clean: libclean
- rm -f $(PROGRAMS) $(TESTPROGS)
- rm -f `find $(BLDDIR) -name '*{- $depext -}'`
- rm -f `find $(BLDDIR) -name '*{- $objext -}'`
- rm -f $(BLDDIR)/core
- rm -f $(BLDDIR)/tags $(BLDDIR)/TAGS
- rm -f $(BLDDIR)/openssl.pc $(BLDDIR)/libcrypto.pc $(BLDDIR)/libssl.pc
- -rm -f `find $(BLDDIR) -type l`
+ rm -f $(PROGRAMS) $(TESTPROGS) $(ENGINES) $(SCRIPTS)
+ rm -f $(GENERATED)
+ -rm -f `find . -name '*{- $depext -}'`
+ -rm -f `find . -name '*{- $objext -}'`
+ rm -f core
+ rm -f tags TAGS
+ rm -f openssl.pc libcrypto.pc libssl.pc
+ -rm -f `find . -type l`
rm -f $(TARFILE)
# This exists solely for those who still type 'make depend'
for d in $(DEPS); do \
if [ -f $$d ]; then cat $$d; fi; \
done ) > Makefile.new; \
- if ! cmp Makefile.new Makefile >/dev/null 2>&1; then \
- mv -f Makefile.new Makefile; \
- else \
+ if cmp Makefile.new Makefile >/dev/null 2>&1; then \
rm -f Makefile.new; \
+ else \
+ mv -f Makefile.new Makefile; \
fi; \
fi
@: {- output_on() if $disabled{makedepend}; "" -}
(my $target = $args{src}) =~ s|\.S$|.s|;
return <<"EOF";
$target: $args{generator}->[0]
- ( trap "rm -f \$@.S" INT; \\
+ ( trap "rm -f \$@.*" INT 0; \\
$generator \$@.S; \\
- \$(CC) \$(CFLAGS) $incs -E -P \$@.S > \$@ && rm -f \$@.S )
+ \$(CC) \$(CFLAGS) $incs -E -P \$@.S > \$@.i && mv -f \$@.i \$@ )
EOF
}
# Otherwise....
}
}
+ # Should one wonder about the end of the Perl snippet, it's because this
+ # second regexp eats up line endings as well, if the removed path is the
+ # last in the line. We may therefore need to put back a line ending.
sub src2obj {
my %args = @_;
my $obj = $args{obj};
my $srcs = join(" ", @srcs);
my $deps = join(" ", @srcs, @{$args{deps}});
my $incs = join("", map { " -I".$_ } @{$args{incs}});
- my $ecflags = { lib => '$(SHARED_CFLAGS)',
+ my $ecflags = { lib => '$(LIB_CFLAGS)',
dso => '$(DSO_CFLAGS)',
bin => '$(BIN_CFLAGS)' } -> {$args{intent}};
my $makedepprog = $config{makedepprog};
rm -f \$\@.tmp; touch \$\@.tmp
-\$(MAKEDEPEND) -f\$\@.tmp -o"|$obj$objext" -- \$(CFLAGS) $ecflags$incs -- $srcs \\
2>/dev/null
- sed -e 's/^.*|//' -e 's/ \\/\\(\\\\.\\|[^ ]\\)*//g' -e '/: *\$\$/d' -e '/^\\(#.*\\| *\\)\$\$/d' \$\@.tmp > \$\@
- rm \$\@.tmp
+ 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 \\
+ mv \$\@.tmp \$\@; \\
+ fi
EOF
$deps = $obj.$depext;
}
$obj$objext: $deps
\$(CC) \$(CFLAGS) $ecflags$incs -MMD -MF $obj$depext.tmp -MT \$\@ -c -o \$\@ $srcs
\@touch $obj$depext.tmp
- \@if ! cmp $obj$depext.tmp $obj$depext > /dev/null 2> /dev/null; then \\
+ \@if cmp $obj$depext.tmp $obj$depext > /dev/null 2> /dev/null; then \\
+ rm -f $obj$depext.tmp; \\
+ else \\
mv $obj$depext.tmp $obj$depext; \\
fi
EOF
$target: $lib$libext $deps $ordinalsfile
\$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
PLATFORM=\$(PLATFORM) \\
- PERL=\$(PERL) SRCDIR="\$(SRCDIR)" DSTDIR="$libd" \\
- INSTALLTOP="\$(INSTALLTOP)" LIBDIR="\$(LIBDIR)" \\
- LIBDEPS="\$(PLIB_LDFLAGS) $linklibs \$(EX_LIBS)" \\
+ PERL=\$(PERL) SRCDIR='\$(SRCDIR)' DSTDIR="$libd" \\
+ INSTALLTOP='\$(INSTALLTOP)' LIBDIR='\$(LIBDIR)' \\
+ LIBDEPS='\$(PLIB_LDFLAGS) '"$linklibs"' \$(EX_LIBS)' \\
LIBNAME=$libname LIBVERSION=\$(SHLIB_MAJOR).\$(SHLIB_MINOR) \\
- LIBCOMPATVERSIONS=";\$(SHLIB_VERSION_HISTORY)" \\
- CC="\$(CC)" CFLAGS="\$(CFLAGS)" LDFLAGS="\$(LDFLAGS)" \\
- CROSS_COMPILE="\$(CROSS_COMPILE)" \\
- SHARED_LDFLAGS="\$(SHARED_LDFLAGS)" SHLIB_EXT=$shlibext \\
- SHARED_RCFLAGS="\$(SHARED_RCFLAGS)" \\
+ LIBCOMPATVERSIONS=';\$(SHLIB_VERSION_HISTORY)' \\
+ CC='\$(CC)' CFLAGS='\$(CFLAGS) \$(LIB_CFLAGS)' \\
+ CROSS_COMPILE='\$(CROSS_COMPILE)' LDFLAGS='\$(LDFLAGS)' \\
+ SHARED_LDFLAGS='\$(LIB_LDFLAGS)' SHLIB_EXT=$shlibext \\
+ SHARED_RCFLAGS='\$(RCFLAGS)' \\
link_shlib.$shlib_target
EOF
. (windowsdll() ? <<"EOF" : "");
$target: $objs $deps
\$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
PLATFORM=\$(PLATFORM) \\
- PERL=\$(PERL) SRCDIR="\$(SRCDIR)" DSTDIR="$libd" \\
- LIBDEPS="\$(PLIB_LDFLAGS) $shlibdeps \$(EX_LIBS)" \\
- LIBNAME=$libname LDFLAGS="\$(LDFLAGS)" \\
- CC="\$(CC)" CFLAGS="\$(CFLAGS)" \\
- SHARED_LDFLAGS="\$(SHARED_LDFLAGS)" \\
+ PERL=\$(PERL) SRCDIR='\$(SRCDIR)' DSTDIR="$libd" \\
+ LIBDEPS='\$(PLIB_LDFLAGS) '"$shlibdeps"' \$(EX_LIBS)' \\
+ LIBNAME=$libname LDFLAGS='\$(LDFLAGS)' \\
+ CC='\$(CC)' CFLAGS='\$(CFLAGS) \$(DSO_CFLAGS)' \\
+ SHARED_LDFLAGS='\$(DSO_LDFLAGS)' \\
SHLIB_EXT=$dsoext \\
LIBEXTRAS="$objs" \\
link_dso.$shlib_target
\$(MAKE) -f \$(SRCDIR)/Makefile.shared -e \\
PERL=\$(PERL) SRCDIR=\$(SRCDIR) \\
APPNAME=$bin$exeext OBJECTS="$objs" \\
- LIBDEPS="\$(PLIB_LDFLAGS) $linklibs \$(EX_LIBS)" \\
- CC="\$(CC)" CFLAGS="\$(CFLAGS)" LDFLAGS="\$(LDFLAGS)" \\
- LIBRPATH="\$(INSTALLTOP)/\$(LIBDIR)" \\
+ LIBDEPS='\$(PLIB_LDFLAGS) '"$linklibs"' \$(EX_LIBS)' \\
+ CC='\$(CC)' CFLAGS='\$(CFLAGS) \$(BIN_CFLAGS)' \\
+ LDFLAGS='\$(LDFLAGS)' LIBRPATH='\$(INSTALLTOP)/\$(LIBDIR)' \\
link_app.$shlib_target
EOF
}