ZalupaCalc2/Makefile
2026-07-19 14:41:16 +03:00

45 lines
1 KiB
Makefile

# Настройки
CC = gcc
AS = nasm
LD = ld
# Добавь эти флаги в CFLAGS:
CFLAGS = -m32 -ffreestanding -O2 -Wall -Wextra \
-fno-stack-protector -fno-exceptions \
-fno-pie -fno-stack-protector \
-fno-asynchronous-unwind-tables \
-mno-sse -mno-sse2 -mno-sse3 -mno-3dnow -mno-mmx \
-I./src
ASFLAGS = -f elf32
LDFLAGS = -m elf_i386 -T linker.ld -nostdlib
# Файлы
SOURCES = $(wildcard src/*.c)
ASM_SOURCES = $(wildcard src/*.asm)
OBJECTS = src/boot.o $(SOURCES:.c=.o) $(ASM_SOURCES:.asm=.o)
TARGET = kernel.bin
all: $(TARGET) iso
# Сборка ядра
$(TARGET): $(OBJECTS)
$(LD) $(LDFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
%.o: %.asm
$(AS) $(ASFLAGS) $< -o $@
# Сборка ISO
iso: $(TARGET)
mkdir -p iso/boot/
cp $(TARGET) iso/boot/
grub-mkrescue -o zalupa.iso iso/
run: iso
qemu-system-i386 -vga std -cdrom zalupa.iso -serial stdio -monitor none #-d int,cpu_reset -no-reboot -no-shutdown
clean:
rm -f src/*.o $(TARGET) zalupa.iso
rm -rf iso/boot/$(TARGET)