diff --git a/examples/arch-riscv64-min/.gitignore b/examples/arch-riscv64-min/.gitignore index 2262964..96302b7 100644 --- a/examples/arch-riscv64-min/.gitignore +++ b/examples/arch-riscv64-min/.gitignore @@ -1,4 +1 @@ -/build-libkernaux/* -!/build-libkernaux/.keep - /kernel.elf diff --git a/examples/arch-riscv64-min/Makefile b/examples/arch-riscv64-min/Makefile index 56e8411..6751356 100644 --- a/examples/arch-riscv64-min/Makefile +++ b/examples/arch-riscv64-min/Makefile @@ -5,10 +5,11 @@ CCPREFIX = ../../vendor/cross/bin/riscv64-elf- AS = $(CCPREFIX)as CC = $(CCPREFIX)gcc -CONFIG_LIBKERNAUX = ../../config/riscv64 +LIBKERNAUX_BUILD = ../../build/dev-cross-riscv64 +LIBKERNAUX_DEST = ../../dest/dev-cross-riscv64 + QEMU = qemu-system-riscv64 -serial stdio -display none -BUILD_LIBKERNAUX = build-libkernaux KERNEL = kernel.elf LINKERSCR = linker.ld @@ -27,15 +28,15 @@ run: $(KERNEL) $(QEMU) -machine virt -bios $< clean: - make -C $(BUILD_LIBKERNAUX) distclean || true rm -f $(KERNEL) $(OBJS) $(KERNEL): $(LINKERSCR) $(OBJS) build-libkernaux.a - $(CC) -T $(LINKERSCR) -o $@ $(OBJS) -nostdlib -lgcc -lkernaux -Wl,-L$(BUILD_LIBKERNAUX) + $(CC) -T $(LINKERSCR) -o $@ $(OBJS) -nostdlib -lgcc -lkernaux -Wl,-L$(LIBKERNAUX_DEST)/lib build-libkernaux.a: - cd $(BUILD_LIBKERNAUX) && ../$(CONFIG_LIBKERNAUX) - cd $(BUILD_LIBKERNAUX) && make libkernaux.a + cd $(LIBKERNAUX_BUILD) && ./config + cd $(LIBKERNAUX_BUILD) && make libkernaux.a + cd $(LIBKERNAUX_BUILD) && make install-data install-exec %.c.o: %.c $(CC) -c $< -o $@ $(CFLAGS) diff --git a/examples/arch-riscv64-min/build-libkernaux/.keep b/examples/arch-riscv64-min/build-libkernaux/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/examples/bootloader-multiboot2-grub/.gitignore b/examples/bootloader-multiboot2-grub/.gitignore index 30152cb..6631cd5 100644 --- a/examples/bootloader-multiboot2-grub/.gitignore +++ b/examples/bootloader-multiboot2-grub/.gitignore @@ -1,6 +1,3 @@ -/build-libkernaux/* -!/build-libkernaux/.keep - /image.iso /output.txt /rootfs/boot/kernel diff --git a/examples/bootloader-multiboot2-grub/Makefile b/examples/bootloader-multiboot2-grub/Makefile index fb7cd7b..c7c5cc0 100644 --- a/examples/bootloader-multiboot2-grub/Makefile +++ b/examples/bootloader-multiboot2-grub/Makefile @@ -5,13 +5,14 @@ CCPREFIX = ../../vendor/cross/bin/i386-elf- AS = $(CCPREFIX)as CC = $(CCPREFIX)gcc -CONFIG_LIBKERNAUX = ../../config/i386 +LIBKERNAUX_BUILD = ../../build/dev-cross-i386 +LIBKERNAUX_DEST = ../../dest/dev-cross-i386 + DIFF = diff GRUB_FILE = grub-file GRUB_MKRESCUE = grub-mkrescue QEMU = qemu-system-i386 -serial stdio -display none -BUILD_LIBKERNAUX = build-libkernaux EXPECTED = expected.txt IMAGE = image.iso LINKERSCR = linker.ld @@ -41,19 +42,19 @@ run: $(IMAGE) $(QEMU) -cdrom $< | tee $(OUTPUT) clean: - make -C $(BUILD_LIBKERNAUX) distclean || true rm -f $(OUTPUT) $(IMAGE) $(KERNEL) $(OBJS) $(IMAGE): $(GRUBCFG) $(KERNEL) $(GRUB_MKRESCUE) $(ROOTFS) -o $@ $(KERNEL): $(LINKERSCR) $(OBJS) build-libkernaux.a - $(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -lgcc -lkernaux -Wl,-L$(BUILD_LIBKERNAUX) + $(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -lgcc -lkernaux -Wl,-L$(LIBKERNAUX_DEST)/lib $(GRUB_FILE) --is-x86-multiboot2 $@ build-libkernaux.a: - cd $(BUILD_LIBKERNAUX) && ../$(CONFIG_LIBKERNAUX) - cd $(BUILD_LIBKERNAUX) && make libkernaux.a + cd $(LIBKERNAUX_BUILD) && ./config + cd $(LIBKERNAUX_BUILD) && make libkernaux.a + cd $(LIBKERNAUX_BUILD) && make install-data install-exec %.c.o: %.c $(CC) -c $< -o $@ $(CFLAGS) diff --git a/examples/bootloader-multiboot2-grub/build-libkernaux/.keep b/examples/bootloader-multiboot2-grub/build-libkernaux/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/examples/bootloader-multiboot2-limine/.gitignore b/examples/bootloader-multiboot2-limine/.gitignore index 9c867b4..e59723f 100644 --- a/examples/bootloader-multiboot2-limine/.gitignore +++ b/examples/bootloader-multiboot2-limine/.gitignore @@ -1,6 +1,3 @@ -/build-libkernaux/* -!/build-libkernaux/.keep - /image.iso /output.txt /rootfs/boot/kernel diff --git a/examples/bootloader-multiboot2-limine/Makefile b/examples/bootloader-multiboot2-limine/Makefile index b2fbea6..c0a9491 100644 --- a/examples/bootloader-multiboot2-limine/Makefile +++ b/examples/bootloader-multiboot2-limine/Makefile @@ -5,14 +5,15 @@ CCPREFIX = ../../vendor/cross/bin/i386-elf- AS = $(CCPREFIX)as CC = $(CCPREFIX)gcc -CONFIG_LIBKERNAUX = ../../config/i386 +LIBKERNAUX_BUILD = ../../build/dev-cross-i386 +LIBKERNAUX_DEST = ../../dest/dev-cross-i386 + DIFF = diff GRUB_FILE = grub-file LIMINE = ../../vendor/limine/build/bin QEMU = qemu-system-x86_64 -serial stdio -display none XORRISO = xorriso -BUILD_LIBKERNAUX = build-libkernaux EXPECTED = expected.txt IMAGE = image.iso LINKERSCR = linker.ld @@ -56,7 +57,6 @@ run: $(IMAGE) $(QEMU) -cdrom $< | tee $(OUTPUT) clean: - make -C $(BUILD_LIBKERNAUX) distclean || true rm -f $(OUTPUT) $(IMAGE) $(FULL_KERNEL) $(FULL_LIMINE_CD) $(FULL_LIMINE_ELTORITO) $(FULL_LIMINE_SYS) $(OBJS) $(IMAGE): $(FULL_KERNEL) $(FULL_LIMINE_CD) $(FULL_LIMINE_ELTORITO) $(FULL_LIMINE_SYS) @@ -64,7 +64,7 @@ $(IMAGE): $(FULL_KERNEL) $(FULL_LIMINE_CD) $(FULL_LIMINE_ELTORITO) $(FULL_LIMINE $(LIMINE_INSTALL) $@ $(FULL_KERNEL): $(LINKERSCR) $(OBJS) build-libkernaux.a - $(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -lgcc -lkernaux -Wl,-L$(BUILD_LIBKERNAUX) + $(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -lgcc -lkernaux -Wl,-L$(LIBKERNAUX_DEST)/lib $(GRUB_FILE) --is-x86-multiboot2 $@ $(FULL_LIMINE_CD): @@ -77,8 +77,9 @@ $(FULL_LIMINE_SYS): cp -f $(LIMINE_SYS) $(FULL_LIMINE_SYS) build-libkernaux.a: - cd $(BUILD_LIBKERNAUX) && ../$(CONFIG_LIBKERNAUX) - cd $(BUILD_LIBKERNAUX) && make libkernaux.a + cd $(LIBKERNAUX_BUILD) && ./config + cd $(LIBKERNAUX_BUILD) && make libkernaux.a + cd $(LIBKERNAUX_BUILD) && make install-data install-exec %.c.o: %.c $(CC) -c $< -o $@ $(CFLAGS) diff --git a/examples/bootloader-multiboot2-limine/build-libkernaux/.keep b/examples/bootloader-multiboot2-limine/build-libkernaux/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/examples/bootloader-stivale2-limine/.gitignore b/examples/bootloader-stivale2-limine/.gitignore index 9c867b4..e59723f 100644 --- a/examples/bootloader-stivale2-limine/.gitignore +++ b/examples/bootloader-stivale2-limine/.gitignore @@ -1,6 +1,3 @@ -/build-libkernaux/* -!/build-libkernaux/.keep - /image.iso /output.txt /rootfs/boot/kernel diff --git a/examples/bootloader-stivale2-limine/Makefile b/examples/bootloader-stivale2-limine/Makefile index a978663..b3ecf64 100644 --- a/examples/bootloader-stivale2-limine/Makefile +++ b/examples/bootloader-stivale2-limine/Makefile @@ -5,13 +5,14 @@ CCPREFIX = ../../vendor/cross/bin/x86_64-elf- AS = $(CCPREFIX)as CC = $(CCPREFIX)gcc -CONFIG_LIBKERNAUX = ../../config/x86_64-stivale2 +LIBKERNAUX_BUILD = ../../build/dev-cross-x86_64 +LIBKERNAUX_DEST = ../../dest/dev-cross-x86_64 + DIFF = diff LIMINE = ../../vendor/limine/build/bin QEMU = qemu-system-x86_64 -serial stdio -display none XORRISO = xorriso -BUILD_LIBKERNAUX = build-libkernaux EXPECTED = expected.txt IMAGE = image.iso LINKERSCR = linker.ld @@ -65,7 +66,6 @@ run: $(IMAGE) $(QEMU) -cdrom $< | tee $(OUTPUT) clean: - make -C $(BUILD_LIBKERNAUX) distclean || true rm -f $(OUTPUT) $(IMAGE) $(FULL_KERNEL) $(FULL_LIMINE_CD) $(FULL_LIMINE_ELTORITO) $(FULL_LIMINE_SYS) $(OBJS) $(IMAGE): $(FULL_KERNEL) $(FULL_LIMINE_CD) $(FULL_LIMINE_ELTORITO) $(FULL_LIMINE_SYS) @@ -73,7 +73,7 @@ $(IMAGE): $(FULL_KERNEL) $(FULL_LIMINE_CD) $(FULL_LIMINE_ELTORITO) $(FULL_LIMINE $(LIMINE_INSTALL) $@ $(FULL_KERNEL): $(LINKERSCR) $(OBJS) build-libkernaux.a - $(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -zmax-page-size=0x1000 -static -lgcc -lkernaux -Wl,-L$(BUILD_LIBKERNAUX) + $(CC) -T $(LINKERSCR) -o $@ $(OBJS) -ffreestanding -nostdlib -zmax-page-size=0x1000 -static -lgcc -lkernaux -Wl,-L$(LIBKERNAUX_DEST)/lib $(FULL_LIMINE_CD): cp -f $(LIMINE_CD) $(FULL_LIMINE_CD) @@ -85,8 +85,9 @@ $(FULL_LIMINE_SYS): cp -f $(LIMINE_SYS) $(FULL_LIMINE_SYS) build-libkernaux.a: - cd $(BUILD_LIBKERNAUX) && ../$(CONFIG_LIBKERNAUX) - cd $(BUILD_LIBKERNAUX) && make libkernaux.a + cd $(LIBKERNAUX_BUILD) && ./config + cd $(LIBKERNAUX_BUILD) && make libkernaux.a + cd $(LIBKERNAUX_BUILD) && make install-data install-exec %.c.o: %.c $(CC) -c $< -o $@ $(CFLAGS) diff --git a/examples/bootloader-stivale2-limine/build-libkernaux/.keep b/examples/bootloader-stivale2-limine/build-libkernaux/.keep deleted file mode 100644 index e69de29..0000000