00-base-templates.conf 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. # -*- Mode: perl -*-
  2. my %targets=(
  3. DEFAULTS => {
  4. template => 1,
  5. cflags => "",
  6. cppflags => "",
  7. lflags => "",
  8. defines => [],
  9. includes => [],
  10. lib_cflags => "",
  11. lib_cppflags => "",
  12. lib_defines => [],
  13. thread_scheme => "(unknown)", # Assume we don't know
  14. thread_defines => [],
  15. unistd => "<unistd.h>",
  16. shared_target => "",
  17. shared_cflag => "",
  18. shared_defines => [],
  19. shared_ldflag => "",
  20. shared_rcflag => "",
  21. #### Defaults for the benefit of the config targets who don't inherit
  22. #### a BASE and assume Unix defaults
  23. #### THESE WILL DISAPPEAR IN OpenSSL 1.2
  24. build_scheme => [ "unified", "unix" ],
  25. build_file => "Makefile",
  26. AR => "ar",
  27. ARFLAGS => "r",
  28. CC => "cc",
  29. HASHBANGPERL => "/usr/bin/env perl",
  30. RANLIB => sub { which("$config{cross_compile_prefix}ranlib")
  31. ? "ranlib" : "" },
  32. RC => "windres",
  33. #### THESE WILL BE ENABLED IN OpenSSL 1.2
  34. #HASHBANGPERL => "PERL", # Only Unix actually cares
  35. },
  36. BASE_common => {
  37. template => 1,
  38. enable => [],
  39. disable => [],
  40. defines =>
  41. sub {
  42. my @defs = ();
  43. push @defs, "ZLIB" unless $disabled{zlib};
  44. push @defs, "ZLIB_SHARED" unless $disabled{"zlib-dynamic"};
  45. return [ @defs ];
  46. },
  47. includes =>
  48. sub {
  49. my @incs = ();
  50. push @incs, $withargs{zlib_include}
  51. if !$disabled{zlib} && $withargs{zlib_include};
  52. return [ @incs ];
  53. },
  54. },
  55. BASE_unix => {
  56. inherit_from => [ "BASE_common" ],
  57. template => 1,
  58. AR => "ar",
  59. ARFLAGS => "r",
  60. CC => "cc",
  61. lflags =>
  62. sub { $withargs{zlib_lib} ? "-L".$withargs{zlib_lib} : () },
  63. ex_libs =>
  64. sub { !defined($disabled{zlib})
  65. && defined($disabled{"zlib-dynamic"})
  66. ? "-lz" : () },
  67. HASHBANGPERL => "/usr/bin/env perl", # Only Unix actually cares
  68. RANLIB => sub { which("$config{cross_compile_prefix}ranlib")
  69. ? "ranlib" : "" },
  70. RC => "windres",
  71. build_scheme => [ "unified", "unix" ],
  72. build_file => "Makefile",
  73. perl_platform => 'Unix',
  74. },
  75. BASE_Windows => {
  76. inherit_from => [ "BASE_common" ],
  77. template => 1,
  78. lib_defines =>
  79. sub {
  80. my @defs = ();
  81. unless ($disabled{"zlib-dynamic"}) {
  82. my $zlib = $withargs{zlib_lib} // "ZLIB1";
  83. push @defs, 'LIBZ=' . (quotify("perl", $zlib))[0];
  84. }
  85. return [ @defs ];
  86. },
  87. ex_libs =>
  88. sub {
  89. unless ($disabled{zlib}) {
  90. if (defined($disabled{"zlib-dynamic"})) {
  91. return $withargs{zlib_lib} // "ZLIB1";
  92. }
  93. }
  94. return ();
  95. },
  96. LD => "link",
  97. LDFLAGS => "/nologo",
  98. ldoutflag => "/out:",
  99. AR => "lib",
  100. ARFLAGS => "/nologo",
  101. aroutflag => "/out:",
  102. RC => "rc",
  103. rcoutflag => "/fo",
  104. MT => "mt",
  105. MTFLAGS => "-nologo",
  106. mtinflag => "-manifest ",
  107. mtoutflag => "-outputresource:",
  108. build_file => "makefile",
  109. build_scheme => [ "unified", "windows" ],
  110. perl_platform => 'Windows',
  111. },
  112. BASE_VMS => {
  113. inherit_from => [ "BASE_common" ],
  114. template => 1,
  115. includes =>
  116. add(sub {
  117. my @incs = ();
  118. # GNV$ZLIB_INCLUDE is the standard logical name for later
  119. # zlib incarnations.
  120. push @incs, 'GNV$ZLIB_INCLUDE:'
  121. if !$disabled{zlib} && !$withargs{zlib_include};
  122. return [ @incs ];
  123. }),
  124. build_file => "descrip.mms",
  125. build_scheme => [ "unified", "VMS" ],
  126. perl_platform => 'VMS',
  127. },
  128. x86_asm => {
  129. template => 1,
  130. },
  131. x86_elf_asm => {
  132. template => 1,
  133. inherit_from => [ "x86_asm" ],
  134. },
  135. x86_64_asm => {
  136. template => 1,
  137. },
  138. ia64_asm => {
  139. template => 1,
  140. },
  141. sparcv9_asm => {
  142. template => 1,
  143. },
  144. sparcv8_asm => {
  145. template => 1,
  146. },
  147. alpha_asm => {
  148. template => 1,
  149. },
  150. mips32_asm => {
  151. template => 1,
  152. },
  153. mips64_asm => {
  154. inherit_from => [ "mips32_asm" ],
  155. template => 1,
  156. },
  157. s390x_asm => {
  158. template => 1,
  159. },
  160. armv4_asm => {
  161. template => 1,
  162. },
  163. aarch64_asm => {
  164. template => 1,
  165. },
  166. parisc11_asm => {
  167. template => 1,
  168. },
  169. parisc20_64_asm => {
  170. template => 1,
  171. inherit_from => [ "parisc11_asm" ],
  172. },
  173. ppc32_asm => {
  174. template => 1,
  175. },
  176. ppc64_asm => {
  177. inherit_from => [ "ppc32_asm" ],
  178. template => 1,
  179. },
  180. );