1my %targets = ( 2 "BC-32" => { 3 inherit_from => [ "BASE_Windows" ], 4 sys_id => "WIN32", 5 bn_ops => "BN_LLONG", 6 thread_scheme => "winthreads", 7 cc => "bcc32c", 8 CPP => "cpp32 -oCON -Sc -Sr", 9 defines => add("WIN32_LEAN_AND_MEAN", "OPENSSL_SYS_WIN32", 10 "L_ENDIAN", "DSO_WIN32", "_stricmp=stricmp", 11 "_strnicmp=strnicmp", "_malloca=malloc", 12 "_freea=free", "_setmode=setmode"), 13 cflags => picker(default => add("-q -c", 14 threads("-tM"), 15 shared("-tR")), 16 debug => "-Od -v -vi- -D_DEBUG", 17 release => "-O2"), 18 bin_cflags => "-tWC", 19 lib_cflags => shared("-tWD -D_WINDLL -D_DLL"), 20 coutflag => "-o", 21 22 # -Sx isn't documented, but 'cpp32 -H -S' explains it: 23 # 24 # -Sx Omit preprocessed text in output 25 makedepcmd => "cpp32 -oCON -Sx -Hp", 26 makedep_scheme => "embarcadero", 27 28 LD => "ilink32", 29 LDFLAGS => picker(default => "-x -Gn -q -w-dup", 30 debug => '-j"$(BDS)\lib\win32c\debug" ' . 31 '-L"$(BDS)\lib\win32c\debug" -v', 32 release => '-j"$(BDS)\lib\win32c\release" ' . 33 '-L"$(BDS)\lib\win32c\release"'), 34 bin_lflags => "-ap -Tpe c0x32.obj wildargs.obj", 35 ldoutflag => ",", 36 ldpostoutflag => ",,", 37 ld_resp_delim => " +\n", 38 ex_libs => add(sub { 39 my @ex_libs = ("import32.lib", 40 ($disabled{shared} 41 ? ($disabled{threads} ? "cw32.lib" : "cw32mt.lib") 42 : ($disabled{threads} ? "cw32i.lib" : "cw32mti.lib"))); 43 push @ex_libs, "ws2_32.lib" unless $disabled{sock}; 44 return join(" ", @ex_libs); 45 }), 46 AR => "tlib", 47 ARFLAGS => "/P256 /N /u", 48 ar_resp_delim => " &\n", 49 RC => "brcc32", 50 RCFLAGS => '-i"$(BDS)\include\windows\sdk"', 51 rcoutflag => "-fo", 52 shared_target => "win-shared", 53 shared_ldflag => "-aa -Tpd c0d32.obj", 54 lddefflag => ",", 55 ldresflag => ",", 56 ld_implib_rule => 'implib -a $< $**', 57 dso_scheme => "win32", 58 shared_defflag => '', 59 perl_platform => 'Windows::cppbuilder', 60 uplink_arch => 'common', 61 }, 62 "BC-64" => { 63 inherit_from => [ "BASE_Windows" ], 64 sys_id => "WIN64", 65 bn_ops => "BN_LLONG", 66 thread_scheme => "winthreads", 67 cc => "bcc64", 68 CPP => "cpp64 -oCON -Sc -Sr", 69 defines => add("WIN32_LEAN_AND_MEAN", "OPENSSL_SYS_WIN64", 70 "L_ENDIAN", "DSO_WIN32", "_stricmp=stricmp", 71 "_strnicmp=strnicmp", "_setmode=setmode"), 72 cflags => picker(default => add("-q -c", 73 threads("-tM"), 74 shared("-tR")), 75 debug => "-Od -v -vi- -D_DEBUG", 76 release => "-O2"), 77 bin_cflags => "-tWC", 78 lib_cflags => shared("-tWD -D_WINDLL -D_DLL"), 79 coutflag => "-o", 80 81 # -Sx isn't documented, but 'cpp64 -H -S' explains it: 82 # 83 # -Sx Omit preprocessed text in output 84 makedepcmd => "cpp64 -oCON -Sx -Hp", 85 makedep_scheme => "embarcadero", 86 87 LD => "ilink64", 88 LDFLAGS => picker(default => "-x -Gn -q -w-dup", 89 debug => '-j"$(BDS)\lib\win64\debug" ' . 90 '-L"$(BDS)\lib\win64\debug" -v', 91 release => '-j"$(BDS)\lib\win64\release" ' . 92 '-L"$(BDS)\lib\win64\release"'), 93 bin_lflags => "-ap -Tpe c0x64.o wildargs.o", 94 ldoutflag => ",", 95 ldpostoutflag => ",,", 96 ld_resp_delim => " +\n", 97 ex_libs => add(sub { 98 my @ex_libs = ("import64.a", 99 ($disabled{shared} 100 ? ($disabled{threads} ? "cw64.a" : "cw64mt.a") 101 : ($disabled{threads} ? "cw64i.a" : "cw64mti.a"))); 102 push @ex_libs, "ws2_32.a" unless $disabled{sock}; 103 return join(" ", @ex_libs); 104 }), 105 AR => "tlib", 106 ARFLAGS => "/P256 /N /u", 107 ar_resp_delim => " &\n", 108 RC => "brcc32", 109 RCFLAGS => '-i"$(BDS)\include\windows\sdk"', 110 rcoutflag => "-fo", 111 shared_target => "win-shared", 112 shared_ldflag => "-aa -Tpd c0d64.o", 113 lddefflag => ",", 114 ldresflag => ",", 115 ld_implib_rule => 'implib -a $< $**', 116 dso_scheme => "win64", 117 shared_defflag => '', 118 perl_platform => 'Windows::cppbuilder', 119 uplink_arch => 'common', 120 } 121); 122