User Tools

Site Tools






preparing_a_build_environment_in_cygwin

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
preparing_a_build_environment_in_cygwin [2016/07/05 15:23]
– more info on ophis and ghdl provided gurce
preparing_a_build_environment_in_cygwin [2021/06/19 00:35] (current)
– [3) Build and install gcc+ghdl] gurce
Line 51: Line 51:
   * Stick with the default "**(x) Select required packages (RECOMMENDED)**"   * Stick with the default "**(x) Select required packages (RECOMMENDED)**"
     * then click "**Next**"     * then click "**Next**"
 +    * {{http://gurce.net/Logs/images/img_2016_06_21_14_06.png}}
   * Patiently wait for it all to install... :)   * Patiently wait for it all to install... :)
   * On the final screen:   * On the final screen:
Line 62: Line 63:
 {{http://gurce.net/Logs/images/img_2016_06_21_14_12.png}} {{http://gurce.net/Logs/images/img_2016_06_21_14_12.png}}
  
 +
 +===== Cygwin Prerequisites =====
 +
 +Run the Cygwin setup exe again and install the following packages:
 +
 +  * **gcc-core**
 +  * **gcc-g++**
 +  * **gcc-ada**
 +  * **gdb**
 +  * **gmp-devel**
 +  * **mpfr-devel**
 +  * **libmpc-devel**
 +  * **wget**
 +  * **git**
 +  * **libpng-devel**
 +
 +For example, for "**libpng-devel**", search for it via this step in the wizard and click on it so the "**[x]**" checkmark appears next to it.
 +
 +{{http://gurce.net/Logs/images/img_2016_06_24_7_26.png}}
 +
 +Note that you can search and select multiple items this way prior to clicking on the wizard's "**Next**" button. (ie, you don't need to run the cygwin setup exe once per package, do all packages at once :))
 +
 +===== Retrieve the MEGA65 source code =====
 +
 +The source code for the MEGA65 project is housed in a git repository hosted by github.
 +
 +To retrieve it, inside the Cygwin Terminal, do the following:
 +
 +  * **cd ~** (ie, go to your home folder)
 +  * **git clone https://github.com/MEGA65/mega65-core.git**
 +
 +The source-code will then be placed in the "~/mega65-core" path.
  
 ===== Installing Ophis ===== ===== Installing Ophis =====
Line 69: Line 102:
 It is a cross-compiler for the 6502-family of processors. Paul has tweaked it so that it can also support his new 4502 processor. It is a cross-compiler for the 6502-family of processors. Paul has tweaked it so that it can also support his new 4502 processor.
  
-  * You'll need to grab it from Paul's github fork of Ophis: +You'll need to grab it from Paul's github fork of Ophis, as follows:
-    * "Ophis @ 98ffd2a" +
-      * https://github.com/gardners/Ophis/tree/98ffd2af95d1a4a1b9dac180c0bdf681f815d47a +
-  * It also needs to be housed in a path that relates to where your mega65 code is located, so that mega65 code can see it.+
  
-TODOProvide more detailed steps for thisjust placeholder stuff for now.+  * **cd ~** 
 +  * **git clone https://github.com/gardners/Ophis.git** 
 + 
 +__NOTE__: Ophis needs to be housed within the same parent-folder that you previously cloned the mega65 code to, as the mega65 code uses relative-paths to access it. So if you chose a different parent-folder for your mega65 code to that shown in these docsmake sure you put Ophis in that location too! 
 + 
 +__NOTE2__: You won't need to compile Ophis as it is written in python. I believe the default Cygwin install comes with python. If you find this isn't the case for you, please install it via the cygwin setup exe.
  
 ===== Installing GHDL ===== ===== Installing GHDL =====
Line 81: Line 116:
  
 It also needs to be built from the source, so here are some steps for getting it done. It also needs to be built from the source, so here are some steps for getting it done.
- 
-==== Prerequisites ==== 
- 
-Run the cygwin setup exe and install the following: 
- 
-  * gcc-g++ 
-  * gcc-ada 
-  * gmp-devel 
-  * mpfr-devel 
-  * libmpc-devel 
-  * wget 
-  * git 
  
 ==== 1) Grab the source for gcc v4.9.3 ==== ==== 1) Grab the source for gcc v4.9.3 ====
  
