diff options
| author | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-07-17 11:30:07 +0800 |
|---|---|---|
| committer | John Wilbert M. Villamor <lameguy64@gmail.com> | 2019-07-17 11:30:07 +0800 |
| commit | 0d4345a9bf2623df079c50a3bc73cbb7deca1176 (patch) | |
| tree | 6cda70b844f39fc2d65a806b91a6010066433b56 /examples | |
| parent | b956c5391b955e793a4d54572aa58872b4c66c30 (diff) | |
| download | psn00bsdk-0d4345a9bf2623df079c50a3bc73cbb7deca1176.tar.gz | |
Added C++ support, updated build instructions and makefiles, consolidated libc and libgcc (during build process), libraries now v0.12b and more
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/balls/main.c | 2 | ||||
| -rw-r--r-- | examples/balls/makefile | 27 | ||||
| -rw-r--r-- | examples/gte/makefile | 2 | ||||
| -rw-r--r-- | examples/n00bdemo/makefile | 2 | ||||
| -rw-r--r-- | examples/sdk-common.mk | 30 |
5 files changed, 46 insertions, 17 deletions
diff --git a/examples/balls/main.c b/examples/balls/main.c index ba6a391..1be49e0 100644 --- a/examples/balls/main.c +++ b/examples/balls/main.c @@ -22,7 +22,7 @@ #include "ball16c.h" -#define MAX_BALLS 384 +#define MAX_BALLS 1024 #define OT_LEN 8 diff --git a/examples/balls/makefile b/examples/balls/makefile index b5c8d91..e0f6bc3 100644 --- a/examples/balls/makefile +++ b/examples/balls/makefile @@ -1,23 +1,40 @@ include ../sdk-common.mk +# Project target name TARGET = balls.elf +# Searches for C, C++ and S (assembler) files in local directory CFILES = $(notdir $(wildcard *.c)) CPPFILES = $(notdir $(wildcard *.cpp)) AFILES = $(notdir $(wildcard *.s)) -OFILES = $(addprefix build/,$(CFILES:.c=.o) $(CPPFILES:.cpp=.o) $(AFILES:.s=.o)) +# Determine object files +OFILES = $(addprefix build/,$(CFILES:.c=.o)) \ + $(addprefix build/,$(CPPFILES:.cpp=.o)) \ + $(addprefix build/,$(AFILES:.s=.o)) +# Project specific include and library directories +# (use -I for include dirs, -L for library dirs) INCLUDE += LIBDIRS += -LIBS = -lc -lpsxetc -lpsxgpu -lpsxgte -lpsxspu -lpsxapi -lgcc +# Libraries to link +LIBS = -lpsxetc -lpsxgpu -lpsxgte -lpsxspu -lpsxapi -lc +# C compiler flags CFLAGS = -g -O2 -fno-builtin -fdata-sections -ffunction-sections + +# C++ compiler flags CPPFLAGS = $(CFLAGS) -fno-exceptions + +# Assembler flags AFLAGS = -g -msoft-float -LDFLAGS = -g -Ttext=0x80010000 -gc-sections +# Linker flags +LDFLAGS = -g -Ttext=0x80010000 -gc-sections \ + -T $(GCC_BASE)/mipsel-unknown-elf/lib/ldscripts/elf32elmip.x + +# Toolchain programs CC = $(PREFIX)gcc CXX = $(PREFIX)g++ AS = $(PREFIX)as @@ -31,6 +48,10 @@ build/%.o: %.c @mkdir -p $(dir $@) $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@ +build/%.o: %.cpp + @mkdir -p $(dir $@) + $(CXX) $(AFLAGS) $(INCLUDE) -c $< -o $@ + build/%.o: %.s @mkdir -p $(dir $@) $(CC) $(AFLAGS) $(INCLUDE) -c $< -o $@ diff --git a/examples/gte/makefile b/examples/gte/makefile index 763b3d8..89b27d3 100644 --- a/examples/gte/makefile +++ b/examples/gte/makefile @@ -16,7 +16,7 @@ LIBS = -lc -lpsxetc -lpsxgpu -lpsxgte -lpsxspu -lpsxapi -lgcc CFLAGS = -g -O2 -fno-builtin -fdata-sections -ffunction-sections CPPFLAGS = $(CFLAGS) -fno-exceptions AFLAGS = -g -msoft-float -LDFLAGS = -g -Ttext=0x80010000 -gc-sections +LDFLAGS = -g -Ttext=0x80010000 -gc-sections -T $(GCC_BASE)/mipsel-unknown-elf/lib/ldscripts/elf32elmip.x CC = $(PREFIX)gcc CXX = $(PREFIX)g++ diff --git a/examples/n00bdemo/makefile b/examples/n00bdemo/makefile index a87f299..8159a22 100644 --- a/examples/n00bdemo/makefile +++ b/examples/n00bdemo/makefile @@ -15,7 +15,7 @@ LIBS = -llzp -lc -lpsxetc -lpsxgpu -lpsxgte -lpsxspu -lpsxapi -lgcc CFLAGS = -g -O2 -fno-builtin -fdata-sections -ffunction-sections CPPFLAGS = $(CFLAGS) -fno-exceptions AFLAGS = -g -msoft-float -LDFLAGS = -g -Ttext=0x80010000 -gc-sections +LDFLAGS = -g -Ttext=0x80010000 -gc-sections -T $(GCC_BASE)/mipsel-unknown-elf/lib/ldscripts/elf32elmip.x CC = $(PREFIX)gcc CXX = $(PREFIX)g++ diff --git a/examples/sdk-common.mk b/examples/sdk-common.mk index 8a92dbf..0d97555 100644 --- a/examples/sdk-common.mk +++ b/examples/sdk-common.mk @@ -1,19 +1,27 @@ # Adjustable common makefile values for PSn00bSDK example programs. -# You may need to modify these values to correspond to your toolchain setup. +# You may need to modify these values to match with your toolchain setup. -# Toolchain prefix. Can include an absolute path to the toolchain executables. +# Toolchain prefix PREFIX = mipsel-unknown-elf- -# Include directories. +# Include directories INCLUDE = -I../../libpsn00b/include -# Library directories. Last entry must point to a directory containing libgcc. +# Library directories, last entry must point toolchain libraries LIBDIRS = -L../../libpsn00b -# Directory path for toolchain's libraries (you may need to change this) -ifeq "$(OS)" "Windows_NT" -# For Windows -LIBDIRS += -L/c/psn00bsdk/lib -else -# For Linux/BSDs -LIBDIRS += -L/usr/local/mipsel-unknown-elf/lib/gcc/mipsel-unknown-elf/6.3.0 + + +GCC_VERSION = 7.4.0 + +ifeq "$(OS)" "Windows_NT" # For Windows + +GCC_BASE = /c/mipsel-unknown-elf + +else # For Linux/BSDs + +GCC_BASE = /usr/local/mipsel-unknown-elf + endif + +LIBDIRS += -L$(GCC_BASE)/lib/gcc/mipsel-unknown-elf/$(GCC_VERSION) +INCLUDE += -I$(GCC_BASE)/lib/gcc/mipsel-unknown-elf/$(GCC_VERSION)/include |
