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
Last revisionBoth sides next revision
preparing_a_build_environment_in_cygwin [2016/07/06 03:24]
– more details on pre-reqs, ophis and retrieving mega65 code gurce
preparing_a_build_environment_in_cygwin [2021/06/19 00:34]
– [3) Build and install gcc+ghdl] - work around a windows EOL issue in cygwin gurce
Line 71: Line 71:
   * **gcc-g++**   * **gcc-g++**
   * **gcc-ada**   * **gcc-ada**
 +  * **gdb**
   * **gmp-devel**   * **gmp-devel**
   * **mpfr-devel**   * **mpfr-devel**
Line 91: Line 92:
  
   * **cd ~** (ie, go to your home folder)   * **cd ~** (ie, go to your home folder)
-  * **git clone https://github.com/gardners/c65gs.git mega65**+  * **git clone https://github.com/MEGA65/mega65-core.git**
  
-The source-code will then be placed in the "~/mega65" path.+The source-code will then be placed in the "~/mega65-core" path.
  
 ===== Installing Ophis ===== ===== Installing Ophis =====
Line 118: Line 119:
 ==== 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.+You should start seeing cpu instructions being outputted to the screen as they are executed, something like the following: 
 + 
 +<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.txt · Last modified: 2021/06/19 00:35 by gurce