19dd13e84SCy Schubertmy %targets = ( 29dd13e84SCy Schubert "BC-32" => { 39dd13e84SCy Schubert inherit_from => [ "BASE_Windows" ], 49dd13e84SCy Schubert sys_id => "WIN32", 59dd13e84SCy Schubert bn_ops => "BN_LLONG", 69dd13e84SCy Schubert thread_scheme => "winthreads", 79dd13e84SCy Schubert cc => "bcc32c", 89dd13e84SCy Schubert CPP => "cpp32 -oCON -Sc -Sr", 99dd13e84SCy Schubert defines => add("WIN32_LEAN_AND_MEAN", "OPENSSL_SYS_WIN32", 109dd13e84SCy Schubert "L_ENDIAN", "DSO_WIN32", "_stricmp=stricmp", 119dd13e84SCy Schubert "_strnicmp=strnicmp", "_malloca=malloc", 129dd13e84SCy Schubert "_freea=free", "_setmode=setmode"), 139dd13e84SCy Schubert cflags => picker(default => add("-q -c", 149dd13e84SCy Schubert threads("-tM"), 159dd13e84SCy Schubert shared("-tR")), 169dd13e84SCy Schubert debug => "-Od -v -vi- -D_DEBUG", 179dd13e84SCy Schubert release => "-O2"), 189dd13e84SCy Schubert bin_cflags => "-tWC", 199dd13e84SCy Schubert lib_cflags => shared("-tWD -D_WINDLL -D_DLL"), 209dd13e84SCy Schubert coutflag => "-o", 219dd13e84SCy Schubert 229dd13e84SCy Schubert # -Sx isn't documented, but 'cpp32 -H -S' explains it: 239dd13e84SCy Schubert # 249dd13e84SCy Schubert # -Sx Omit preprocessed text in output 259dd13e84SCy Schubert makedepcmd => "cpp32 -oCON -Sx -Hp", 269dd13e84SCy Schubert makedep_scheme => "embarcadero", 279dd13e84SCy Schubert 289dd13e84SCy Schubert LD => "ilink32", 299dd13e84SCy Schubert LDFLAGS => picker(default => "-x -Gn -q -w-dup", 309dd13e84SCy Schubert debug => '-j"$(BDS)\lib\win32c\debug" ' . 319dd13e84SCy Schubert '-L"$(BDS)\lib\win32c\debug" -v', 329dd13e84SCy Schubert release => '-j"$(BDS)\lib\win32c\release" ' . 339dd13e84SCy Schubert '-L"$(BDS)\lib\win32c\release"'), 349dd13e84SCy Schubert bin_lflags => "-ap -Tpe c0x32.obj wildargs.obj", 359dd13e84SCy Schubert ldoutflag => ",", 369dd13e84SCy Schubert ldpostoutflag => ",,", 379dd13e84SCy Schubert ld_resp_delim => " +\n", 389dd13e84SCy Schubert ex_libs => add(sub { 399dd13e84SCy Schubert my @ex_libs = ("import32.lib", 409dd13e84SCy Schubert ($disabled{shared} 419dd13e84SCy Schubert ? ($disabled{threads} ? "cw32.lib" : "cw32mt.lib") 429dd13e84SCy Schubert : ($disabled{threads} ? "cw32i.lib" : "cw32mti.lib"))); 439dd13e84SCy Schubert push @ex_libs, "ws2_32.lib" unless $disabled{sock}; 449dd13e84SCy Schubert return join(" ", @ex_libs); 459dd13e84SCy Schubert }), 469dd13e84SCy Schubert AR => "tlib", 479dd13e84SCy Schubert ARFLAGS => "/P256 /N /u", 489dd13e84SCy Schubert ar_resp_delim => " &\n", 499dd13e84SCy Schubert RC => "brcc32", 509dd13e84SCy Schubert RCFLAGS => '-i"$(BDS)\include\windows\sdk"', 519dd13e84SCy Schubert rcoutflag => "-fo", 529dd13e84SCy Schubert shared_target => "win-shared", 539dd13e84SCy Schubert shared_ldflag => "-aa -Tpd c0d32.obj", 549dd13e84SCy Schubert lddefflag => ",", 559dd13e84SCy Schubert ldresflag => ",", 569dd13e84SCy Schubert ld_implib_rule => 'implib -a $< $**', 579dd13e84SCy Schubert dso_scheme => "win32", 589dd13e84SCy Schubert shared_defflag => '', 599dd13e84SCy Schubert perl_platform => 'Windows::cppbuilder', 609dd13e84SCy Schubert uplink_arch => 'common', 6129536654SEnji Cooper }, 6229536654SEnji Cooper "BC-64" => { 6329536654SEnji Cooper inherit_from => [ "BASE_Windows" ], 6429536654SEnji Cooper sys_id => "WIN64", 6529536654SEnji Cooper bn_ops => "BN_LLONG", 6629536654SEnji Cooper thread_scheme => "winthreads", 6729536654SEnji Cooper cc => "bcc64", 6829536654SEnji Cooper CPP => "cpp64 -oCON -Sc -Sr", 6929536654SEnji Cooper defines => add("WIN32_LEAN_AND_MEAN", "OPENSSL_SYS_WIN64", 7029536654SEnji Cooper "L_ENDIAN", "DSO_WIN32", "_stricmp=stricmp", 7129536654SEnji Cooper "_strnicmp=strnicmp", "_setmode=setmode"), 7229536654SEnji Cooper cflags => picker(default => add("-q -c", 7329536654SEnji Cooper threads("-tM"), 7429536654SEnji Cooper shared("-tR")), 7529536654SEnji Cooper debug => "-Od -v -vi- -D_DEBUG", 7629536654SEnji Cooper release => "-O2"), 7729536654SEnji Cooper bin_cflags => "-tWC", 7829536654SEnji Cooper lib_cflags => shared("-tWD -D_WINDLL -D_DLL"), 7929536654SEnji Cooper coutflag => "-o", 8029536654SEnji Cooper 8129536654SEnji Cooper # -Sx isn't documented, but 'cpp64 -H -S' explains it: 8229536654SEnji Cooper # 8329536654SEnji Cooper # -Sx Omit preprocessed text in output 8429536654SEnji Cooper makedepcmd => "cpp64 -oCON -Sx -Hp", 8529536654SEnji Cooper makedep_scheme => "embarcadero", 8629536654SEnji Cooper 8729536654SEnji Cooper LD => "ilink64", 8829536654SEnji Cooper LDFLAGS => picker(default => "-x -Gn -q -w-dup", 8929536654SEnji Cooper debug => '-j"$(BDS)\lib\win64\debug" ' . 9029536654SEnji Cooper '-L"$(BDS)\lib\win64\debug" -v', 9129536654SEnji Cooper release => '-j"$(BDS)\lib\win64\release" ' . 9229536654SEnji Cooper '-L"$(BDS)\lib\win64\release"'), 9329536654SEnji Cooper bin_lflags => "-ap -Tpe c0x64.o wildargs.o", 9429536654SEnji Cooper ldoutflag => ",", 9529536654SEnji Cooper ldpostoutflag => ",,", 9629536654SEnji Cooper ld_resp_delim => " +\n", 9729536654SEnji Cooper ex_libs => add(sub { 9829536654SEnji Cooper my @ex_libs = ("import64.a", 9929536654SEnji Cooper ($disabled{shared} 10029536654SEnji Cooper ? ($disabled{threads} ? "cw64.a" : "cw64mt.a") 10129536654SEnji Cooper : ($disabled{threads} ? "cw64i.a" : "cw64mti.a"))); 10229536654SEnji Cooper push @ex_libs, "ws2_32.a" unless $disabled{sock}; 10329536654SEnji Cooper return join(" ", @ex_libs); 10429536654SEnji Cooper }), 10529536654SEnji Cooper AR => "tlib", 10629536654SEnji Cooper ARFLAGS => "/P256 /N /u", 10729536654SEnji Cooper ar_resp_delim => " &\n", 10829536654SEnji Cooper RC => "brcc32", 10929536654SEnji Cooper RCFLAGS => '-i"$(BDS)\include\windows\sdk"', 11029536654SEnji Cooper rcoutflag => "-fo", 11129536654SEnji Cooper shared_target => "win-shared", 11229536654SEnji Cooper shared_ldflag => "-aa -Tpd c0d64.o", 11329536654SEnji Cooper lddefflag => ",", 11429536654SEnji Cooper ldresflag => ",", 11529536654SEnji Cooper ld_implib_rule => 'implib -a $< $**', 11629536654SEnji Cooper dso_scheme => "win64", 11729536654SEnji Cooper shared_defflag => '', 11829536654SEnji Cooper perl_platform => 'Windows::cppbuilder', 11929536654SEnji Cooper uplink_arch => 'common', 1209dd13e84SCy Schubert } 1219dd13e84SCy Schubert); 122