ChrisOS
/ Referência de fonte: chrisvm/Makefile
Referência de fonte: chrisvm/Makefile
Neste capítulo
Registro determinístico da fonte. O conteúdo completo do arquivo é reproduzido abaixo; esta página não substitui a interpretação arquitetural dos capítulos autorais.
Identidade do arquivo
Campo
Valor
Path
chrisvm/Makefile
Lines
67
Bytes
1985
SHA-256
0add3923d2f414ef8b36dbde56d592c5205a15245628ef9f07fd432afc7cb134
ChrisOS revision
e05a17fd76333114a3fb5c2452f38ca747d4ac56
Dependências sintáticas detectadas
Linha
Include
—
Nenhum include de preprocessor detectado.
Símbolos detectados
Linha
Símbolo
—
Nenhuma definição de função no formato C detectada pelo scanner.
Fonte completa
O bloco seguinte é o arquivo textual integral na revisão indicada. Não há elisão, abreviação ou paráfrase.
CC := gcc
CFLAGS := -std=c11 -Wall -Wextra -Werror -g -I.
BUILD := ../build/chrisvm
SRCS := \
cpu/common/state.c \
cpu/common/cpuid.c \
cpu/common/exceptions.c \
cpu/emulator/flags.c \
cpu/emulator/decode.c \
cpu/emulator/operands.c \
cpu/emulator/execute.c \
cpu/emulator/mmu.c \
cpu/emulator/chriscpu.c \
cpu/hv/chrishv.c \
buses/io.c \
buses/mmio.c \
devices/serial/serial.c \
devices/fb/fb.c \
machine/machine.c \
machine/boot.c \
machine/config.c \
debug/trace.c
OBJS := $(addprefix $(BUILD)/, $(SRCS:.c=.o))
.PHONY: all test clean
all: $(BUILD)/chrisvm $(BUILD)/arith.elf $(BUILD)/splash.elf
SDL_CFLAGS := $(shell sdl2-config --cflags 2>/dev/null)
SDL_LIBS := $(shell sdl2-config --libs 2>/dev/null)
ifneq ($(SDL_LIBS),)
CFLAGS += $(SDL_CFLAGS) -DCHRIS_HAVE_SDL
endif
$(BUILD)/chrisvm: $(OBJS) frontend/main.c frontend/view.c
@mkdir -p $(BUILD)
$(CC) $(CFLAGS) -o $@ frontend/main.c frontend/view.c $(OBJS) $(SDL_LIBS)
$(BUILD)/%.o: %.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c $< -o $@
$(BUILD)/arith.elf: guests/arith.asm guests/link.ld
@mkdir -p $(BUILD)
nasm -f elf64 -o $(BUILD)/arith.o guests/arith.asm
ld -nostdlib -T guests/link.ld -o $@ $(BUILD)/arith.o
$(BUILD)/splash.elf: guests/splash.asm guests/link.ld
@mkdir -p $(BUILD)
nasm -f elf64 -o $(BUILD)/splash.o guests/splash.asm
ld -nostdlib -T guests/link.ld -o $@ $(BUILD)/splash.o
$(BUILD)/test_chrisvm: $(OBJS) tests/test_chrisvm.c $(BUILD)/arith.elf $(BUILD)/splash.elf
$(CC) $(CFLAGS) -DCHRIS_GUEST=\"$(BUILD)/arith.elf\" -DCHRIS_SPLASH=\"$(BUILD)/splash.elf\" -o $@ tests/test_chrisvm.c $(OBJS)
test: $(BUILD)/test_chrisvm $(BUILD)/chrisvm $(BUILD)/arith.elf $(BUILD)/splash.elf
$(BUILD)/test_chrisvm
$(BUILD)/chrisvm --headless $(BUILD)/arith.elf > $(BUILD)/arith.out
grep -q '^OK$$' $(BUILD)/arith.out
$(BUILD)/chrisvm --headless --fb-dump=$(BUILD)/splash.png $(BUILD)/splash.elf > $(BUILD)/splash.out
grep -q '^splash$$' $(BUILD)/splash.out
clean:
rm -rf $(BUILD)
Papel deste registro
O atlas garante rastreabilidade arquivo-a-arquivo. Responsabilidade, invariantes, ownership, concorrência, segurança, desempenho e interação entre subsistemas pertencem aos capítulos autorais e devem citar este arquivo quando aplicável.
Registro do documento
ID: source-0add3923d2f414ef
Source revisado: e05a17fd7633
Class: generated-source-reference