aboutsummaryrefslogtreecommitdiff
path: root/examples/beginner/cppdemo/makefile
diff options
context:
space:
mode:
authorJohn Wilbert M. Villamor <lameguy64@gmail.com>2021-01-05 10:58:04 +0800
committerJohn Wilbert M. Villamor <lameguy64@gmail.com>2021-01-05 10:58:04 +0800
commit974b17fad06cef4b304645b8a9dd92ac91ebb749 (patch)
tree1db281d9cac9bb4e80ae17dc731f1a3241c787f6 /examples/beginner/cppdemo/makefile
parentf048f87b445942f961d225348e2af1113e544d23 (diff)
downloadpsn00bsdk-974b17fad06cef4b304645b8a9dd92ac91ebb749.tar.gz
Added updated library reference, added struct names in psxgpu.h, defined GTE squareroot functions and added C++ demo example.
Diffstat (limited to 'examples/beginner/cppdemo/makefile')
-rw-r--r--examples/beginner/cppdemo/makefile54
1 files changed, 54 insertions, 0 deletions
diff --git a/examples/beginner/cppdemo/makefile b/examples/beginner/cppdemo/makefile
new file mode 100644
index 0000000..6a29033
--- /dev/null
+++ b/examples/beginner/cppdemo/makefile
@@ -0,0 +1,54 @@
+include ../../examples-setup.mk
+
+# Project target name
+TARGET = cppdemo.elf
+
+# Searches for C, C++ and S (assembler) files in local directory
+CFILES = $(notdir $(wildcard *.c))
+CPPFILES = $(notdir $(wildcard *.cpp))
+AFILES = $(notdir $(wildcard *.s))
+
+# 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 +=
+
+# Libraries to link
+LIBS = -lpsxgpu -lpsxgte -lpsxspu -lpsxetc -lpsxapi -lc
+
+# C compiler flags
+CFLAGS = -g -O2 -fno-builtin -fdata-sections -ffunction-sections
+
+# C++ compiler flags
+CPPFLAGS = $(CFLAGS) -fno-builtin -fno-rtti -fno-exceptions
+
+# Assembler flags
+AFLAGS = -g -msoft-float
+
+# Linker flags
+LDFLAGS = -g -Ttext=0x80010000 -gc-sections \
+ -T $(GCC_BASE)/mipsel-unknown-elf/lib/ldscripts/elf32elmip.x
+
+all: $(OFILES)
+ $(LD) $(LDFLAGS) $(LIBDIRS) $(OFILES) $(LIBS) -o $(TARGET)
+ elf2x -q $(TARGET)
+
+build/%.o: %.c
+ @mkdir -p $(dir $@)
+ $(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
+
+build/%.o: %.cpp
+ @mkdir -p $(dir $@)
+ $(CXX) $(CPPFLAGS) $(INCLUDE) -c $< -o $@
+
+build/%.o: %.s
+ @mkdir -p $(dir $@)
+ $(CC) $(AFLAGS) $(INCLUDE) -c $< -o $@
+
+clean:
+ rm -rf build $(TARGET) $(TARGET:.elf=.exe)