mirror of https://github.com/makarcz/vm6502.git
Add automatic detection of 32/64-bit platform on linux (makefile)
This commit is contained in:
parent
b730b0cb1a
commit
37fa527d75
19
ReadMe.txt
19
ReadMe.txt
|
@ -18,8 +18,9 @@ MOS-6502-compatible virtual computer featuring BASIC interpreter, machine code
|
||||||
monitor, input/output device emulation etc.
|
monitor, input/output device emulation etc.
|
||||||
Main UI of the program works in DOS/shell console.
|
Main UI of the program works in DOS/shell console.
|
||||||
Graphics display emulation requires SDL2.
|
Graphics display emulation requires SDL2.
|
||||||
Makefile are included to build under Windows 32/64 (mingw compiler required)
|
The best way is to download source code of SDL2 and build it.
|
||||||
and under Linux Ubuntu or Ubuntu based distro.
|
Makefile-s are included to build under Windows 32/64 (mingw compiler required)
|
||||||
|
and under Linux Ubuntu or Ubuntu based distro (GNU make).
|
||||||
SDL2 library must be on your execution path in order to run program.
|
SDL2 library must be on your execution path in order to run program.
|
||||||
E.g.:
|
E.g.:
|
||||||
set PATH=C:\src\SDL\lib\x64;%PATH%
|
set PATH=C:\src\SDL\lib\x64;%PATH%
|
||||||
|
@ -28,6 +29,7 @@ To build under Windows 32/64:
|
||||||
|
|
||||||
* Install MINGW64 under C:\mingw-w64\x86_64-5.3.0 folder.
|
* Install MINGW64 under C:\mingw-w64\x86_64-5.3.0 folder.
|
||||||
* Run mingw terminal.
|
* Run mingw terminal.
|
||||||
|
* Build SDL2 library.
|
||||||
* Change current directory to that of this project.
|
* Change current directory to that of this project.
|
||||||
* Set environment variable SDLDIR. (E.g.: set SDLDIR=C:\src\SDL)
|
* Set environment variable SDLDIR. (E.g.: set SDLDIR=C:\src\SDL)
|
||||||
* Run: makeming.bat
|
* Run: makeming.bat
|
||||||
|
@ -35,9 +37,20 @@ To build under Windows 32/64:
|
||||||
To build under Linux:
|
To build under Linux:
|
||||||
|
|
||||||
* Make sure C++11 compliant version of GCC compiler is installed.
|
* Make sure C++11 compliant version of GCC compiler is installed.
|
||||||
|
NOTE: Under older distros, e.g.: Ubuntu Server 12.04, the newest c++
|
||||||
|
compiler installed may not be modern enough. Follow instructions
|
||||||
|
for your distro to install compatible c++ compiler.
|
||||||
|
E.g.:
|
||||||
|
https://gist.github.com/application2000/73fd6f4bf1be6600a2cf9f56315a2d91
|
||||||
|
* Build SDL2 library (make, make install) or download C/C++ headers and
|
||||||
|
install SDL2 from binary installation package.
|
||||||
* Change current directory to that of this project.
|
* Change current directory to that of this project.
|
||||||
* Set environment variable SDLDIR.
|
* Set environment variable SDLDIR. Your C/C++ headers for SDL2 should exist
|
||||||
|
in $SDLDIR/include folder.
|
||||||
* Run: make clean all
|
* Run: make clean all
|
||||||
|
NOTE: To run the emulator under Linux, it may be necessary to set env.
|
||||||
|
variable LD_LIBRARY_PATH, e.g.:
|
||||||
|
export LD_LIBRARY_PATH=/usr/local/lib
|
||||||
|
|
||||||
Program passed following tests:
|
Program passed following tests:
|
||||||
|
|
||||||
|
|
25
makefile
25
makefile
|
@ -1,4 +1,4 @@
|
||||||
# Project: MKBasic
|
# Project: VM65
|
||||||
|
|
||||||
SDLBASE = $(SDLDIR)
|
SDLBASE = $(SDLDIR)
|
||||||
SDLINCS = -I"$(SDLBASE)/include"
|
SDLINCS = -I"$(SDLBASE)/include"
|
||||||
|
@ -8,13 +8,27 @@ OBJ = main.o VMachine.o MKCpu.o Memory.o Display.o GraphDisp.o MemMapDev.o
|
||||||
LINKOBJ = main.o VMachine.o MKCpu.o Memory.o Display.o GraphDisp.o MemMapDev.o MKGenException.o ConsoleIO.o MassStorage.o
|
LINKOBJ = main.o VMachine.o MKCpu.o Memory.o Display.o GraphDisp.o MemMapDev.o MKGenException.o ConsoleIO.o MassStorage.o
|
||||||
BIN = vm65
|
BIN = vm65
|
||||||
SDLLIBS = -L/usr/local/lib -lSDL2main -lSDL2
|
SDLLIBS = -L/usr/local/lib -lSDL2main -lSDL2
|
||||||
LIBS = -static-libgcc -m32 -g3 -ltermcap -lncurses
|
|
||||||
CLIBS = -static-libgcc -m32 -g3
|
|
||||||
INCS =
|
INCS =
|
||||||
CXXINCS =
|
CXXINCS =
|
||||||
CXXFLAGS = $(CXXINCS) -m32 -std=c++0x -Wall -pedantic -g3 -fpermissive
|
ifeq ($(SDLBASE),)
|
||||||
|
$(error ***** SDLDIR not set)
|
||||||
|
endif
|
||||||
|
$(eval $(export HOSTTYPE = $(arch)))
|
||||||
|
$(info ***** SDLDIR = $(SDLDIR))
|
||||||
|
$(info ***** HOSTTYPE = $(HOSTTYPE))
|
||||||
|
ifeq ($(HOSTTYPE),x86_64)
|
||||||
|
$(info ***** 64-bit)
|
||||||
|
LIBS = -static-libgcc -g3 -ltermcap -lncurses -lpthread
|
||||||
|
CLIBS = -static-libgcc -g3
|
||||||
|
CXXFLAGS = $(CXXINCS) -std=c++11 -pthread -Wall -pedantic -g3 -fpermissive
|
||||||
|
else
|
||||||
|
$(info ***** 32-bit)
|
||||||
|
LIBS = -static-libgcc -m32 -g3 -ltermcap -lncurses
|
||||||
|
CLIBS = -static-libgcc -m32 -g3
|
||||||
|
CXXFLAGS = $(CXXINCS) -m32 -std=c++11 -pthread -Wall -pedantic -g3 -fpermissive
|
||||||
|
endif
|
||||||
#CFLAGS = $(INCS) -m32 -std=c++0x -Wall -pedantic -g3
|
#CFLAGS = $(INCS) -m32 -std=c++0x -Wall -pedantic -g3
|
||||||
CFLAGS = $(INCS) -m32 -Wall -pedantic -g3
|
CFLAGS = $(INCS) -Wall -pedantic -g3
|
||||||
RM = rm -f
|
RM = rm -f
|
||||||
|
|
||||||
.PHONY: all all-before all-after clean clean-custom
|
.PHONY: all all-before all-after clean clean-custom
|
||||||
|
@ -32,7 +46,6 @@ main.o: main.cpp
|
||||||
|
|
||||||
VMachine.o: VMachine.cpp
|
VMachine.o: VMachine.cpp
|
||||||
$(CPP) -c VMachine.cpp -o VMachine.o $(CXXFLAGS) $(SDLINCS)
|
$(CPP) -c VMachine.cpp -o VMachine.o $(CXXFLAGS) $(SDLINCS)
|
||||||
|
|
||||||
MKBasic.o: MKBasic.cpp
|
MKBasic.o: MKBasic.cpp
|
||||||
$(CPP) -c MKBasic.cpp -o MKBasic.o $(CXXFLAGS)
|
$(CPP) -c MKBasic.cpp -o MKBasic.o $(CXXFLAGS)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue