aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-05-23 13:11:01 +0200
committerBad Diode <bd@badd10de.dev>2021-05-23 13:11:01 +0200
commitd1cef11270cdad06ac82996ad8396715b84e33b7 (patch)
tree56ae3cbd082800755b7537602d80847b760c9b3b /Makefile
parent381df7332afd38e6f6d193bc673447d7342764b0 (diff)
downloaduxngba-d1cef11270cdad06ac82996ad8396715b84e33b7.tar.gz
uxngba-d1cef11270cdad06ac82996ad8396715b84e33b7.zip
Small makefile cleanup
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile46
1 files changed, 24 insertions, 22 deletions
diff --git a/Makefile b/Makefile
index 55c4ade..a16b658 100644
--- a/Makefile
+++ b/Makefile
@@ -2,28 +2,30 @@
2.SUFFIXES: 2.SUFFIXES:
3 3
4# Path to the development kit (devkitARM) and the GBA library. 4# Path to the development kit (devkitARM) and the GBA library.
5DEVKITPRO := /opt/devkitpro 5DEVKITPRO := /opt/devkitpro
6DEVKITARM := /opt/devkitpro/devkitARM 6DEVKITBIN := $(DEVKITPRO)/devkitARM/bin
7DEVKITBIN := $(DEVKITARM)/bin 7DEVKITTOOLS := $(DEVKITPRO)/tools/bin
8LIBGBA_DIR := $(DEVKITPRO)/libgba 8LIBGBA_DIR := $(DEVKITPRO)/libgba
9LIBGBA_SRC := /opt/devkitpro/libgba/include/ 9LIBGBA_SRC := $(DEVKITPRO)/libgba/include/
10LIBGBA := $(LIBGBA_DIR)/lib/libgba.a 10LIBGBA := $(LIBGBA_DIR)/lib/libgba.a
11LIBGBA += $(LIBGBA_DIR)/lib/libfat.a 11LIBGBA += $(LIBGBA_DIR)/lib/libfat.a
12LIBGBA += $(LIBGBA_DIR)/lib/libmm.a 12LIBGBA += $(LIBGBA_DIR)/lib/libmm.a
13 13
14# Source code location and files to watch for changes. 14# Source code location and files to watch for changes.
15SRC_DIR := src 15SRC_DIR := src
16SRC_MAIN := $(SRC_DIR)/main.c 16BUILD_DIR := build
17ROM := $(SRC_DIR)/uxn/roms/boot.c 17SRC_MAIN := $(SRC_DIR)/main.c
18ROM_SRC := $(SRC_DIR)/uxn/roms/dvd.rom 18ROM := $(BUILD_DIR)/rom.c
19ASM_FILES := $(wildcard $(SRC_DIR)/*.s) 19ROM_SRC := $(SRC_DIR)/uxn/roms/dvd.rom
20WATCH_SRC := $(wildcard $(SRC_DIR)/*.c) 20ASM_FILES := $(wildcard $(SRC_DIR)/*.s)
21WATCH_SRC += $(wildcard $(SRC_DIR)/*.h) 21WATCH_SRC := $(shell find $(SRC_DIRS) -name *.c -or -name *.s -or -name *.h)
22WATCH_SRC += $(wildcard $(SRC_DIR)/*.s) 22INC_DIRS := $(shell find $(SRC_DIR) -type d)
23INC_DIRS += $(BUILD_DIR)
24INC_FLAGS := $(addprefix -I,$(INC_DIRS))
25INC_FLAGS += -I$(LIBGBA_SRC)
23 26
24# Output library names and executables. 27# Output library names and executables.
25TARGET := uxngba 28TARGET := uxngba
26BUILD_DIR := build
27ELF := $(BUILD_DIR)/$(TARGET).elf 29ELF := $(BUILD_DIR)/$(TARGET).elf
28BIN := $(BUILD_DIR)/$(TARGET).gba 30BIN := $(BUILD_DIR)/$(TARGET).gba
29 31
@@ -32,9 +34,10 @@ CC := $(DEVKITBIN)/arm-none-eabi-gcc
32OBJCOPY := $(DEVKITBIN)/arm-none-eabi-objcopy 34OBJCOPY := $(DEVKITBIN)/arm-none-eabi-objcopy
33ARCH := -mthumb -mthumb-interwork 35ARCH := -mthumb -mthumb-interwork
34SPECS := -specs=gba.specs 36SPECS := -specs=gba.specs
35CFLAGS := -Wall -Wextra -pedantic -fno-strict-aliasing -Wno-incompatible-pointer-types 37CFLAGS := -Wall -Wextra -pedantic -Wno-incompatible-pointer-types
38CFLAGS += -fno-strict-aliasing
36CFLAGS += -mcpu=arm7tdmi -mtune=arm7tdmi $(ARCH) 39CFLAGS += -mcpu=arm7tdmi -mtune=arm7tdmi $(ARCH)
37CFLAGS += -I$(LIBGBA_SRC) 40CFLAGS += $(INC_FLAGS)
38LDFLAGS := $(ARCH) $(SPECS) 41LDFLAGS := $(ARCH) $(SPECS)
39LDLIBS := $(LIBGBA) 42LDLIBS := $(LIBGBA)
40RELEASE_CFLAGS := -DNDEBUG -O2 43RELEASE_CFLAGS := -DNDEBUG -O2
@@ -55,13 +58,12 @@ endif
55main: tools $(BUILD_DIR) $(ROM) $(BIN) 58main: tools $(BUILD_DIR) $(ROM) $(BIN)
56 59
57$(ROM): 60$(ROM):
58 ./tools/bin2carr/build/bin2carr -n uxn_rom -e u16 -o $(ROM) \ 61 ./tools/bin2carr/build/bin2carr -n uxn_rom -e u16 -o $(ROM) $(ROM_SRC)
59 $(ROM_SRC)
60 62
61# Strip and fix header to create final .gba file. 63# Strip and fix header to create final .gba file.
62$(BIN): $(ELF) 64$(BIN): $(ELF)
63 $(OBJCOPY) -v -O binary $(ELF) $(BIN) 65 $(OBJCOPY) -v -O binary $(ELF) $(BIN)
64 gbafix $(BIN) 66 $(DEVKITTOOLS)/gbafix $(BIN)
65 67
66# Link files. 68# Link files.
67$(ELF): $(SRC_MAIN) $(WATCH_SRC) 69$(ELF): $(SRC_MAIN) $(WATCH_SRC)