1*b077aed3SPierre Pronchery/*
2*b077aed3SPierre Pronchery * {- join("\n * ", @autowarntext) -}
3*b077aed3SPierre Pronchery *
4*b077aed3SPierre Pronchery * Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
5*b077aed3SPierre Pronchery *
6*b077aed3SPierre Pronchery * Licensed under the Apache License 2.0 (the "License").  You may not use
7*b077aed3SPierre Pronchery * this file except in compliance with the License.  You can obtain a copy
8*b077aed3SPierre Pronchery * in the file LICENSE in the source distribution or at
9*b077aed3SPierre Pronchery * https://www.openssl.org/source/license.html
10*b077aed3SPierre Pronchery */
11*b077aed3SPierre Pronchery
12*b077aed3SPierre Pronchery#ifndef OPENSSL_CONFIGURATION_H
13*b077aed3SPierre Pronchery# define OPENSSL_CONFIGURATION_H
14*b077aed3SPierre Pronchery# pragma once
15*b077aed3SPierre Pronchery
16*b077aed3SPierre Pronchery# ifdef  __cplusplus
17*b077aed3SPierre Proncheryextern "C" {
18*b077aed3SPierre Pronchery# endif
19*b077aed3SPierre Pronchery
20*b077aed3SPierre Pronchery# ifdef OPENSSL_ALGORITHM_DEFINES
21*b077aed3SPierre Pronchery#  error OPENSSL_ALGORITHM_DEFINES no longer supported
22*b077aed3SPierre Pronchery# endif
23*b077aed3SPierre Pronchery
24*b077aed3SPierre Pronchery/*
25*b077aed3SPierre Pronchery * OpenSSL was configured with the following options:
26*b077aed3SPierre Pronchery */
27*b077aed3SPierre Pronchery
28*b077aed3SPierre Pronchery{- if (@{$config{openssl_sys_defines}}) {
29*b077aed3SPierre Pronchery      foreach (@{$config{openssl_sys_defines}}) {
30*b077aed3SPierre Pronchery        $OUT .= "# ifndef $_\n";
31*b077aed3SPierre Pronchery        $OUT .= "#  define $_ 1\n";
32*b077aed3SPierre Pronchery        $OUT .= "# endif\n";
33*b077aed3SPierre Pronchery      }
34*b077aed3SPierre Pronchery    }
35*b077aed3SPierre Pronchery    foreach (@{$config{openssl_api_defines}}) {
36*b077aed3SPierre Pronchery        (my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/;
37*b077aed3SPierre Pronchery        $OUT .= "# define $macro $value\n";
38*b077aed3SPierre Pronchery    }
39*b077aed3SPierre Pronchery    if (@{$config{openssl_feature_defines}}) {
40*b077aed3SPierre Pronchery      foreach (@{$config{openssl_feature_defines}}) {
41*b077aed3SPierre Pronchery        $OUT .= "# ifndef $_\n";
42*b077aed3SPierre Pronchery        $OUT .= "#  define $_\n";
43*b077aed3SPierre Pronchery        $OUT .= "# endif\n";
44*b077aed3SPierre Pronchery      }
45*b077aed3SPierre Pronchery    }
46*b077aed3SPierre Pronchery    "";
47*b077aed3SPierre Pronchery-}
48*b077aed3SPierre Pronchery
49*b077aed3SPierre Pronchery/* Generate 80386 code? */
50*b077aed3SPierre Pronchery{- $config{processor} eq "386" ? "# define" : "# undef" -} I386_ONLY
51*b077aed3SPierre Pronchery
52*b077aed3SPierre Pronchery/*
53*b077aed3SPierre Pronchery * The following are cipher-specific, but are part of the public API.
54*b077aed3SPierre Pronchery */
55*b077aed3SPierre Pronchery# if !defined(OPENSSL_SYS_UEFI)
56*b077aed3SPierre Pronchery{- $config{bn_ll} ? "#  define" : "#  undef" -} BN_LLONG
57*b077aed3SPierre Pronchery/* Only one for the following should be defined */
58*b077aed3SPierre Pronchery{- $config{b64l} ? "#  define" : "#  undef" -} SIXTY_FOUR_BIT_LONG
59*b077aed3SPierre Pronchery{- $config{b64}  ? "#  define" : "#  undef" -} SIXTY_FOUR_BIT
60*b077aed3SPierre Pronchery{- $config{b32}  ? "#  define" : "#  undef" -} THIRTY_TWO_BIT
61*b077aed3SPierre Pronchery# endif
62*b077aed3SPierre Pronchery
63*b077aed3SPierre Pronchery# define RC4_INT {- $config{rc4_int} -}
64*b077aed3SPierre Pronchery
65*b077aed3SPierre Pronchery# ifdef  __cplusplus
66*b077aed3SPierre Pronchery}
67*b077aed3SPierre Pronchery# endif
68*b077aed3SPierre Pronchery
69*b077aed3SPierre Pronchery#endif                          /* OPENSSL_CONFIGURATION_H */
70