finished and tested NetBSD support for i386 and amd64
This commit is contained in:
parent
447a217c34
commit
20adfc367f
42
README.md
42
README.md
|
@ -41,15 +41,15 @@ Games
|
|||
Build
|
||||
=====
|
||||
|
||||
Supported build platforms are Linux, FreeBSD and Windows (via Cygwin). Due to
|
||||
customized linker scripts, simulator support is currently limited to x86 and
|
||||
x86_64 archs. Following dependencies have to be met:
|
||||
Supported build platforms are Linux, FreeBSD, NetBSD and Windows (via Cygwin).
|
||||
Due to customized linker scripts, simulator support is currently limited to x86
|
||||
and x86_64 archs. Following dependencies have to be met:
|
||||
|
||||
Linux / FreeBSD
|
||||
---------------
|
||||
Linux / FreeBSD / NetBSD
|
||||
------------------------
|
||||
|
||||
Package names are based on Debian/Ubuntu repositories. Please adapt the names
|
||||
according to your Linux distribution (or FreeBSD for that matter).
|
||||
according to your Linux distribution (or BSD for that matter).
|
||||
|
||||
* build-essential (pulls in an ordinary gcc build tool chain for the host)
|
||||
* bc
|
||||
|
@ -60,6 +60,7 @@ according to your Linux distribution (or FreeBSD for that matter).
|
|||
* binutils-avr
|
||||
* avrdude
|
||||
* freeglut3-dev
|
||||
* bash (note to the BSD folks: bash is required for the config tool)
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
@ -90,12 +91,21 @@ Configure
|
|||
Open a (Cygwin) terminal, change to your checkout directory and type:
|
||||
> make menuconfig
|
||||
|
||||
This starts a curses based text interface for configuring certain aspects of
|
||||
your target platform. Be careful if you use an IDE like Eclipse to manage the
|
||||
build, as integrated terminal emulators tend to choke on curses generated shell
|
||||
output. Make sure that 'make menuconfig' has been run at least once in an
|
||||
ordinary terminal emulator after a fresh checkout or after issuing 'make
|
||||
mrproper'.
|
||||
In case you build on BSD, just use 'gmake' instead of 'make'. This starts an
|
||||
Ncurses based text interface for configuring certain aspects of your target
|
||||
platform. After a fresh checkout, the first thing you do is to load a profile
|
||||
with sane defaults. In the menuconfig interface, select 'Load a Default
|
||||
Configuration' and choose a preset. After hitting enter, the main menu returns
|
||||
immediately. You can either tune your configuration or just exit (choose 'Yes'
|
||||
at the confirmation dialog to save your stuff).
|
||||
|
||||
Be careful if you use an IDE like Eclipse to manage the build, as
|
||||
integrated terminal emulators tend to choke on Ncurses generated output.
|
||||
Make sure that 'make menuconfig' has been run at least once in an ordinary
|
||||
terminal emulator after a fresh checkout or after issuing 'make mrproper'.
|
||||
|
||||
Note: Always use 'make clean' after changing something in the menu, because
|
||||
subsequent builds may be broken if you don't.
|
||||
|
||||
Compile
|
||||
-------
|
||||
|
@ -103,11 +113,13 @@ Compile
|
|||
To build for the actual target platform, just type:
|
||||
> make
|
||||
|
||||
This yields an 'image.hex' file which you can flash to your AVR device.
|
||||
|
||||
If you want to test and debug your code within a GUI application, you can use
|
||||
the simulator:
|
||||
> make simulator
|
||||
|
||||
In case you build on FreeBSD, just use 'gmake' instead of 'make'.
|
||||
Again, use 'gmake' instead of 'make' on BSD.
|
||||
|
||||
You can start the simulator by typing ./borgsim(.exe)
|
||||
|
||||
|
@ -116,8 +128,8 @@ Simulator Handling
|
|||
|
||||
Please keep in mind that the simulator is NOT an emulator. All it does is
|
||||
compile the source code to a native host application so you can step through
|
||||
your C-Code. The GUI thread reads the simulated frame buffer every 40ms and
|
||||
draws its contents.
|
||||
your C-Code with an ordinary host debugger. The GUI thread reads the simulated
|
||||
frame buffer every 20ms (40ms on Windows) and draws its contents.
|
||||
|
||||
Joystick directions are simulated by the WASD keys and SPACE acts as the fire
|
||||
button. The OpenGL based simulator (Linux/FreeBSD) enables you to adjust the
|
||||
|
|
19
defaults.mk
19
defaults.mk
|
@ -43,7 +43,7 @@ ifeq ($(findstring CYGWIN,$(OSTYPE)),CYGWIN)
|
|||
ifeq ($(MACHINE),i686)
|
||||
LDFLAGS_SIM = -T ld_scripts/i386pe.x
|
||||
else
|
||||
$(error $(n)$(n)Simulator build is only supported on i386 and amd64.$(n)$(n))
|
||||
$(warning $(n)$(n)Simulator build is only supported on i386 and amd64.$(n)$(n))
|
||||
endif
|
||||
endif
|
||||
LIBS_SIM = -lgdi32 -lwinmm -lm
|
||||
|
@ -57,7 +57,7 @@ else
|
|||
ifeq ($(MACHINE),i386)
|
||||
LDFLAGS_SIM = -L/usr/local/lib -T ld_scripts/elf_i386_fbsd.x
|
||||
else
|
||||
$(error $(n)$(n)Simulator build is only supported on i386 and amd64.$(n)$(n))
|
||||
$(warning $(n)$(n)Simulator build is only supported on i386 and amd64.$(n)$(n))
|
||||
endif
|
||||
endif
|
||||
LIBS_SIM = -lglut -lpthread -lGL -lGLU -lm
|
||||
|
@ -71,7 +71,7 @@ else
|
|||
ifeq ($(MACHINE),i386)
|
||||
LDFLAGS_SIM = -L/usr/pkg/lib -L/usr/X11R7/lib -T ld_scripts/elf_i386_nbsd.x -Wl,-R/usr/pkg/lib,-R/usr/X11R7/lib
|
||||
else
|
||||
$(error $(n)$(n)Simulator build is only supported on i386 and amd64.$(n)$(n))
|
||||
$(warning $(n)$(n)Simulator build is only supported on i386 and amd64.$(n)$(n))
|
||||
endif
|
||||
endif
|
||||
LIBS_SIM = -lglut -lpthread -lGL -lGLU -lm
|
||||
|
@ -84,22 +84,21 @@ else
|
|||
ifeq ($(MACHINE),i686)
|
||||
LDFLAGS_SIM = -T ld_scripts/elf_i386.x
|
||||
else
|
||||
$(error $(n)$(n)Simulator build is only supported on i386 and amd64.$(n)$(n))
|
||||
$(warning $(n)$(n)Simulator build is only supported on i386 and amd64.$(n)$(n))
|
||||
endif
|
||||
endif
|
||||
LIBS_SIM = -lglut -lpthread -lGL -lGLU -lm
|
||||
else
|
||||
($(error $(n)$(n)Simulator build is not supported on your system.$(n)$(n)\
|
||||
($(warning $(n)$(n)Simulator build is not supported on your system.$(n)$(n)\
|
||||
Currently supported platforms:$(n) \
|
||||
Linux on x86 and amd64$(n) \
|
||||
FreeBSD on x86 and amd64$(n) \
|
||||
NetBSD on x86 and amd64$(n) \
|
||||
Windows (via Cygwin) on x86 and amd64)
|
||||
Linux on i386 and amd64$(n) \
|
||||
FreeBSD on i386 and amd64$(n) \
|
||||
NetBSD on i386 and amd64$(n) \
|
||||
Windows (via Cygwin) on i386 and amd64)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
##############################################################################
|
||||
# the default target
|
||||
$(TARGET):
|
||||
|
|
|
@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386",
|
|||
"elf32-i386")
|
||||
OUTPUT_ARCH(i386)
|
||||
ENTRY(_start)
|
||||
SEARCH_DIR("=/usr/lib/i386");
|
||||
SEARCH_DIR("=/usr/lib");
|
||||
SECTIONS
|
||||
{
|
||||
/* Read-only sections, merged into text segment: */
|
||||
|
|
Loading…
Reference in New Issue