From d1cef11270cdad06ac82996ad8396715b84e33b7 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Sun, 23 May 2021 13:11:01 +0200 Subject: Small makefile cleanup --- Makefile | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 55c4ade..a16b658 100644 --- a/Makefile +++ b/Makefile @@ -2,28 +2,30 @@ .SUFFIXES: # Path to the development kit (devkitARM) and the GBA library. -DEVKITPRO := /opt/devkitpro -DEVKITARM := /opt/devkitpro/devkitARM -DEVKITBIN := $(DEVKITARM)/bin -LIBGBA_DIR := $(DEVKITPRO)/libgba -LIBGBA_SRC := /opt/devkitpro/libgba/include/ -LIBGBA := $(LIBGBA_DIR)/lib/libgba.a -LIBGBA += $(LIBGBA_DIR)/lib/libfat.a -LIBGBA += $(LIBGBA_DIR)/lib/libmm.a +DEVKITPRO := /opt/devkitpro +DEVKITBIN := $(DEVKITPRO)/devkitARM/bin +DEVKITTOOLS := $(DEVKITPRO)/tools/bin +LIBGBA_DIR := $(DEVKITPRO)/libgba +LIBGBA_SRC := $(DEVKITPRO)/libgba/include/ +LIBGBA := $(LIBGBA_DIR)/lib/libgba.a +LIBGBA += $(LIBGBA_DIR)/lib/libfat.a +LIBGBA += $(LIBGBA_DIR)/lib/libmm.a # Source code location and files to watch for changes. -SRC_DIR := src -SRC_MAIN := $(SRC_DIR)/main.c -ROM := $(SRC_DIR)/uxn/roms/boot.c -ROM_SRC := $(SRC_DIR)/uxn/roms/dvd.rom -ASM_FILES := $(wildcard $(SRC_DIR)/*.s) -WATCH_SRC := $(wildcard $(SRC_DIR)/*.c) -WATCH_SRC += $(wildcard $(SRC_DIR)/*.h) -WATCH_SRC += $(wildcard $(SRC_DIR)/*.s) +SRC_DIR := src +BUILD_DIR := build +SRC_MAIN := $(SRC_DIR)/main.c +ROM := $(BUILD_DIR)/rom.c +ROM_SRC := $(SRC_DIR)/uxn/roms/dvd.rom +ASM_FILES := $(wildcard $(SRC_DIR)/*.s) +WATCH_SRC := $(shell find $(SRC_DIRS) -name *.c -or -name *.s -or -name *.h) +INC_DIRS := $(shell find $(SRC_DIR) -type d) +INC_DIRS += $(BUILD_DIR) +INC_FLAGS := $(addprefix -I,$(INC_DIRS)) +INC_FLAGS += -I$(LIBGBA_SRC) # Output library names and executables. TARGET := uxngba -BUILD_DIR := build ELF := $(BUILD_DIR)/$(TARGET).elf BIN := $(BUILD_DIR)/$(TARGET).gba @@ -32,9 +34,10 @@ CC := $(DEVKITBIN)/arm-none-eabi-gcc OBJCOPY := $(DEVKITBIN)/arm-none-eabi-objcopy ARCH := -mthumb -mthumb-interwork SPECS := -specs=gba.specs -CFLAGS := -Wall -Wextra -pedantic -fno-strict-aliasing -Wno-incompatible-pointer-types +CFLAGS := -Wall -Wextra -pedantic -Wno-incompatible-pointer-types +CFLAGS += -fno-strict-aliasing CFLAGS += -mcpu=arm7tdmi -mtune=arm7tdmi $(ARCH) -CFLAGS += -I$(LIBGBA_SRC) +CFLAGS += $(INC_FLAGS) LDFLAGS := $(ARCH) $(SPECS) LDLIBS := $(LIBGBA) RELEASE_CFLAGS := -DNDEBUG -O2 @@ -55,13 +58,12 @@ endif main: tools $(BUILD_DIR) $(ROM) $(BIN) $(ROM): - ./tools/bin2carr/build/bin2carr -n uxn_rom -e u16 -o $(ROM) \ - $(ROM_SRC) + ./tools/bin2carr/build/bin2carr -n uxn_rom -e u16 -o $(ROM) $(ROM_SRC) # Strip and fix header to create final .gba file. $(BIN): $(ELF) $(OBJCOPY) -v -O binary $(ELF) $(BIN) - gbafix $(BIN) + $(DEVKITTOOLS)/gbafix $(BIN) # Link files. $(ELF): $(SRC_MAIN) $(WATCH_SRC) -- cgit v1.2.1