add license to shell

This commit is contained in:
William Bell
2025-09-12 01:21:08 +01:00
parent 1a5abd9543
commit daa8056b7a
18 changed files with 3031 additions and 102 deletions

View File

@@ -2,46 +2,52 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
# Default FLEX tool
BINARY = bin/argon
FLEX_TOOL = flex
CFILES = external/xxhash/xxhash.c external/cwalk/src/cwalk.c external/libdye/src/dye.c external/linenoise/linenoise.c $(shell find src -name '*.c')
SRC_DIRS = src external/xxhash external/cwalk/src external/libdye/src external/linenoise
CFILES = $(shell find $(SRC_DIRS) -name '*.c' \
! -path "*/tests/*" \
! -path "*/fuzz/*" \
! -path "*/cli/*" \
! -path "*/example*") \
$(LEXER_C)
OBJDIR = build
OBJS = $(CFILES:%.c=$(OBJDIR)/%.o)
LEXER_SRC = src/lexer/lex.l
LEXER_C = src/lexer/lex.yy.c
LEXER_H = src/lexer/lex.yy.h
CFLAGS = $(ARCHFLAGS) -lm -lgc -lgmp -Wall -Wextra -Wno-unused-function -Werror=unused-result -Iexternal/cwalk/include -Iexternal/libdye/include
CFLAGS = $(ARCHFLAGS) -Wall -Wextra -Wno-unused-function -Werror=unused-result \
-Iexternal/cwalk/include -Iexternal/libdye/include
LDFLAGS = -lgc -lgmp -lm
all: $(BINARY)
# Rule to build lexer
$(LEXER_C) $(LEXER_H): $(LEXER_SRC)
$(FLEX_TOOL) --header-file=$(LEXER_H) -o $(LEXER_C) $(LEXER_SRC)
$(BINARY): $(CFILES) $(LEXER_C) $(LEXER_H)
mkdir -p bin
gcc -O3 -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS} -s
# Pattern rule for compiling .c -> .o
$(OBJDIR)/%.o: %.c $(LEXER_C) $(LEXER_H)
@mkdir -p $(dir $@)
gcc -O3 -c $< -o $@ $(CFLAGS)
native: $(CFILES) $(LEXER_C) $(LEXER_H)
mkdir -p bin
gcc -O3 -march=native -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS}
# Link final binary
$(BINARY): $(OBJS)
@mkdir -p bin
gcc -o $@ $^ $(CFLAGS) $(LDFLAGS) -s
debug: $(CFILES) $(LEXER_C) $(LEXER_H)
mkdir -p bin
gcc -g -O3 -o $(BINARY) $(CFILES) $(CFLAGS)
native: CFLAGS += -march=native
native: $(BINARY)
full-debug: $(CFILES) $(LEXER_C) $(LEXER_H)
mkdir -p bin
gcc -g -O3 -fsanitize=address -fno-omit-frame-pointer -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS}
debug: CFLAGS += -g
debug: $(BINARY)
optimised: $(CFILES) $(LEXER_C) $(LEXER_H)
mkdir -p bin
gcc -O3 -fprofile-generate -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS}
full-debug: CFLAGS += -g -fsanitize=address -fno-omit-frame-pointer
full-debug: $(BINARY)
optimised: CFLAGS += -fprofile-generate
optimised: $(BINARY)
${BINARY} rand_test.ar
gcc -O3 -fprofile-use -o $(BINARY) $(CFILES) $(CFLAGS) ${LDFLAGS}
$(MAKE) CFLAGS="$(CFLAGS:-fprofile-generate=-fprofile-use)" $(BINARY)
clean:
rm -rf build bin