Add the adjusted perl scripts to the set of "update" scripts
[openssl.git] / Configurations / unix-Makefile.tmpl
index 3a3fd2ea1128dfb5251776e63c1fa83ac6bd701d..164b533f22e47f601cf942ca6d032739c5bf2415 100644 (file)
@@ -86,10 +86,12 @@ DEPS={- join(" ", map { (my $x = $_) =~ s|\.o$|$depext|; $x; }
 {- output_on() if $disabled{makedepend}; "" -}
 GENERATED={- join(" ", map { (my $x = $_) =~ s|\.S$|\.s|; $x } keys %{$unified_info{generate}}) -}
 
+{- output_off() if $disabled{apps}; "" -}
 BIN_SCRIPTS=$(BLDDIR)/tools/c_rehash
 MISC_SCRIPTS=$(SRCDIR)/tools/c_hash $(SRCDIR)/tools/c_info \
             $(SRCDIR)/tools/c_issuer $(SRCDIR)/tools/c_name \
-            $(BLDDIR)/apps/CA.pl $(SRCDIR)/apps/tsget
+            $(BLDDIR)/apps/CA.pl $(BLDDIR)/apps/tsget
+{- output_on() if $disabled{apps}; "" -}
 
 SHLIB_INFO={- join(" ", map { "\"".shlib($_).";".shlib_simple($_)."\"" } @{$unified_info{libraries}}) -}
 
@@ -215,13 +217,19 @@ build_apps_nodep: $(PROGRAMS) $(SCRIPTS)
 build_tests: configdata.pm build_tests_nodep depend
 build_tests_nodep: $(TESTPROGS)
 
-test tests: build_tests_nodep build_apps_nodep build_engines_nodep depend
+test: tests
+tests: build_tests_nodep build_apps_nodep build_engines_nodep \
+       depend link-utils
+       @ : {- output_off() if $disabled{tests}; "" -}
        ( cd test; \
          SRCTOP=../$(SRCDIR) \
          BLDTOP=../$(BLDDIR) \
          EXE_EXT={- $exeext -} \
          OPENSSL_ENGINES=../$(BLDDIR)/engines \
            $(PERL) ../$(SRCDIR)/test/run_tests.pl $(TESTS) )
+       @ : {- if ($disabled{tests}) { output_on(); } else { output_off(); } "" -}
+       @echo "Tests are not supported with your chosen Configure options"
+       @ : {- output_on() if !$disabled{tests}; "" -}
 
 list-tests:
        @TOP=$(SRCDIR) PERL=$(PERL) $(PERL) $(SRCDIR)/test/run_tests.pl list
@@ -260,7 +268,7 @@ clean: libclean
 # concatenate only if that is true.
 depend:
        @: {- output_off() if $disabled{makedepend}; "" -}
-       @if [ -z "`find $(DEPS) -newer Makefile 2>/dev/null; exit 0`" ]; then \
+       @if [ -n "`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; \
@@ -391,7 +399,8 @@ install_engines:
        @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
        @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(INSTALLTOP)/$(LIBDIR)/engines/
        @echo "*** Installing engines"
-       @set -e; for e in $(ENGINES); do \
+       @set -e; for e in dummy $(ENGINES); do \
+               if [ "$$e" = "dummy" ]; then continue; fi; \
                fn=`basename $$e`; \
                if [ "$$fn" = '{- dso("ossltest") -}' ]; then \
                        continue; \
@@ -405,7 +414,8 @@ install_engines:
 
 uninstall_engines:
        @echo "*** Uninstalling engines"
-       @set -e; for e in $(ENGINES); do \
+       @set -e; for e in dummy $(ENGINES); do \
+               if [ "$$e" = "dummy" ]; then continue; fi; \
                fn=`basename $$e`; \
                if [ "$$fn" = '{- dso("ossltest") -}' ]; then \
                        continue; \
@@ -421,7 +431,8 @@ install_runtime:
        @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)/misc
        @echo "*** Installing runtime files"
        : {- output_off() unless windowsdll(); "" -};
-       @set -e; for s in $(SHLIBS); do \
+       @set -e; for s in dummy $(SHLIBS); do \
+               if [ "$$s" = "dummy" ]; then continue; fi; \
                fn=`basename $$s`; \
                echo "install $$s -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
                cp $$s $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
@@ -430,7 +441,8 @@ install_runtime:
                      $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
        done
        : {- output_on() unless windowsdll(); "" -};
-       @set -e; for x in $(PROGRAMS); do \
+       @set -e; for x in dummy $(PROGRAMS); do \
+               if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                echo "install $$x -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
                cp $$x $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
@@ -438,7 +450,8 @@ install_runtime:
                mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \
                      $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
        done
-       @set -e; for x in $(BIN_SCRIPTS); do \
+       @set -e; for x in dummy $(BIN_SCRIPTS); do \
+               if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                echo "install $$x -> $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
                cp $$x $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new; \
@@ -446,7 +459,8 @@ install_runtime:
                mv -f $(DESTDIR)$(INSTALLTOP)/bin/$$fn.new \
                      $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
        done
-       @set -e; for x in $(MISC_SCRIPTS); do \
+       @set -e; for x in dummy $(MISC_SCRIPTS); do \
+               if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                echo "install $$x -> $(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \
                cp $$x $(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new; \
@@ -461,26 +475,30 @@ install_runtime:
 
 uninstall_runtime:
        @echo "*** Uninstalling runtime files"
-       @set -e; for x in $(PROGRAMS); \
+       @set -e; for x in dummy $(PROGRAMS); \
        do  \
+               if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                echo "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
                $(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
        done;
-       @set -e; for x in $(BIN_SCRIPTS); \
+       @set -e; for x in dummy $(BIN_SCRIPTS); \
        do  \
+               if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                echo "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
                $(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
        done
-       @set -e; for x in $(MISC_SCRIPTS); \
+       @set -e; for x in dummy $(MISC_SCRIPTS); \
        do  \
+               if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                echo "$(RM) $(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \
                $(RM) $(DESTDIR)$(OPENSSLDIR)/misc/$$fn; \
        done
        : {- output_off() unless windowsdll(); "" -};
-       @set -e; for s in $(SHLIBS); do \
+       @set -e; for s in dummy $(SHLIBS); do \
+               if [ "$$s" = "dummy" ]; then continue; fi; \
                fn=`basename $$s`; \
                echo "$(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn"; \
                $(RM) $(DESTDIR)$(INSTALLTOP)/bin/$$fn; \
@@ -604,7 +622,8 @@ uninstall_html_docs:
 
 update: generate errors ordinals
 
-generate: generate_apps generate_crypto_bn generate_crypto_objects
+generate: generate_apps generate_crypto_bn generate_crypto_objects \
+          generate_crypto_conf generate_crypto_asn1
 
 # Test coverage is a good idea for the future
 #coverage: $(PROGRAMS) $(TESTPROGRAMS)
@@ -635,18 +654,26 @@ 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/obj_dat.pl \
+                               include/openssl/obj_mac.h \
+                               crypto/objects/obj_dat.h )
        ( cd $(SRCDIR); $(PERL) crypto/objects/objxref.pl \
                                crypto/objects/obj_mac.num \
                                crypto/objects/obj_xref.txt \
                                > crypto/objects/obj_xref.h )
 
+generate_crypto_conf:
+       ( cd $(SRCDIR); $(PERL) crypto/conf/keysets.pl \
+                               > crypto/conf/conf_def.h )
+
+generate_crypto_asn1:
+       ( cd $(SRCDIR); $(PERL) crypto/asn1/charmap.pl \
+                               > crypto/asn1/charmap.h )
+
 errors:
        ( cd $(SRCDIR); $(PERL) util/ck_errf.pl -strict */*.c */*/*.c )
        ( cd $(SRCDIR); $(PERL) util/mkerr.pl -recurse -write )
@@ -712,7 +739,6 @@ $(BLDDIR)/util/shlib_wrap.sh: configdata.pm
            mkdir -p "$(BLDDIR)/util"; \
            ln -sf "../$(SRCDIR)/util/shlib_wrap.sh" "$(BLDDIR)/util"; \
        fi
-
 FORCE:
 
 # Building targets ###################################################
@@ -791,19 +817,20 @@ configdata.pm: $(SRCDIR)/Configurations/unix-Makefile.tmpl $(SRCDIR)/Configurati
   sub generatesrc {
       my %args = @_;
       my $generator = join(" ", @{$args{generator}});
+      my $generator_incs = join("", map { " -I".$_ } @{$args{generator_incs}});
       my $incs = join("", map { " -I".$_ } @{$args{incs}});
-      my $deps = join(" ", @{$args{deps}});
+      my $deps = join(" ", @{$args{generator_deps}}, @{$args{deps}});
 
       if ($args{src} !~ /\.[sS]$/) {
           return <<"EOF";
 $args{src}: $args{generator}->[0] $deps
-       \$(PERL) $generator > \$@
+       \$(PERL)$generator_incs $generator > \$@
 EOF
       } else {
           if ($args{generator}->[0] =~ /\.pl$/) {
-              $generator = 'CC="$(CC)" $(PERL) '.$generator;
+              $generator = 'CC="$(CC)" $(PERL)'.$generator_incs.' '.$generator;
           } elsif ($args{generator}->[0] =~ /\.m4$/) {
-              $generator = 'm4 -B 8192 '.$generator.' >'
+              $generator = 'm4 -B 8192'.$generator_incs.' '.$generator.' >'
           } elsif ($args{generator}->[0] =~ /\.S$/) {
               $generator = undef;
           } else {
@@ -841,10 +868,20 @@ 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}});
+      unless ($disabled{zlib}) {
+          if ($withargs{zlib_include}) {
+              $incs .= " -I".$withargs{zlib_include};
+          }
+      }
       my $ecflags = { lib => '$(LIB_CFLAGS)',
                       dso => '$(DSO_CFLAGS)',
                       bin => '$(BIN_CFLAGS)' } -> {$args{intent}};
@@ -853,9 +890,8 @@ EOF
       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
+       -\$(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; \\
@@ -966,7 +1002,7 @@ EOF
       my $objs = join(" ", map { $_.$objext } @{$args{objs}});
       return <<"EOF";
 $lib$libext: $objs
-       \$(AR) \$\@ $objs
+       \$(AR) \$\@ \$\?
        \$(RANLIB) \$\@ || echo Never mind.
 EOF
   }