Mercurial > projects > ldc
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(); |