Left: | ||
Right: |
OLD | NEW |
---|---|
1 // Copyright 2012 The Go Authors. All rights reserved. | 1 // Copyright 2012 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 #include "a.h" | 5 #include "a.h" |
6 #include "arg.h" | 6 #include "arg.h" |
7 | 7 |
8 /* | 8 /* |
9 * Initialization for any invocation. | 9 * Initialization for any invocation. |
10 */ | 10 */ |
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
854 for(i=0; i<files.len; i++) { | 854 for(i=0; i<files.len; i++) { |
855 if(!hassuffix(files.p[i], ".c") && !hassuffix(files.p[i], ".s")) | 855 if(!hassuffix(files.p[i], ".c") && !hassuffix(files.p[i], ".s")) |
856 continue; | 856 continue; |
857 name = lastelem(files.p[i]); | 857 name = lastelem(files.p[i]); |
858 | 858 |
859 vreset(&compile); | 859 vreset(&compile); |
860 if(!isgo) { | 860 if(!isgo) { |
861 // C library or tool. | 861 // C library or tool. |
862 if(streq(gohostos, "plan9")) { | 862 if(streq(gohostos, "plan9")) { |
863 vadd(&compile, bprintf(&b, "%sc", gohostchar)); | 863 vadd(&compile, bprintf(&b, "%sc", gohostchar)); |
864 vadd(&compile, "-FTVw"); | 864 vadd(&compile, "-FTVw"); |
remyoudompheng
2012/12/30 08:37:16
should this be fixed?
rsc
2012/12/30 15:40:37
This is setting up for the host compiler, to build
| |
865 if(usecpp) | 865 if(usecpp) |
866 vadd(&compile, "-Bp+"); | 866 vadd(&compile, "-Bp+"); |
867 vadd(&compile, bpathf(&b, "-I%s/include/plan9", goroot)); | 867 vadd(&compile, bpathf(&b, "-I%s/include/plan9", goroot)); |
868 vadd(&compile, bpathf(&b, "-I%s/include/plan9/%s ", goroot, gohostarch)); | 868 vadd(&compile, bpathf(&b, "-I%s/include/plan9/%s ", goroot, gohostarch)); |
869 } else { | 869 } else { |
870 vcopy(&compile, gccargs.p, gccargs.len); | 870 vcopy(&compile, gccargs.p, gccargs.len); |
871 vadd(&compile, "-c"); | 871 vadd(&compile, "-c"); |
872 if(streq(gohostarch, "amd64")) | 872 if(streq(gohostarch, "amd64")) |
873 vadd(&compile, "-m64"); | 873 vadd(&compile, "-m64"); |
874 else if(streq(gohostarch, "386")) | 874 else if(streq(gohostarch, "386")) |
875 vadd(&compile, "-m32"); | 875 vadd(&compile, "-m32"); |
876 if(streq(dir, "lib9")) | 876 if(streq(dir, "lib9")) |
877 vadd(&compile, "-DPLAN9PORT"); | 877 vadd(&compile, "-DPLAN9PORT"); |
878 ········ | 878 ········ |
879 vadd(&compile, "-I"); | 879 vadd(&compile, "-I"); |
880 vadd(&compile, bpathf(&b, "%s/include", goroot)) ; | 880 vadd(&compile, bpathf(&b, "%s/include", goroot)) ; |
881 } | 881 } |
882 | 882 |
883 vadd(&compile, "-I"); | 883 vadd(&compile, "-I"); |
884 vadd(&compile, bstr(&path)); | 884 vadd(&compile, bstr(&path)); |
885 | 885 |
886 // lib9/goos.c gets the default constants hard-coded. | 886 // lib9/goos.c gets the default constants hard-coded. |
887 if(streq(name, "goos.c")) { | 887 if(streq(name, "goos.c")) { |
888 » » » » vadd(&compile, bprintf(&b, "-DGOOS=\"%s\"", goos )); | 888 » » » » vadd(&compile, "-D"); |
889 » » » » vadd(&compile, bprintf(&b, "-DGOARCH=\"%s\"", go arch)); | 889 » » » » vadd(&compile, bprintf(&b, "GOOS=\"%s\"", goos)) ; |
890 » » » » vadd(&compile, "-D"); | |
891 » » » » vadd(&compile, bprintf(&b, "GOARCH=\"%s\"", goar ch)); | |
890 bprintf(&b1, "%s", goroot_final); | 892 bprintf(&b1, "%s", goroot_final); |
891 bsubst(&b1, "\\", "\\\\"); // turn into C strin g | 893 bsubst(&b1, "\\", "\\\\"); // turn into C strin g |
892 » » » » vadd(&compile, bprintf(&b, "-DGOROOT=\"%s\"", bs tr(&b1))); | 894 » » » » vadd(&compile, "-D"); |
893 » » » » vadd(&compile, bprintf(&b, "-DGOVERSION=\"%s\"", goversion)); | 895 » » » » vadd(&compile, bprintf(&b, "GOROOT=\"%s\"", bstr (&b1))); |
894 » » » » vadd(&compile, bprintf(&b, "-DGOARM=\"%s\"", goa rm)); | 896 » » » » vadd(&compile, "-D"); |
897 » » » » vadd(&compile, bprintf(&b, "GOVERSION=\"%s\"", g oversion)); | |
898 » » » » vadd(&compile, "-D"); | |
899 » » » » vadd(&compile, bprintf(&b, "GOARM=\"%s\"", goarm )); | |
895 } | 900 } |
896 | 901 |
897 // gc/lex.c records the GOEXPERIMENT setting used during the build. | 902 // gc/lex.c records the GOEXPERIMENT setting used during the build. |
898 if(streq(name, "lex.c")) { | 903 if(streq(name, "lex.c")) { |
899 xgetenv(&b, "GOEXPERIMENT"); | 904 xgetenv(&b, "GOEXPERIMENT"); |
900 » » » » vadd(&compile, bprintf(&b1, "-DGOEXPERIMENT=\"%s \"", bstr(&b))); | 905 » » » » vadd(&compile, "-D"); |
906 » » » » vadd(&compile, bprintf(&b1, "GOEXPERIMENT=\"%s\" ", bstr(&b))); | |
901 } | 907 } |
902 } else { | 908 } else { |
903 // Supporting files for a Go package. | 909 // Supporting files for a Go package. |
904 if(hassuffix(files.p[i], ".s")) | 910 if(hassuffix(files.p[i], ".s")) |
905 vadd(&compile, bpathf(&b, "%s/%sa", tooldir, goc har)); | 911 vadd(&compile, bpathf(&b, "%s/%sa", tooldir, goc har)); |
906 else { | 912 else { |
907 vadd(&compile, bpathf(&b, "%s/%sc", tooldir, goc har)); | 913 vadd(&compile, bpathf(&b, "%s/%sc", tooldir, goc har)); |
908 » » » » vadd(&compile, "-FVw"); | 914 » » » » vadd(&compile, "-F"); |
915 » » » » vadd(&compile, "-V"); | |
916 » » » » vadd(&compile, "-w"); | |
909 } | 917 } |
910 vadd(&compile, "-I"); | 918 vadd(&compile, "-I"); |
911 vadd(&compile, workdir); | 919 vadd(&compile, workdir); |
912 » » » vadd(&compile, bprintf(&b, "-DGOOS_%s", goos)); | 920 » » » vadd(&compile, "-D"); |
913 » » » vadd(&compile, bprintf(&b, "-DGOARCH_%s", goarch)); | 921 » » » vadd(&compile, bprintf(&b, "GOOS_%s", goos)); |
922 » » » vadd(&compile, "-D"); | |
923 » » » vadd(&compile, bprintf(&b, "GOARCH_%s", goarch)); | |
914 } | 924 } |
915 | 925 |
916 bpathf(&b, "%s/%s", workdir, lastelem(files.p[i])); | 926 bpathf(&b, "%s/%s", workdir, lastelem(files.p[i])); |
917 doclean = 1; | 927 doclean = 1; |
918 if(!isgo && streq(gohostos, "darwin")) { | 928 if(!isgo && streq(gohostos, "darwin")) { |
919 // To debug C programs on OS X, it is not enough to say -ggdb | 929 // To debug C programs on OS X, it is not enough to say -ggdb |
920 // on the command line. You have to leave the object fi les | 930 // on the command line. You have to leave the object fi les |
921 // lying around too. Leave them in pkg/obj/, which does not | 931 // lying around too. Leave them in pkg/obj/, which does not |
922 // get removed when this tool exits. | 932 // get removed when this tool exits. |
923 bpathf(&b1, "%s/pkg/obj/%s", goroot, dir); | 933 bpathf(&b1, "%s/pkg/obj/%s", goroot, dir); |
(...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1598 break; | 1608 break; |
1599 default: | 1609 default: |
1600 usage(); | 1610 usage(); |
1601 }ARGEND | 1611 }ARGEND |
1602 | 1612 |
1603 if(argc > 0) | 1613 if(argc > 0) |
1604 usage(); | 1614 usage(); |
1605 | 1615 |
1606 xprintf("%s\n", goversion); | 1616 xprintf("%s\n", goversion); |
1607 } | 1617 } |
OLD | NEW |