-  * cd ~/Downloads +  * **cd ~/Downloads** 
-  * wget http://mirror.aarnet.edu.au/pub/gnu/gcc/gcc-4.9.3/gcc-4.9.3.tar.gz +  * **wget http://mirror.aarnet.edu.au/pub/gnu/gcc/gcc-4.9.3/gcc-4.9.3.tar.gz** 
-  * mkdir gcc +  * **mkdir gcc** 
-  * cd gcc +  * **cd gcc** 
-  * tar xvf ../gcc-4.9.3.tar.gz+  * **tar xvf ../gcc-4.9.3.tar.gz**
     * (wait patiently for it all to decompress)     * (wait patiently for it all to decompress)
  
 ==== 2) Grab the latest version of ghdl via git and copy its source into gcc ==== ==== 2) Grab the latest version of ghdl via git and copy its source into gcc ====
  
-  * cd ~/Downloads +  * **cd ~/Downloads** 
-  * git clone http://git.code.sf.net/p/ghdl-updates/ghdl-updates.git ghdl-updates +  * **%%git clone http://git.code.sf.net/p/ghdl-updates/ghdl-updates.git ghdl-updates --config core.autocrlf=input%%** 
-  * cd ghdl-updates +  * **cd ghdl-updates** 
-  * ./configure --with-gcc=$HOME/Downloads/gcc/gcc-4.9.3 +  * **%%./configure --with-gcc=$HOME/Downloads/gcc/gcc-4.9.3%%** 
-  * make copy-sources+  * **make copy-sources**
  
 ==== 3) Build and install gcc+ghdl ==== ==== 3) Build and install gcc+ghdl ====
  
