# Настройки 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)