| 16 | |
| 17 | Initial drafts can be found under [browser:users/mojca/ports/cross users/mojca/ports/cross]). |
| 18 | |
| 19 | == Ports == |
| 20 | |
| 21 | The ports have to be compiled in the following order: |
| 22 | * ~~{i686,x86_64}-w64-mingw32-binutils~~ (DONE) |
| 23 | * (no dependencies) |
| 24 | * ~~{i686,x86_64}-w64-mingw32-headers~~ (DONE) |
| 25 | * (no dependencies) |
| 26 | * ~~gmp, mpfr, libmpc~~ (native ports already packaged by MacPorts) |
| 27 | * cloog, ppl (might be worth looking into) |
| 28 | * {i686,x86_64}-w64-mingw32-gcc (possibly rename) |
| 29 | * gcc compiler |
| 30 | * dependencies: |
| 31 | * {i686,x86_64}-w64-mingw32-binutils |
| 32 | * {i686,x86_64}-w64-mingw32-headers |
| 33 | * {i686,x86_64}-w64-mingw32-gcc |
| 34 | * gmp, mpfr, libmpc |
| 35 | * libiconv, zlib |
| 36 | * the first stage compiles (this is a standalone gcc, it won't actually be able to link executables, but it is already suitable to compile the CRT) |
| 37 | * ~~{i686,x86_64}-w64-mingw32-crt~~ (DONE) |
| 38 | * dependencies: |
| 39 | * {i686,x86_64}-w64-mingw32-binutils |
| 40 | * {i686,x86_64}-w64-mingw32-headers |
| 41 | * {i686,x86_64}-w64-mingw32-gcc (either first stage or any later stage) |
| 42 | * make sure that all the file are where expected |
| 43 | * {i686,x86_64}-w64-mingw32-libgcc |
| 44 | * same sources as the gcc compiler; only a different target (`make all-target-libgcc && make install-target-libgcc`) |
| 45 | * when a compiler already exists, one could build both gcc and libgcc at the same time |
| 46 | * files provided by the gcc port should be removed |
| 47 | * dependencies: |
| 48 | * {i686,x86_64}-w64-mingw32-crt |
| 49 | * {i686,x86_64}-w64-mingw32-gcc (either first stage or any later stage) |
| 50 | * pthreads-win32 |
| 51 | * dependencies: |
| 52 | * {i686,x86_64}-w64-mingw32-libgcc (or full compiler) |
| 53 | * {i686,x86_64}-w64-mingw32-all(?) (second stage of gcc compiler) |
| 54 | * same sources as the gcc compiler; only a different target (`make && make install`) |
| 55 | * dependencies: |
| 56 | * pthreads-win32 |
| 57 | * {i686,x86_64}-w64-mingw32-libgcc |
| 58 | |
| 59 | == Things to do == |
| 60 | |
| 61 | * fix layout of individual packages (folders where files are installed) |
| 62 | |
| 63 | == Further challenges == |
| 64 | |
| 65 | * on top of C and C++ also support Ada, Fortran, ObjC, ObjC++ (`--enable-languages=c,c++,objc,obj-c++,ada,fortran`) |
| 66 | * support clang |
| 67 | * figure out where `stdlibc++` should be located on Windows (is it possible to build it statically?) |