Move the handling of dso_scheme to dso_conf.h
[openssl.git] / crypto / include / internal / dso_conf.h.in
index daa5e247a39130231bdb0af6faa6e8ce78fc8356..ded87ca5cc754b9fffc864ce83dc5fc1d99ad174 100644 (file)
 
 #ifndef HEADER_DSO_CONF_H
 # define HEADER_DSO_CONF_H
-
+{- output_off() if $disabled{dso} -}
+{-  # The DSO code currently always implements all functions so that no
+    # applications will have to worry about that from a compilation point
+    # of view. However, the "method"s may return zero unless that platform
+    # has support compiled in for them. Currently each method is enabled
+    # by a define "DSO_<name>" ... we translate the "dso_scheme" config
+    # string entry into using the following logic;
+    my $scheme = uc $target{dso_scheme};
+    my @macros = ( "DSO_$scheme" );
+    if ($scheme eq 'DLFCN') {
+        @macros = ( "DSO_DLFCN", "HAVE_DLFCN_H" );
+    } elsif ($scheme eq "DLFCN_NO_H") {
+        @macros = ( "DSO_DLFCN" );
+    }
+    join("\n", map { "# define $_" } @macros); -}
 # define DSO_EXTENSION "{- $target{dso_extension} -}"
+{- output_on() if $disabled{dso} -}
 #endif