-  * cd ~/Downloads/gcc/ +  * **cd ~/Downloads/gcc/** 
-  * mkdir gcc-objs; cd gcc-objs +  * **mkdir gcc-objs; cd gcc-objs** 
-  * ../gcc-4.9.3/configure --prefix=/opt/gcc-4.9.3 --enable-languages=c,vhdl --disable-bootstrap --disable-lto --disable-multilib +  * **%%../gcc-4.9.3/configure --prefix=/opt/gcc-4.9.3 --enable-languages=c,vhdl --disable-bootstrap --disable-lto --disable-multilib%%** 
-  * make -j2 +  * **make -j2** 
-  * make install +    * If you get an error saying "//../../gcc-4.9.3/libcpp/system.h:142:63: error: ‘fputs_unlocked’ was not declared in this scope//": 
-  * rm /usr/bin/ghdl +      * Edit the "**gcc-4.9.3/libcpp/system.h**" file 
-  * ln -s /opt/gcc-4.9.3/bin/ghdl.exe /usr/bin/ghdl +      * Towards the start of the file, add "**#define __GNU_VISIBLE 1**" (prior to "#include <stdio.h>"
-  * As a test, try typing "ghdl --disp-config" +      * run **make -j2** again 
-  * take a look at the output, and assure that there's no text anywhere that says "ghdl: installation problem:". If not, your ghdl exe is good to go! :)+    * If you get an error saying "//: No such file or directory//", try typing: 
 +      * **export SHELLOPTS** 
 +      * **set -o igncr** 
 +      * run **make -j2** again 
 +  * **make install** 
 +  * **rm /usr/bin/ghdl** 
 +  * **ln -s /opt/gcc-4.9.3/bin/ghdl.exe /usr/bin/ghdl** 
 +  * As a test, try typing "**%%ghdl --disp-config%%**
 +  * take a look at the output, and assure that there's no text anywhere that says "//ghdl: installation problem://". If not, your ghdl exe is good to go! :)
  
 ==== 4) Take it for a spin! ==== ==== 4) Take it for a spin! ====
  
-  * cd "$HOMEPATH/My Documents/mega65" +  * **cd ~/mega65** 
-  * make simulate+  * **make simulate**
   * this churns away at quite a lot of *.vhdl files this time, no errors given   * this churns away at quite a lot of *.vhdl files this time, no errors given
-  * then you will get a "cpu_test.exe" file+  * then you will get a "**cpu_test.exe**" file
   * Then give Paul's suggestion a try, of:   * Then give Paul's suggestion a try, of:
-    * ./cpu_test.exe 2>&1 | grep gs4510 | grep MAP+    * **./cpu_test.exe 2>&1 | grep gs4510 | grep MAP** 
 + 
 +You should start seeing cpu instructions being outputted to the screen as they are executed, something like the following:
  
-You should start seeing cpu instructions being outputted to the screen as they are executed.+<code> 
 +gs4510.vhdl:915:9:@980ns:(report note): $8100 4C D3 8C  jmp  $8CD3         A:11 X:22 Y:33 Z:00 SP:BEFF P:24 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.I.. 
 +gs4510.vhdl:915:9:@1060ns:(report note): $8CD3 78        sei                A:11 X:22 Y:33 Z:00 SP:BEFF P:24 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.I.. 
 +gs4510.vhdl:915:9:@1220ns:(report note): $8CD4 A9 00     lda  #$00          A:00 X:22 Y:33 Z:00 SP:BEFF P:26 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZ. 
 +gs4510.vhdl:915:9:@1500ns:(report note): $8CD6 8D 00 BF  sta  $BF00         A:00 X:22 Y:33 Z:00 SP:BEFF P:26 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZ. 
 +gs4510.vhdl:915:9:@1900ns:(report note): $8CD9 4C E5 8C  jmp  $8CE5         A:00 X:22 Y:33 Z:00 SP:BEFF P:26 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZ. 
 +gs4510.vhdl:915:9:@2220ns:(report note): $8CE5 20 8E 8C  jsr  $8C8E         A:00 X:22 Y:33 Z:00 SP:BEFD P:26 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZ. 
 +gs4510.vhdl:915:9:@2300ns:(report note): $8C8E 78        sei                A:00 X:22 Y:33 Z:00 SP:BEFD P:26 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZ. 
 +gs4510.vhdl:915:9:@2380ns:(report note): $8C8F D8        cld                A:00 X:22 Y:33 Z:00 SP:BEFD P:26 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZ. 
 +gs4510.vhdl:915:9:@2460ns:(report note): $8C90 03        see                A:00 X:22 Y:33 Z:00 SP:BEFD P:26 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZ. 
 +gs4510.vhdl:915:9:@2540ns:(report note): $8C91 38        sec                A:00 X:22 Y:33 Z:00 SP:BEFD P:27 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZC 
 +gs4510.vhdl:915:9:@2860ns:(report note): $8C92 20 EC 95  jsr  $95EC         A:00 X:22 Y:33 Z:00 SP:BEFB P:27 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZC 
 +gs4510.vhdl:915:9:@3180ns:(report note): $95EC B0 06     bcs  $95F4         A:00 X:22 Y:33 Z:00 SP:BEFB P:27 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.IZC 
 +gs4510.vhdl:915:9:@3340ns:(report note): $95F4 A9 47     lda  #$47          A:47 X:22 Y:33 Z:00 SP:BEFB P:25 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.I.C 
 +gs4510.vhdl:915:9:@3620ns:(report note): $95F6 8D 2F D0  sta  $D02F         A:47 X:22 Y:33 Z:00 SP:BEFB P:25 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.I.C 
 +gs4510.vhdl:915:9:@3780ns:(report note): $95F9 A9 53     lda  #$53          A:53 X:22 Y:33 Z:00 SP:BEFB P:25 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.I.C 
 +gs4510.vhdl:915:9:@4060ns:(report note): $95FB 8D 2F D0  sta  $D02F         A:53 X:22 Y:33 Z:00 SP:BEFB P:25 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.I.C 
 +gs4510.vhdl:915:9:@4460ns:(report note): $95FE 60        rts                A:53 X:22 Y:33 Z:00 SP:BEFD P:25 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.I.C 
 +gs4510.vhdl:915:9:@4860ns:(report note): $8C95 AD 31 D0  lda  $D031         A:61 X:22 Y:33 Z:00 SP:BEFD P:25 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.I.C 
 +gs4510.vhdl:915:9:@5020ns:(report note): $8C98 09 40     ora  #$40          A:61 X:22 Y:33 Z:00 SP:BEFD P:25 $01=F5 MAPLO:4000 MAPHI:3F00   ..E-.I.C 
 +</code>
preparing_a_build_environment_in_cygwin.1467753806.txt.gz · Last modified: 2016/07/05 15:23 by gurce