]> git.ipfire.org Git - thirdparty/openssl.git/blobdiff - Configurations/unix-Makefile.tmpl
Clean up exporters, specifically those we have for pkg-config
[thirdparty/openssl.git] / Configurations / unix-Makefile.tmpl
index b4b6d220d4a6d2eac3a7dda4e7af73edfc847c1f..18c32d0bae044d28b7bc679451baf7f81d9a2a2c 100644 (file)
@@ -199,6 +199,12 @@ INSTALL_PROGRAMS={-
                         grep { !$unified_info{attributes}->{programs}->{$_}->{noinst} }
                         @{$unified_info{programs}}))
 -}
+INSTALL_EXPORTERS_PKGCONFIG={-
+        join(" \\\n" . ' ' x 28,
+             fill_lines(" ", $COLUMNS - 28,
+                        grep { $unified_info{attributes}->{generate}->{$_}->{exporter} eq 'pkg-config'}
+                        sort keys %{$unified_info{generate}}))
+-}
 BIN_SCRIPTS={-
         join(" \\\n" . ' ' x 12,
              fill_lines(" ", $COLUMNS - 12,
@@ -320,6 +326,8 @@ BINDIR={- our $bindir = $config{bindir};
 bindir={- file_name_is_absolute($bindir)
           ? $bindir : '$(INSTALLTOP)/$(BINDIR)' -}
 
+PKGCONFIGDIR=$(libdir)/pkgconfig
+
 MANDIR=$(INSTALLTOP)/share/man
 DOCDIR=$(INSTALLTOP)/share/doc/$(BASENAME)
 HTMLDIR=$(DOCDIR)/html
@@ -512,7 +520,7 @@ LANG=C
 {- dependmagic('build_modules', 'Build the modules (i.e. providers and engines)'); -}: build_modules_nodep
 {- dependmagic('build_programs', 'Build the openssl executables and scripts'); -}: build_programs_nodep
 
-all: build_sw build_docs ## Build software and documentation
+all: build_sw {- "build_docs" if !$disabled{docs}; -} ## Build software and documentation
 
 ##@ Documentation
 build_generated_pods: $(GENERATED_PODS)
@@ -521,7 +529,7 @@ build_man_docs: $(MANDOCS1) $(MANDOCS3) $(MANDOCS5) $(MANDOCS7) ## Create manpag
 build_html_docs: $(HTMLDOCS1) $(HTMLDOCS3) $(HTMLDOCS5) $(HTMLDOCS7) ## Create HTML documentation
 
 build_generated: $(GENERATED_MANDATORY)
-build_libs_nodep: libcrypto.pc libssl.pc openssl.pc
+build_libs_nodep: $(LIBS) {- join(" ",map { platform->sharedlib_simple($_) // platform->sharedlib_import($_) // platform->sharedlib($_) // () } @{$unified_info{libraries}}) -}
 build_modules_nodep: $(MODULES)
 build_programs_nodep: $(PROGRAMS) $(SCRIPTS)
 
@@ -606,7 +614,6 @@ clean: libclean ## Clean the workspace, keep the configuration
        $(RM) tags TAGS doc-nits md-nits
        $(RM) -r test/test-runs
        $(RM) providers/fips*.new
-       $(RM) openssl.pc libcrypto.pc libssl.pc
        -find . -type l \! -name '.*' -exec $(RM) {} \;
 
 distclean: clean ## Clean and remove the configuration
@@ -624,9 +631,9 @@ depend: Makefile
 # Install helper targets #############################################
 ##@ Installation
 
-install: install_sw install_ssldirs install_docs {- $disabled{fips} ? "" : "install_fips" -} ## Install software and documentation, create OpenSSL directories
+install: install_sw install_ssldirs {- "install_docs" if !$disabled{docs}; -} {- $disabled{fips} ? "" : "install_fips" -} ## Install software and documentation, create OpenSSL directories
 
-uninstall: uninstall_docs uninstall_sw {- $disabled{fips} ? "" : "uninstall_fips" -} ## Uninstall software and documentation
+uninstall: {- "uninstall_docs" if !$disabled{docs}; -} uninstall_sw {- $disabled{fips} ? "" : "uninstall_fips" -} ## Uninstall software and documentation
 
 install_sw: install_dev install_engines install_modules install_runtime ## Install just the software and libraries
 
@@ -635,28 +642,28 @@ uninstall_sw: uninstall_runtime uninstall_modules uninstall_engines uninstall_de
 install_docs: install_man_docs install_html_docs ## Install manpages and HTML documentation
 
 uninstall_docs: uninstall_man_docs uninstall_html_docs ## Uninstall manpages and HTML documentation
-       $(RM) -r $(DESTDIR)$(DOCDIR)
+       $(RM) -r "$(DESTDIR)$(DOCDIR)"
 
 {- output_off() if $disabled{fips}; "" -}
 install_fips: build_sw $(INSTALL_FIPSMODULECONF)
        @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MODULESDIR)
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MODULESDIR)"
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(OPENSSLDIR)"
        @$(ECHO) "*** Installing FIPS module"
        @$(ECHO) "install $(INSTALL_FIPSMODULE) -> $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME)"
-       @cp "$(INSTALL_FIPSMODULE)" $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new
-       @chmod 755 $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new
-       @mv -f $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new \
-              $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME)
+       @cp "$(INSTALL_FIPSMODULE)" "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new"
+       @chmod 755 "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new"
+       @mv -f "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME).new" \
+              "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME)"
        @$(ECHO) "*** Installing FIPS module configuration"
        @$(ECHO) "install $(INSTALL_FIPSMODULECONF) -> $(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf"
-       @cp $(INSTALL_FIPSMODULECONF) $(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf
+       @cp $(INSTALL_FIPSMODULECONF) "$(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf"
 
 uninstall_fips:
        @$(ECHO) "*** Uninstalling FIPS module configuration"
-       $(RM) $(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf
+       $(RM) "$(DESTDIR)$(OPENSSLDIR)/fipsmodule.cnf"
        @$(ECHO) "*** Uninstalling FIPS module"
-       $(RM) $(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME)
+       $(RM) "$(DESTDIR)$(MODULESDIR)/$(FIPSMODULENAME)"
 {- if ($disabled{fips}) { output_on(); } else { output_off(); } "" -}
 install_fips:
        @$(ECHO) "The 'install_fips' target requires the 'enable-fips' option"
@@ -667,75 +674,75 @@ uninstall_fips:
 
 
 install_ssldirs:
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)/certs
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)/private
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(OPENSSLDIR)/misc
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(OPENSSLDIR)/certs"
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(OPENSSLDIR)/private"
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(OPENSSLDIR)/misc"
        @set -e; for x in dummy $(MISC_SCRIPTS); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                x1=`echo "$$x" | cut -f1 -d:`; \
                x2=`echo "$$x" | cut -f2 -d:`; \
                fn=`basename $$x1`; \
                $(ECHO) "install $$x1 -> $(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \
-               cp $$x1 $(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new; \
-               chmod 755 $(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new; \
-               mv -f $(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new \
-                     $(DESTDIR)$(OPENSSLDIR)/misc/$$fn; \
+               cp $$x1 "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new"; \
+               chmod 755 "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new"; \
+               mv -f "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn.new" \
+                     "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \
                if [ "$$x1" != "$$x2" ]; then \
                        ln=`basename "$$x2"`; \
                        : {- output_off() unless windowsdll(); "" -}; \
                        $(ECHO) "copy $(DESTDIR)$(OPENSSLDIR)/misc/$$ln -> $(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \
-                       cp $(DESTDIR)$(OPENSSLDIR)/misc/$$fn $(DESTDIR)$(OPENSSLDIR)/misc/$$ln; \
+                       cp "$(DESTDIR)$(OPENSSLDIR)/misc/$$fn" "$(DESTDIR)$(OPENSSLDIR)/misc/$$ln"; \
                        : {- output_on() unless windowsdll();
                             output_off() if windowsdll(); "" -}; \
                        $(ECHO) "link $(DESTDIR)$(OPENSSLDIR)/misc/$$ln -> $(DESTDIR)$(OPENSSLDIR)/misc/$$fn"; \
-                       ln -sf $$fn $(DESTDIR)$(OPENSSLDIR)/misc/$$ln; \
+                       ln -sf $$fn "$(DESTDIR)$(OPENSSLDIR)/misc/$$ln"; \
                        : {- output_on() if windowsdll(); "" -}; \
                fi; \
        done
        @$(ECHO) "install $(SRCDIR)/apps/openssl.cnf -> $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.dist"
-       @cp $(SRCDIR)/apps/openssl.cnf $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new
-       @chmod 644 $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new
-       @mv -f  $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new $(DESTDIR)$(OPENSSLDIR)/openssl.cnf.dist
+       @cp $(SRCDIR)/apps/openssl.cnf "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new"
+       @chmod 644 "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new"
+       @mv -f  "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf.new" "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf.dist"
        @if [ ! -f "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf" ]; then \
                $(ECHO) "install $(SRCDIR)/apps/openssl.cnf -> $(DESTDIR)$(OPENSSLDIR)/openssl.cnf"; \
-               cp $(SRCDIR)/apps/openssl.cnf $(DESTDIR)$(OPENSSLDIR)/openssl.cnf; \
-               chmod 644 $(DESTDIR)$(OPENSSLDIR)/openssl.cnf; \
+               cp $(SRCDIR)/apps/openssl.cnf "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf"; \
+               chmod 644 "$(DESTDIR)$(OPENSSLDIR)/openssl.cnf"; \
        fi
        @$(ECHO) "install $(SRCDIR)/apps/ct_log_list.cnf -> $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.dist"
-       @cp $(SRCDIR)/apps/ct_log_list.cnf $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new
-       @chmod 644 $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new
-       @mv -f  $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.dist
+       @cp $(SRCDIR)/apps/ct_log_list.cnf "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new"
+       @chmod 644 "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new"
+       @mv -f  "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.new" "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf.dist"
        @if [ ! -f "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf" ]; then \
                $(ECHO) "install $(SRCDIR)/apps/ct_log_list.cnf -> $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf"; \
-               cp $(SRCDIR)/apps/ct_log_list.cnf $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf; \
-               chmod 644 $(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf; \
+               cp $(SRCDIR)/apps/ct_log_list.cnf "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf"; \
+               chmod 644 "$(DESTDIR)$(OPENSSLDIR)/ct_log_list.cnf"; \
        fi
 
 install_dev: install_runtime_libs
        @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
        @$(ECHO) "*** Installing development files"
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(INSTALLTOP)/include/openssl
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(INSTALLTOP)/include/openssl"
        @ : {- output_off() if $disabled{uplink}; "" -}
        @$(ECHO) "install $(SRCDIR)/ms/applink.c -> $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c"
-       @cp $(SRCDIR)/ms/applink.c $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c
-       @chmod 644 $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c
+       @cp $(SRCDIR)/ms/applink.c "$(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c"
+       @chmod 644 "$(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c"
        @ : {- output_on() if $disabled{uplink}; "" -}
        @set -e; for i in $(SRCDIR)/include/openssl/*.h \
                          $(BLDDIR)/include/openssl/*.h; do \
                fn=`basename $$i`; \
                $(ECHO) "install $$i -> $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \
-               cp $$i $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn; \
-               chmod 644 $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn; \
+               cp $$i "$(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \
+               chmod 644 "$(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \
        done
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(libdir)
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(libdir)"
        @set -e; for l in $(INSTALL_LIBS); do \
                fn=`basename $$l`; \
                $(ECHO) "install $$l -> $(DESTDIR)$(libdir)/$$fn"; \
-               cp $$l $(DESTDIR)$(libdir)/$$fn.new; \
-               $(RANLIB) $(DESTDIR)$(libdir)/$$fn.new; \
-               chmod 644 $(DESTDIR)$(libdir)/$$fn.new; \
-               mv -f $(DESTDIR)$(libdir)/$$fn.new \
-                     $(DESTDIR)$(libdir)/$$fn; \
+               cp $$l "$(DESTDIR)$(libdir)/$$fn.new"; \
+               $(RANLIB) "$(DESTDIR)$(libdir)/$$fn.new"; \
+               chmod 644 "$(DESTDIR)$(libdir)/$$fn.new"; \
+               mv -f "$(DESTDIR)$(libdir)/$$fn.new" \
+                     "$(DESTDIR)$(libdir)/$$fn"; \
        done
        @ : {- output_off() if $disabled{shared}; "" -}
        @set -e; for s in $(INSTALL_SHLIB_INFO); do \
@@ -748,18 +755,18 @@ install_dev: install_runtime_libs
                : {- output_off(); output_on() unless windowsdll() or sharedaix(); "" -}; \
                if [ "$$fn2" != "" ]; then \
                        $(ECHO) "link $(DESTDIR)$(libdir)/$$fn2 -> $(DESTDIR)$(libdir)/$$fn1"; \
-                       ln -sf $$fn1 $(DESTDIR)$(libdir)/$$fn2; \
+                       ln -sf $$fn1 "$(DESTDIR)$(libdir)/$$fn2"; \
                fi; \
                : {- output_off() unless windowsdll() or sharedaix(); output_on() if windowsdll(); "" -}; \
                if [ "$$fn3" != "" ]; then \
                        $(ECHO) "install $$s3 -> $(DESTDIR)$(libdir)/$$fn3"; \
-                       cp $$s3 $(DESTDIR)$(libdir)/$$fn3.new; \
-                       chmod 755 $(DESTDIR)$(libdir)/$$fn3.new; \
-                       mv -f $(DESTDIR)$(libdir)/$$fn3.new \
-                             $(DESTDIR)$(libdir)/$$fn3; \
+                       cp $$s3 "$(DESTDIR)$(libdir)/$$fn3.new"; \
+                       chmod 755 "$(DESTDIR)$(libdir)/$$fn3.new"; \
+                       mv -f "$(DESTDIR)$(libdir)/$$fn3.new" \
+                             "$(DESTDIR)$(libdir)/$$fn3"; \
                fi; \
                : {- output_off() if windowsdll(); output_on() if sharedaix(); "" -}; \
-               a=$(DESTDIR)$(libdir)/$$fn2; \
+               a="$(DESTDIR)$(libdir)/$$fn2"; \
                $(ECHO) "install $$s1 -> $$a"; \
                if [ -f $$a ]; then ( trap "rm -rf /tmp/ar.$$$$" INT 0; \
                        mkdir /tmp/ar.$$$$; ( cd /tmp/ar.$$$$; \
@@ -776,35 +783,32 @@ install_dev: install_runtime_libs
                : {- output_off() if sharedaix(); output_on(); "" -}; \
        done
        @ : {- output_on() if $disabled{shared}; "" -}
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(libdir)/pkgconfig
-       @$(ECHO) "install libcrypto.pc -> $(DESTDIR)$(libdir)/pkgconfig/libcrypto.pc"
-       @cp libcrypto.pc $(DESTDIR)$(libdir)/pkgconfig
-       @chmod 644 $(DESTDIR)$(libdir)/pkgconfig/libcrypto.pc
-       @$(ECHO) "install libssl.pc -> $(DESTDIR)$(libdir)/pkgconfig/libssl.pc"
-       @cp libssl.pc $(DESTDIR)$(libdir)/pkgconfig
-       @chmod 644 $(DESTDIR)$(libdir)/pkgconfig/libssl.pc
-       @$(ECHO) "install openssl.pc -> $(DESTDIR)$(libdir)/pkgconfig/openssl.pc"
-       @cp openssl.pc $(DESTDIR)$(libdir)/pkgconfig
-       @chmod 644 $(DESTDIR)$(libdir)/pkgconfig/openssl.pc
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(PKGCONFIGDIR)"
+       @for e in $(INSTALL_EXPORTERS_PKGCONFIG); do \
+               fn=`basename $$e`; \
+               $(ECHO) "install $$e -> $(DESTDIR)$(PKGCONFIGDIR)/$$fn"; \
+               cp $$e "$(DESTDIR)$(PKGCONFIGDIR)/$$fn"; \
+               chmod 644 "$(DESTDIR)$(PKGCONFIGDIR)/$$fn"; \
+       done
 
 uninstall_dev: uninstall_runtime_libs
        @$(ECHO) "*** Uninstalling development files"
        @ : {- output_off() if $disabled{uplink}; "" -}
        @$(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c"
-       @$(RM) $(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c
+       @$(RM) "$(DESTDIR)$(INSTALLTOP)/include/openssl/applink.c"
        @ : {- output_on() if $disabled{uplink}; "" -}
        @set -e; for i in $(SRCDIR)/include/openssl/*.h \
                          $(BLDDIR)/include/openssl/*.h; do \
                fn=`basename $$i`; \
                $(ECHO) "$(RM) $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \
-               $(RM) $(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn; \
+               $(RM) "$(DESTDIR)$(INSTALLTOP)/include/openssl/$$fn"; \
        done
-       -$(RMDIR) $(DESTDIR)$(INSTALLTOP)/include/openssl
-       -$(RMDIR) $(DESTDIR)$(INSTALLTOP)/include
+       -$(RMDIR) "$(DESTDIR)$(INSTALLTOP)/include/openssl"
+       -$(RMDIR) "$(DESTDIR)$(INSTALLTOP)/include"
        @set -e; for l in $(INSTALL_LIBS); do \
                fn=`basename $$l`; \
                $(ECHO) "$(RM) $(DESTDIR)$(libdir)/$$fn"; \
-               $(RM) $(DESTDIR)$(libdir)/$$fn; \
+               $(RM) "$(DESTDIR)$(libdir)/$$fn"; \
        done
        @ : {- output_off() if $disabled{shared}; "" -}
        @set -e; for s in $(INSTALL_SHLIB_INFO); do \
@@ -816,39 +820,40 @@ uninstall_dev: uninstall_runtime_libs
                fn3=`basename "$$s3"`; \
                : {- output_off() if windowsdll(); "" -}; \
                $(ECHO) "$(RM) $(DESTDIR)$(libdir)/$$fn1"; \
-               $(RM) $(DESTDIR)$(libdir)/$$fn1; \
+               $(RM) "$(DESTDIR)$(libdir)/$$fn1"; \
                if [ -n "$$fn2" ]; then \
                        $(ECHO) "$(RM) $(DESTDIR)$(libdir)/$$fn2"; \
-                       $(RM) $(DESTDIR)$(libdir)/$$fn2; \
+                       $(RM) "$(DESTDIR)$(libdir)/$$fn2"; \
                fi; \
                : {- output_on() if windowsdll(); "" -}{- output_off() unless windowsdll(); "" -}; \
                if [ -n "$$fn3" ]; then \
                        $(ECHO) "$(RM) $(DESTDIR)$(libdir)/$$fn3"; \
-                       $(RM) $(DESTDIR)$(libdir)/$$fn3; \
+                       $(RM) "$(DESTDIR)$(libdir)/$$fn3"; \
                fi; \
                : {- output_on() unless windowsdll(); "" -}; \
        done
        @ : {- output_on() if $disabled{shared}; "" -}
-       $(RM) $(DESTDIR)$(libdir)/pkgconfig/libcrypto.pc
-       $(RM) $(DESTDIR)$(libdir)/pkgconfig/libssl.pc
-       $(RM) $(DESTDIR)$(libdir)/pkgconfig/openssl.pc
-       -$(RMDIR) $(DESTDIR)$(libdir)/pkgconfig
-       -$(RMDIR) $(DESTDIR)$(libdir)
+       @for e in $(INSTALL_EXPORTERS_PKGCONFIG); do \
+               fn=`basename "$$e"`; \
+               $(RM) "$(DESTDIR)$(PKGCONFIGDIR)/$$fn"; \
+       done
+       -$(RMDIR) "$(DESTDIR)$(PKGCONFIGDIR)"
+       -$(RMDIR) "$(DESTDIR)$(libdir)"
 
 _install_modules_deps: install_runtime_libs build_modules
 
 install_engines: _install_modules_deps
        @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(ENGINESDIR)/
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(ENGINESDIR)/"
        @$(ECHO) "*** Installing engines"
        @set -e; for e in dummy $(INSTALL_ENGINES); do \
                if [ "$$e" = "dummy" ]; then continue; fi; \
                fn=`basename $$e`; \
                $(ECHO) "install $$e -> $(DESTDIR)$(ENGINESDIR)/$$fn"; \
-               cp $$e $(DESTDIR)$(ENGINESDIR)/$$fn.new; \
-               chmod 755 $(DESTDIR)$(ENGINESDIR)/$$fn.new; \
-               mv -f $(DESTDIR)$(ENGINESDIR)/$$fn.new \
-                     $(DESTDIR)$(ENGINESDIR)/$$fn; \
+               cp $$e "$(DESTDIR)$(ENGINESDIR)/$$fn.new"; \
+               chmod 755 "$(DESTDIR)$(ENGINESDIR)/$$fn.new"; \
+               mv -f "$(DESTDIR)$(ENGINESDIR)/$$fn.new" \
+                     "$(DESTDIR)$(ENGINESDIR)/$$fn"; \
        done
 
 uninstall_engines:
@@ -857,22 +862,22 @@ uninstall_engines:
                if [ "$$e" = "dummy" ]; then continue; fi; \
                fn=`basename $$e`; \
                $(ECHO) "$(RM) $(DESTDIR)$(ENGINESDIR)/$$fn"; \
-               $(RM) $(DESTDIR)$(ENGINESDIR)/$$fn; \
+               $(RM) "$(DESTDIR)$(ENGINESDIR)/$$fn"; \
        done
-       -$(RMDIR) $(DESTDIR)$(ENGINESDIR)
+       -$(RMDIR) "$(DESTDIR)$(ENGINESDIR)"
 
 install_modules: _install_modules_deps
        @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MODULESDIR)/
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MODULESDIR)/"
        @$(ECHO) "*** Installing modules"
        @set -e; for e in dummy $(INSTALL_MODULES); do \
                if [ "$$e" = "dummy" ]; then continue; fi; \
                fn=`basename $$e`; \
                $(ECHO) "install $$e -> $(DESTDIR)$(MODULESDIR)/$$fn"; \
-               cp $$e $(DESTDIR)$(MODULESDIR)/$$fn.new; \
-               chmod 755 $(DESTDIR)$(MODULESDIR)/$$fn.new; \
-               mv -f $(DESTDIR)$(MODULESDIR)/$$fn.new \
-                     $(DESTDIR)$(MODULESDIR)/$$fn; \
+               cp $$e "$(DESTDIR)$(MODULESDIR)/$$fn.new"; \
+               chmod 755 "$(DESTDIR)$(MODULESDIR)/$$fn.new"; \
+               mv -f "$(DESTDIR)$(MODULESDIR)/$$fn.new" \
+                     "$(DESTDIR)$(MODULESDIR)/$$fn"; \
        done
 
 uninstall_modules:
@@ -881,18 +886,18 @@ uninstall_modules:
                if [ "$$e" = "dummy" ]; then continue; fi; \
                fn=`basename $$e`; \
                $(ECHO) "$(RM) $(DESTDIR)$(MODULESDIR)/$$fn"; \
-               $(RM) $(DESTDIR)$(MODULESDIR)/$$fn; \
+               $(RM) "$(DESTDIR)$(MODULESDIR)/$$fn"; \
        done
-       -$(RMDIR) $(DESTDIR)$(MODULESDIR)
+       -$(RMDIR) "$(DESTDIR)$(MODULESDIR)"
 
 install_runtime: install_programs
 
 install_runtime_libs: build_libs
        @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
        @ : {- output_off() if windowsdll(); "" -}
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(libdir)
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(libdir)"
        @ : {- output_on() if windowsdll(); output_off() unless windowsdll(); "" -}
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(bindir)/
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(bindir)/"
        @ : {- output_on() unless windowsdll(); "" -}
        @$(ECHO) "*** Installing runtime libraries"
        @set -e; for s in dummy $(INSTALL_SHLIBS); do \
@@ -900,40 +905,40 @@ install_runtime_libs: build_libs
                fn=`basename $$s`; \
                : {- output_off() unless windowsdll(); "" -}; \
                $(ECHO) "install $$s -> $(DESTDIR)$(bindir)/$$fn"; \
-               cp $$s $(DESTDIR)$(bindir)/$$fn.new; \
-               chmod 755 $(DESTDIR)$(bindir)/$$fn.new; \
-               mv -f $(DESTDIR)$(bindir)/$$fn.new \
-                     $(DESTDIR)$(bindir)/$$fn; \
+               cp $$s "$(DESTDIR)$(bindir)/$$fn.new"; \
+               chmod 755 "$(DESTDIR)$(bindir)/$$fn.new"; \
+               mv -f "$(DESTDIR)$(bindir)/$$fn.new" \
+                     "$(DESTDIR)$(bindir)/$$fn"; \
                : {- output_on() unless windowsdll(); "" -}{- output_off() if windowsdll(); "" -}; \
                $(ECHO) "install $$s -> $(DESTDIR)$(libdir)/$$fn"; \
-               cp $$s $(DESTDIR)$(libdir)/$$fn.new; \
-               chmod 755 $(DESTDIR)$(libdir)/$$fn.new; \
-               mv -f $(DESTDIR)$(libdir)/$$fn.new \
-                     $(DESTDIR)$(libdir)/$$fn; \
+               cp $$s "$(DESTDIR)$(libdir)/$$fn.new"; \
+               chmod 755 "$(DESTDIR)$(libdir)/$$fn.new"; \
+               mv -f "$(DESTDIR)$(libdir)/$$fn.new" \
+                     "$(DESTDIR)$(libdir)/$$fn"; \
                : {- output_on() if windowsdll(); "" -}; \
        done
 
 install_programs: install_runtime_libs build_programs
        @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(bindir)
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(bindir)"
        @$(ECHO) "*** Installing runtime programs"
        @set -e; for x in dummy $(INSTALL_PROGRAMS); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(bindir)/$$fn"; \
-               cp $$x $(DESTDIR)$(bindir)/$$fn.new; \
-               chmod 755 $(DESTDIR)$(bindir)/$$fn.new; \
-               mv -f $(DESTDIR)$(bindir)/$$fn.new \
-                     $(DESTDIR)$(bindir)/$$fn; \
+               cp $$x "$(DESTDIR)$(bindir)/$$fn.new"; \
+               chmod 755 "$(DESTDIR)$(bindir)/$$fn.new"; \
+               mv -f "$(DESTDIR)$(bindir)/$$fn.new" \
+                     "$(DESTDIR)$(bindir)/$$fn"; \
        done
        @set -e; for x in dummy $(BIN_SCRIPTS); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(bindir)/$$fn"; \
-               cp $$x $(DESTDIR)$(bindir)/$$fn.new; \
-               chmod 755 $(DESTDIR)$(bindir)/$$fn.new; \
-               mv -f $(DESTDIR)$(bindir)/$$fn.new \
-                     $(DESTDIR)$(bindir)/$$fn; \
+               cp $$x "$(DESTDIR)$(bindir)/$$fn.new"; \
+               chmod 755 "$(DESTDIR)$(bindir)/$$fn.new"; \
+               mv -f "$(DESTDIR)$(bindir)/$$fn.new" \
+                     "$(DESTDIR)$(bindir)/$$fn"; \
        done
 
 uninstall_runtime: uninstall_programs uninstall_runtime_libs
@@ -945,16 +950,16 @@ uninstall_programs:
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(bindir)/$$fn"; \
-               $(RM) $(DESTDIR)$(bindir)/$$fn; \
+               $(RM) "$(DESTDIR)$(bindir)/$$fn"; \
        done;
        @set -e; for x in dummy $(BIN_SCRIPTS); \
        do  \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(bindir)/$$fn"; \
-               $(RM) $(DESTDIR)$(bindir)/$$fn; \
+               $(RM) "$(DESTDIR)$(bindir)/$$fn"; \
        done
-       -$(RMDIR) $(DESTDIR)$(bindir)
+       -$(RMDIR) "$(DESTDIR)$(bindir)"
 
 uninstall_runtime_libs:
        @$(ECHO) "*** Uninstalling runtime libraries"
@@ -963,49 +968,49 @@ uninstall_runtime_libs:
                if [ "$$s" = "dummy" ]; then continue; fi; \
                fn=`basename $$s`; \
                $(ECHO) "$(RM) $(DESTDIR)$(bindir)/$$fn"; \
-               $(RM) $(DESTDIR)$(bindir)/$$fn; \
+               $(RM) "$(DESTDIR)$(bindir)/$$fn"; \
        done
        @ : {- output_on() unless windowsdll(); "" -}
 
 
 install_man_docs: build_man_docs
        @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man1
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man3
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man5
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(MANDIR)/man7
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MANDIR)/man1"
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MANDIR)/man3"
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MANDIR)/man5"
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(MANDIR)/man7"
        @$(ECHO) "*** Installing manpages"
        @set -e; for x in dummy $(MANDOCS1); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \
-               cp $$x $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX); \
-               chmod 644 $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX); \
-               $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man1 $(BLDDIR)/doc/man1 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man1; \
+               cp $$x "$(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \
+               chmod 644 "$(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \
+               $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man1 $(BLDDIR)/doc/man1 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man1"; \
        done
        @set -e; for x in dummy $(MANDOCS3); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \
-               cp $$x $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX); \
-               chmod 644 $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX); \
-               $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man3 $(BLDDIR)/doc/man3 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man3; \
+               cp $$x "$(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \
+               chmod 644 "$(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \
+               $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man3 $(BLDDIR)/doc/man3 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man3"; \
        done
        @set -e; for x in dummy $(MANDOCS5); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \
-               cp $$x $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX); \
-               chmod 644 $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX); \
-               $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man5 $(BLDDIR)/doc/man5 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man5; \
+               cp $$x "$(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \
+               chmod 644 "$(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \
+               $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man5 $(BLDDIR)/doc/man5 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man5"; \
        done
        @set -e; for x in dummy $(MANDOCS7); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \
-               cp $$x $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX); \
-               chmod 644 $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX); \
-               $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man7 $(BLDDIR)/doc/man7 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man7; \
+               cp $$x "$(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \
+               chmod 644 "$(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \
+               $(PERL) $(SRCDIR)/util/write-man-symlinks install $(SRCDIR)/doc/man7 $(BLDDIR)/doc/man7 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man7"; \
        done
 
 uninstall_man_docs: build_man_docs
@@ -1014,65 +1019,65 @@ uninstall_man_docs: build_man_docs
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \
-               $(RM) $(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX); \
-               $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man1 $(BLDDIR)/doc/man1 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man1; \
+               $(RM) "$(DESTDIR)$(MANDIR)/man1/$${fn}$(MANSUFFIX)"; \
+               $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man1 $(BLDDIR)/doc/man1 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man1"; \
        done
        @set -e; for x in dummy $(MANDOCS3); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \
-               $(RM) $(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX); \
-               $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man3 $(BLDDIR)/doc/man3 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man3; \
+               $(RM) "$(DESTDIR)$(MANDIR)/man3/$${fn}$(MANSUFFIX)"; \
+               $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man3 $(BLDDIR)/doc/man3 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man3"; \
        done
        @set -e; for x in dummy $(MANDOCS5); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \
-               $(RM) $(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX); \
-               $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man5 $(BLDDIR)/doc/man5 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man5; \
+               $(RM) "$(DESTDIR)$(MANDIR)/man5/$${fn}$(MANSUFFIX)"; \
+               $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man5 $(BLDDIR)/doc/man5 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man5"; \
        done
        @set -e; for x in dummy $(MANDOCS7); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \
-               $(RM) $(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX); \
-               $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man7 $(BLDDIR)/doc/man7 $${fn}$(MANSUFFIX) $(DESTDIR)$(MANDIR)/man7; \
+               $(RM) "$(DESTDIR)$(MANDIR)/man7/$${fn}$(MANSUFFIX)"; \
+               $(PERL) $(SRCDIR)/util/write-man-symlinks uninstall $(SRCDIR)/doc/man7 $(BLDDIR)/doc/man7 $${fn}$(MANSUFFIX) "$(DESTDIR)$(MANDIR)/man7"; \
        done
 
 install_html_docs: install_image_docs build_html_docs
        @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man1
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man3
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man5
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man7
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man1"
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man3"
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man5"
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man7"
        @$(ECHO) "*** Installing HTML manpages"
        @set -e; for x in dummy $(HTMLDOCS1); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man1/$$fn"; \
-               cp $$x $(DESTDIR)$(HTMLDIR)/man1/$$fn; \
-               chmod 644 $(DESTDIR)$(HTMLDIR)/man1/$$fn; \
+               cp $$x "$(DESTDIR)$(HTMLDIR)/man1/$$fn"; \
+               chmod 644 "$(DESTDIR)$(HTMLDIR)/man1/$$fn"; \
        done
        @set -e; for x in dummy $(HTMLDOCS3); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man3/$$fn"; \
-               cp $$x $(DESTDIR)$(HTMLDIR)/man3/$$fn; \
-               chmod 644 $(DESTDIR)$(HTMLDIR)/man3/$$fn; \
+               cp $$x "$(DESTDIR)$(HTMLDIR)/man3/$$fn"; \
+               chmod 644 "$(DESTDIR)$(HTMLDIR)/man3/$$fn"; \
        done
        @set -e; for x in dummy $(HTMLDOCS5); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man5/$$fn"; \
-               cp $$x $(DESTDIR)$(HTMLDIR)/man5/$$fn; \
-               chmod 644 $(DESTDIR)$(HTMLDIR)/man5/$$fn; \
+               cp $$x "$(DESTDIR)$(HTMLDIR)/man5/$$fn"; \
+               chmod 644 "$(DESTDIR)$(HTMLDIR)/man5/$$fn"; \
        done
        @set -e; for x in dummy $(HTMLDOCS7); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man7/$$fn"; \
-               cp $$x $(DESTDIR)$(HTMLDIR)/man7/$$fn; \
-               chmod 644 $(DESTDIR)$(HTMLDIR)/man7/$$fn; \
+               cp $$x "$(DESTDIR)$(HTMLDIR)/man7/$$fn"; \
+               chmod 644 "$(DESTDIR)$(HTMLDIR)/man7/$$fn"; \
        done
 
 uninstall_html_docs: uninstall_image_docs
@@ -1081,35 +1086,35 @@ uninstall_html_docs: uninstall_image_docs
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man1/$$fn"; \
-               $(RM) $(DESTDIR)$(HTMLDIR)/man1/$$fn; \
+               $(RM) "$(DESTDIR)$(HTMLDIR)/man1/$$fn"; \
        done
        @set -e; for x in dummy $(HTMLDOCS3); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man3/$$fn"; \
-               $(RM) $(DESTDIR)$(HTMLDIR)/man3/$$fn; \
+               $(RM) "$(DESTDIR)$(HTMLDIR)/man3/$$fn"; \
        done
        @set -e; for x in dummy $(HTMLDOCS5); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man5/$$fn"; \
-               $(RM) $(DESTDIR)$(HTMLDIR)/man5/$$fn; \
+               $(RM) "$(DESTDIR)$(HTMLDIR)/man5/$$fn"; \
        done
        @set -e; for x in dummy $(HTMLDOCS7); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man7/$$fn"; \
-               $(RM) $(DESTDIR)$(HTMLDIR)/man7/$$fn; \
+               $(RM) "$(DESTDIR)$(HTMLDIR)/man7/$$fn"; \
        done
 
 install_image_docs:
-       @$(PERL) $(SRCDIR)/util/mkdir-p.pl $(DESTDIR)$(HTMLDIR)/man7/img
+       @$(PERL) $(SRCDIR)/util/mkdir-p.pl "$(DESTDIR)$(HTMLDIR)/man7/img"
        @set -e; for x in dummy $(IMAGEDOCS7); do \
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "install $$x -> $(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \
-               cp $(SRCDIR)/$$x $(DESTDIR)$(HTMLDIR)/man7/img/$$fn; \
-               chmod 644 $(DESTDIR)$(HTMLDIR)/man7/img/$$fn; \
+               cp $(SRCDIR)/$$x "$(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \
+               chmod 644 "$(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \
        done
 
 uninstall_image_docs:
@@ -1117,11 +1122,11 @@ uninstall_image_docs:
                if [ "$$x" = "dummy" ]; then continue; fi; \
                fn=`basename $$x`; \
                $(ECHO) "$(RM) $(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \
-               $(RM) $(DESTDIR)$(HTMLDIR)/man7/img/$$fn; \
+               $(RM) "$(DESTDIR)$(HTMLDIR)/man7/img/$$fn"; \
        done
 
 # Developer targets (note: these are only available on Unix) #########
-##@ Code maintenence
+##@ Code maintenance
 
 # It's important that generate_buildinfo comes after ordinals, as ordinals
 # is sensitive to build.info changes.
@@ -1146,7 +1151,7 @@ doc-nits: build_generated_pods ## Evaluate OpenSSL documentation
 # Finally, there's a Node.js version, which we haven't tried, that
 # can be found at https://github.com/DavidAnson/markdownlint
 md-nits: ## Evaluate markdown files via "mdl"
-       mdl -s util/markdownlint.rb .
+       mdl -s $(SRCDIR)/util/markdownlint.rb .
 
 # Test coverage is a good idea for the future
 #coverage: $(PROGRAMS) $(TESTPROGRAMS)
@@ -1260,10 +1265,11 @@ providers/fips.module.sources.new: configdata.pm
                   crypto/ec/asm/*.pl \
                   crypto/modes/asm/*.pl \
                   crypto/sha/asm/*.pl \
-                  crypto/x86_64cpuid.pl; do \
+                  crypto/*cpuid.pl crypto/*cpuid.S \
+                  crypto/*cap.c; do \
            echo "$$x"; \
          done \
-       ) | sort | uniq > providers/fips.module.sources.new
+       ) | grep -v sm2p256 | sort | uniq > providers/fips.module.sources.new
        rm -rf sources-tmp
 
 # Set to -force to force a rebuild
@@ -1380,7 +1386,7 @@ test_ordinals:
 
 tags TAGS: FORCE
        rm -f TAGS tags
-       -util/ctags.sh
+       -( cd $(SRCDIR); util/ctags.sh )
        -etags `find . -name '*.[ch]' -o -name '*.pm'`
 
 providers/fips.checksum.new: providers/fips.module.sources.new
@@ -1434,59 +1440,6 @@ FORCE:
 
 # Building targets ###################################################
 
-libcrypto.pc libssl.pc openssl.pc: Makefile $(LIBS) {- join(" ",map { platform->sharedlib_simple($_) // platform->sharedlib_import($_) // platform->sharedlib($_) // () } @{$unified_info{libraries}}) -}
-
-libcrypto.pc:
-       @ ( echo 'prefix=$(INSTALLTOP)'; \
-           echo 'exec_prefix=$${prefix}'; \
-           if [ -n "$(LIBDIR)" ]; then \
-               echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
-           else \
-               echo 'libdir=$(libdir)'; \
-           fi; \
-           echo 'includedir=$${prefix}/include'; \
-           echo 'enginesdir=$${libdir}/engines-{- $sover_dirname -}'; \
-           echo 'modulesdir=$${libdir}/ossl-modules'; \
-           echo ''; \
-           echo 'Name: OpenSSL-libcrypto'; \
-           echo 'Description: OpenSSL cryptography library'; \
-           echo 'Version: '$(VERSION); \
-           echo 'Libs: -L$${libdir} -lcrypto'; \
-           echo 'Libs.private: $(LIB_EX_LIBS)'; \
-           echo 'Cflags: -I$${includedir}' ) > libcrypto.pc
-
-libssl.pc:
-       @ ( echo 'prefix=$(INSTALLTOP)'; \
-           echo 'exec_prefix=$${prefix}'; \
-           if [ -n "$(LIBDIR)" ]; then \
-               echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
-           else \
-               echo 'libdir=$(libdir)'; \
-           fi; \
-           echo 'includedir=$${prefix}/include'; \
-           echo ''; \
-           echo 'Name: OpenSSL-libssl'; \
-           echo 'Description: Secure Sockets Layer and cryptography libraries'; \
-           echo 'Version: '$(VERSION); \
-           echo 'Requires.private: libcrypto'; \
-           echo 'Libs: -L$${libdir} -lssl'; \
-           echo 'Cflags: -I$${includedir}' ) > libssl.pc
-
-openssl.pc:
-       @ ( echo 'prefix=$(INSTALLTOP)'; \
-           echo 'exec_prefix=$${prefix}'; \
-           if [ -n "$(LIBDIR)" ]; then \
-               echo 'libdir=$${exec_prefix}/$(LIBDIR)'; \
-           else \
-               echo 'libdir=$(libdir)'; \
-           fi; \
-           echo 'includedir=$${prefix}/include'; \
-           echo ''; \
-           echo 'Name: OpenSSL'; \
-           echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \
-           echo 'Version: '$(VERSION); \
-           echo 'Requires: libssl libcrypto' ) > openssl.pc
-
 Makefile: configdata.pm \
           {- join(" \\\n" . ' ' x 10,
                   fill_lines(" ", $COLUMNS - 10,
@@ -1640,12 +1593,44 @@ EOF
           my $dofile = abs2rel(rel2abs(catfile($config{sourcedir},
                                                "util", "dofile.pl")),
                                rel2abs($config{builddir}));
-          my @perlmodules = ( 'configdata.pm',
-                              grep { $_ =~ m|\.pm$| } @{$args{deps}} );
-          my %perlmoduleincs = map { '"-I'.dirname($_).'"' => 1 } @perlmodules;
-          $deps = join(' ', $deps, compute_platform_depends(@perlmodules));
-          @perlmodules = map { "-M".basename($_, '.pm') } @perlmodules;
-          my $perlmodules = join(' ', '', sort keys %perlmoduleincs, @perlmodules);
+          my @perlmodules = ();
+          my %perlmoduleincs = ();
+          my %perlmoduledeps = ();
+          foreach my $x (('configdata.pm', @{$args{deps}})) {
+              # Compute (i)nclusion directory, (m)odule name and (d)ependency
+              my $i, $m, $d;
+              if ($x =~ /\|/) {
+                  $i = $`;
+                  $d = $';
+
+                  # Massage the module part to become a real perl module spec
+                  $m = $d;
+                  $m =~ s|\.pm$||;
+                  # Directory specs are :: in perl package names
+                  $m =~ s|/|::|g;
+
+                  # Full file name of the dependency
+                  $d = catfile($i, $d) if $i;
+              } elsif ($x =~ /\.pm$/) {
+                  $i = dirname($x);
+                  $m = basename($x, '.pm');
+                  $d = $x;
+              } else {
+                  # All other dependencies are simply collected
+                  $d = $x;
+              }
+              push @perlmodules, '"-M'.$m.'"' if $m;
+              $perlmoduledeps{$d} = 1;
+              $perlmoduleincs{'"-I'.$i.'"'} = 1 if $i;
+          }
+
+          # Because of the special treatment of dependencies, we need to
+          # recompute $deps completely
+          my $deps
+              = join(" ", compute_platform_depends(@{$args{generator_deps}},
+                                                   sort keys %perlmoduledeps));
+          my $perlmodules = join(' ', '', ( sort keys %perlmoduleincs ), @perlmodules);
+
           return <<"EOF";
 $args{src}: $gen0 $deps
        \$(PERL)$perlmodules "$dofile" "-o$target{build_file}" $gen0$gen_args > \$@