mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-08 15:30:14 +00:00
New relocation-generating program (#1016)
* Update makefiles * git subrepo clone git@github.com:EllipticEllipsis/fado.git tools/fado subrepo: subdir: "tools/fado" merged: "46c4d751a" upstream: origin: "git@github.com:EllipticEllipsis/fado.git" branch: "master" commit: "46c4d751a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/fado subrepo: subdir: "tools/fado" merged: "88114ebce" upstream: origin: "git@github.com:EllipticEllipsis/fado.git" branch: "master" commit: "88114ebce" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * A few ideas for computing dependencies * Remove reserved identifiers from spec.h and util.h and add required headers * Fix a couple more headers * Program for reloc prerequisites * git subrepo pull tools/fado subrepo: subdir: "tools/fado" merged: "36a905f72" upstream: origin: "git@github.com:EllipticEllipsis/fado.git" branch: "master" commit: "36a905f72" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * Update makefile to make dependency files and use overlay's name * git subrepo pull tools/fado subrepo: subdir: "tools/fado" merged: "43c339a59" upstream: origin: "git@github.com:EllipticEllipsis/fado.git" branch: "master" commit: "43c339a59" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * Change awk to grep, delete ZAPD files, gitignore elf * Delete all the cfg files * Fix memory leaks * Rename and add coloured errors * Makefile tweaks - preprocess spec before grep - split order prerequisites via phony target to reduce dependency edges - remove `resources` target - remove separate overlays targets - use `$(SPEC)` throughout - change to using filenames of relocs for overlay names via `$*` - Rearrange targets to better reflect their categories * Update gitignore * Review * Add a check for the reloc file name * get_segment_by_name * get_stmt_id_by_stmt_name * Cleaning up * algorithm change * function rename * Fix typos Co-authored-by: angie <angheloalf95@gmail.com>
This commit is contained in:
parent
cf048f849a
commit
eadc477187
511 changed files with 3947 additions and 1104 deletions
69
tools/fado/Makefile
Normal file
69
tools/fado/Makefile
Normal file
|
@ -0,0 +1,69 @@
|
|||
DEBUG ?= 0
|
||||
LLD ?= 0
|
||||
ASAN ?= 0
|
||||
|
||||
ELF := fado.elf
|
||||
|
||||
CC := $(shell ./find_program.sh gcc clang clang-[0-9][0-9] clang-[0-9])
|
||||
LD := $(shell ./find_program.sh ld ld.lld ld.lld-*)
|
||||
INC := -I include -I lib
|
||||
WARNINGS := -Wall -Wextra -Wpedantic -Wshadow -Werror=implicit-function-declaration -Wvla -Wno-unused-function
|
||||
CFLAGS := -std=c11
|
||||
LDFLAGS :=
|
||||
|
||||
ifeq ($(DEBUG),0)
|
||||
OPTFLAGS := -O2
|
||||
CFLAGS += -Werror
|
||||
else
|
||||
OPTFLAGS := -O0 -g3 -DDEBUG_ON
|
||||
endif
|
||||
|
||||
ifneq ($(ASAN),0)
|
||||
CFLAGS += -fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined
|
||||
endif
|
||||
|
||||
ifneq ($(LLD),0)
|
||||
LDFLAGS += -fuse-ld=lld
|
||||
else
|
||||
ifneq ($(LD),ld)
|
||||
LDFLAGS += -fuse-ld=lld
|
||||
endif
|
||||
endif
|
||||
|
||||
# GCC is too stupid to be trusted with these warnings
|
||||
ifeq ($(CC),gcc)
|
||||
WARNINGS += -Wno-implicit-fallthrough -Wno-maybe-uninitialized
|
||||
endif
|
||||
|
||||
SRC_DIRS := $(shell find src -type d)
|
||||
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))
|
||||
H_FILES := $(foreach dir,$(INC),$(wildcard $(dir)/*.h))
|
||||
O_FILES := $(foreach f,$(C_FILES:.c=.o),build/$f)
|
||||
|
||||
LIB_DIRS := $(shell find lib -type d)
|
||||
# exclude test file since we don't want it
|
||||
C_LIB_FILES := $(filter-out lib/vc_vector/vc_vector_test.c, $(foreach dir,$(LIB_DIRS),$(wildcard $(dir)/*.c)))
|
||||
O_LIB_FILES := $(foreach f,$(C_LIB_FILES:.c=.o),build/$f)
|
||||
|
||||
# Main targets
|
||||
all: $(ELF)
|
||||
|
||||
clean:
|
||||
$(RM) -r build $(ELF)
|
||||
|
||||
format:
|
||||
clang-format-11 -i $(C_FILES) $(H_FILES)
|
||||
|
||||
.PHONY: all clean format
|
||||
|
||||
# create build directories
|
||||
$(shell mkdir -p $(foreach dir,$(SRC_DIRS),build/$(dir)) $(foreach dir,$(LIB_DIRS),build/$(dir)))
|
||||
|
||||
$(ELF): $(O_FILES) $(O_LIB_FILES)
|
||||
$(CC) $(INC) $(WARNINGS) $(CFLAGS) $(OPTFLAGS) $(LDFLAGS) -o $@ $^
|
||||
|
||||
build/%.o: %.c $(H_FILES)
|
||||
$(CC) -c $(INC) $(WARNINGS) $(CFLAGS) $(OPTFLAGS) -o $@ $<
|
||||
|
||||
build/lib/%.o: lib/%.c
|
||||
$(CC) -c $(INC) $(WARNINGS) $(CFLAGS) $(OPTFLAGS) -o $@ $<
|
Loading…
Add table
Add a link
Reference in a new issue