comparison dmd/mars.c @ 534:7e2867ed70d9

Get rid of isLinux and isWindows in favor of global.params.os.
author Christian Kamm <kamm incasoftware de>
date Sun, 24 Aug 2008 16:22:58 +0200
parents d30c40f1128d
children f79bbd1d0b27
comparison
equal deleted inserted replaced
532:0beebf923322 534:7e2867ed70d9
229 Array files; 229 Array files;
230 char *p; 230 char *p;
231 Module *m; 231 Module *m;
232 int status = EXIT_SUCCESS; 232 int status = EXIT_SUCCESS;
233 int argcstart = argc; 233 int argcstart = argc;
234 char* tt_arch = 0;
235 char* tt_os = 0;
236 char* data_layout = 0;
237 bool very_verbose = false; 234 bool very_verbose = false;
238 235
239 // Check for malformed input 236 // Check for malformed input
240 if (argc < 1 || !argv) 237 if (argc < 1 || !argv)
241 { 238 {
310 #if IN_LLVM 307 #if IN_LLVM
311 VersionCondition::addPredefinedGlobalIdent("LLVM"); 308 VersionCondition::addPredefinedGlobalIdent("LLVM");
312 VersionCondition::addPredefinedGlobalIdent("LLVMDC"); 309 VersionCondition::addPredefinedGlobalIdent("LLVMDC");
313 #endif 310 #endif
314 311
312 // setup default target os to be build os
315 #if _WIN32 313 #if _WIN32
316 VersionCondition::addPredefinedGlobalIdent("Windows"); 314 global.params.os = OSWindows;
317 VersionCondition::addPredefinedGlobalIdent("Win32");
318 VersionCondition::addPredefinedGlobalIdent("mingw32");
319 global.params.isWindows = 1;
320 tt_os = "-pc-mingw32";
321 #elif linux 315 #elif linux
322 VersionCondition::addPredefinedGlobalIdent("linux"); 316 global.params.os = OSLinux;
323 global.params.isLinux = 1;
324 tt_os = "-pc-linux-gnu";
325 #else 317 #else
326 #error 318 #error
327 #endif /* linux */ 319 #endif /* linux */
328
329 // !win32 == posix for now
330 if (!global.params.isWindows)
331 VersionCondition::addPredefinedGlobalIdent("Posix");
332 320
333 //VersionCondition::addPredefinedGlobalIdent("D_Bits"); 321 //VersionCondition::addPredefinedGlobalIdent("D_Bits");
334 VersionCondition::addPredefinedGlobalIdent("all"); 322 VersionCondition::addPredefinedGlobalIdent("all");
335 323
336 #if _WIN32 324 #if _WIN32
698 if (strcmp(global.params.llvmArch,"x86")==0) { 686 if (strcmp(global.params.llvmArch,"x86")==0) {
699 VersionCondition::addPredefinedGlobalIdent("X86"); 687 VersionCondition::addPredefinedGlobalIdent("X86");
700 global.params.isLE = true; 688 global.params.isLE = true;
701 global.params.is64bit = false; 689 global.params.is64bit = false;
702 global.params.cpu = ARCHx86; 690 global.params.cpu = ARCHx86;
703 tt_arch = "i686"; 691 global.params.tt_arch = "i686";
704 data_layout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-f80:32:32-v64:64:64-v128:128:128-a0:0:64"; 692 global.params.data_layout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-f80:32:32-v64:64:64-v128:128:128-a0:0:64";
705 if (global.params.useInlineAsm) { 693 if (global.params.useInlineAsm) {
706 VersionCondition::addPredefinedGlobalIdent("D_InlineAsm"); 694 VersionCondition::addPredefinedGlobalIdent("D_InlineAsm");
707 VersionCondition::addPredefinedGlobalIdent("D_InlineAsm_X86"); 695 VersionCondition::addPredefinedGlobalIdent("D_InlineAsm_X86");
708 } 696 }
709 } 697 }
710 else if (strcmp(global.params.llvmArch,"x86-64")==0) { 698 else if (strcmp(global.params.llvmArch,"x86-64")==0) {
711 VersionCondition::addPredefinedGlobalIdent("X86_64"); 699 VersionCondition::addPredefinedGlobalIdent("X86_64");
712 global.params.isLE = true; 700 global.params.isLE = true;
713 global.params.is64bit = true; 701 global.params.is64bit = true;
714 global.params.cpu = ARCHx86_64; 702 global.params.cpu = ARCHx86_64;
715 tt_arch = "x86_64"; 703 global.params.tt_arch = "x86_64";
716 data_layout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"; 704 global.params.data_layout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64";
717 } 705 }
718 else if (strcmp(global.params.llvmArch,"ppc32")==0) { 706 else if (strcmp(global.params.llvmArch,"ppc32")==0) {
719 VersionCondition::addPredefinedGlobalIdent("PPC"); 707 VersionCondition::addPredefinedGlobalIdent("PPC");
720 global.params.isLE = false; 708 global.params.isLE = false;
721 global.params.is64bit = false; 709 global.params.is64bit = false;
722 global.params.cpu = ARCHppc; 710 global.params.cpu = ARCHppc;
723 tt_arch = "powerpc"; 711 global.params.tt_arch = "powerpc";
724 data_layout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64"; 712 global.params.data_layout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64";
725 } 713 }
726 else if (strcmp(global.params.llvmArch,"ppc64")==0) { 714 else if (strcmp(global.params.llvmArch,"ppc64")==0) {
727 VersionCondition::addPredefinedGlobalIdent("PPC64"); 715 VersionCondition::addPredefinedGlobalIdent("PPC64");
728 global.params.isLE = false; 716 global.params.isLE = false;
729 global.params.is64bit = true; 717 global.params.is64bit = true;
730 global.params.cpu = ARCHppc_64; 718 global.params.cpu = ARCHppc_64;
731 tt_arch = "powerpc64"; 719 global.params.tt_arch = "powerpc64";
732 data_layout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"; 720 global.params.data_layout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64";
733 } 721 }
734 else { 722 else {
735 assert(0 && "Invalid arch"); 723 assert(0 && "Invalid arch");
736 } 724 }
737 725
748 736
749 if (global.params.is64bit) { 737 if (global.params.is64bit) {
750 VersionCondition::addPredefinedGlobalIdent("LLVM64"); 738 VersionCondition::addPredefinedGlobalIdent("LLVM64");
751 } 739 }
752 740
753 assert(tt_arch != 0); 741
754 assert(tt_os != 0); 742 // setup version idents and tt_os for chosen target os
755 assert(data_layout != 0); 743 switch(global.params.os)
756 global.params.tt_arch = tt_arch; 744 {
757 global.params.tt_os = tt_os; 745 case OSWindows:
758 global.params.data_layout = data_layout; 746 VersionCondition::addPredefinedGlobalIdent("Windows");
747 VersionCondition::addPredefinedGlobalIdent("Win32");
748 VersionCondition::addPredefinedGlobalIdent("mingw32");
749 global.params.tt_os = "-pc-mingw32";
750 break;
751
752 case OSLinux:
753 VersionCondition::addPredefinedGlobalIdent("linux");
754 VersionCondition::addPredefinedGlobalIdent("Posix");
755 global.params.tt_os = "-pc-linux-gnu";
756 break;
757
758 default:
759 assert(false && "Target OS not supported");
760 }
761
759 762
760 // Initialization 763 // Initialization
761 Type::init(); 764 Type::init();
762 Id::initialize(); 765 Id::initialize();
763 Module::init(); 766 Module::init();