From 2d16f03ca44269d79a28f04884165bbbb6286ba5 Mon Sep 17 00:00:00 2001 From: aqua Date: Tue, 21 Feb 2023 17:54:34 +0200 Subject: Rename host and target tool names - target tool prefix is ${ARCH}_ - host tool prefix is HOST_ --- Makefile.all | 28 +++++++++++++++------------- Makefile.config | 46 +++++++++++++++++++++++++--------------------- devices/Makefile | 4 ++-- i686/Makefile | 4 ++-- i686/toolchain.mk | 46 +++++++++++++++++++++++++--------------------- rules.mk | 28 ++++++++++++++-------------- src/Makefile | 6 +++--- 7 files changed, 86 insertions(+), 76 deletions(-) diff --git a/Makefile.all b/Makefile.all index ae7bbba..0909e0e 100644 --- a/Makefile.all +++ b/Makefile.all @@ -5,7 +5,7 @@ include Makefile.config -LDFLAGS += -T ${ARCH}/linker.ld +${ARCH}_LDFLAGS += -T ${ARCH}/linker.ld TARGETS += glitch.elf include rules.mk @@ -17,18 +17,20 @@ run: glitch.iso info: @echo "- target:" @echo " ARCH: ${ARCH}" - @echo " CC: ${CC}" - @echo " CCID: ${CCID}" - @echo " CFLAGS: ${CFLAGS}" - @echo " CXX: ${CXX}" - @echo " CXXID: ${CXXID}" - @echo " CXXFLAGS: ${CXXFLAGS}" - @echo " LD: ${LD}" - @echo " LDID: ${LDID}" - @echo " LDFLAGS: ${LDFLAGS}" - @echo "- test:" - @echo " CXX: ${TEST_CXX}" - @echo " CXXFLAGS: ${TEST_CXXFLAGS}" + @echo " CC: ${${ARCH}_CC}" + @echo " CCID: ${${ARCH}_CCID}" + @echo " CFLAGS: ${${ARCH}_CFLAGS}" + @echo " CXX: ${${ARCH}_CXX}" + @echo " CXXID: ${${ARCH}_CXXID}" + @echo " CXXFLAGS: ${${ARCH}_CXXFLAGS}" + @echo " LD: ${${ARCH}_LD}" + @echo " LDID: ${${ARCH}_LDID}" + @echo " LDFLAGS: ${${ARCH}_LDFLAGS}" + @echo "- host:" + @echo " CC: ${HOST_CC}" + @echo " CFLAGS: ${HOST_CFLAGS}" + @echo " CXX: ${HOST_CXX}" + @echo " CXXFLAGS: ${HOST_CXXFLAGS}" @echo " QEMU: ${QEMU}" # build targets diff --git a/Makefile.config b/Makefile.config index b5a5ab3..0ad2a91 100644 --- a/Makefile.config +++ b/Makefile.config @@ -30,34 +30,38 @@ ARCH=i686 # define compiler, linker, archiver and strip and their flags # FIXME: cpp threadsafe statics -AS := i686-elf-as +${ARCH}_AS := i686-elf-as -CC := i686-elf-gcc -CCID := $(shell ${CC} --version | head -n1) -CFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -fanalyzer -ffreestanding -std=gnu11 \ - -mgeneral-regs-only \ - $(shell echo ${CONFIG_CFLAGS}) +${ARCH}_CC := i686-elf-gcc +${ARCH}_CCID := $(shell ${${ARCH}_CC} --version | head -n1) +${ARCH}_CFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -fanalyzer -ffreestanding -std=gnu11 \ + -mgeneral-regs-only \ + $(shell echo ${CONFIG_CFLAGS}) -CXX := i686-elf-g++ -CXXID := $(shell ${CXX} --version | head -n1) -CXXFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -ffreestanding -std=c++17 \ - -mgeneral-regs-only -fno-use-cxa-atexit -fno-threadsafe-statics -fno-exceptions -fno-rtti \ - $(shell echo ${CONFIG_CXXFLAGS}) +${ARCH}_CXX := i686-elf-g++ +${ARCH}_CXXID := $(shell ${${ARCH}_CXX} --version | head -n1) +${ARCH}_CXXFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -ffreestanding -std=c++17 \ + -mgeneral-regs-only -fno-use-cxa-atexit -fno-threadsafe-statics -fno-exceptions -fno-rtti \ + $(shell echo ${CONFIG_CXXFLAGS}) -LD := i686-elf-ld -LDID := $(shell ${LD} --version | head -n1) -LDFLAGS := -static -nostdlib \ - $(shell echo ${CONFIG_LDFLAGS}) +${ARCH}_LD := i686-elf-ld +${ARCH}_LDID := $(shell ${${ARCH}_LD} --version | head -n1) +${ARCH}_LDFLAGS := -static -nostdlib \ + $(shell echo ${CONFIG_LDFLAGS}) -AR := i686-elf-ar -ARFLAGS := -crus +${ARCH}_AR := i686-elf-ar +${ARCH}_ARFLAGS := -crus -STRIP := i686-elf-strip +${ARCH}_STRIP := i686-elf-strip # define compiler and flags for test targets -TEST_CXX := g++ -TEST_CXXFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -g -Og \ - $(shell pkg-config --cflags --libs gtest gtest_main gmock) +HOST_CC := gcc +HOST_CFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion \ + ${CFLAGS} +HOST_CXX := g++ +HOST_CXXFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -g -Og \ + $(shell pkg-config --cflags --libs gtest gtest_main gmock) \ + ${CXXFLAGS} # emulator name and flags QEMU := qemu-system-i386 -accel kvm -machine pc diff --git a/devices/Makefile b/devices/Makefile index 711e103..56cbac6 100644 --- a/devices/Makefile +++ b/devices/Makefile @@ -1,8 +1,8 @@ include ../Makefile.config INCLUDES := -I../${ARCH} -CFLAGS += ${INCLUDES} -CXXFLAGS += ${INCLUDES} +${ARCH}_CFLAGS += ${INCLUDES} +${ARCH}_CXXFLAGS += ${INCLUDES} devs.SRCS = pic_8259.c uart_16550.cpp vga.cpp i8042.c pckbd.c mouse.c diff --git a/i686/Makefile b/i686/Makefile index 9aa0ed1..0a19955 100644 --- a/i686/Makefile +++ b/i686/Makefile @@ -1,8 +1,8 @@ include ../Makefile.config INCLUDES := -isystem../grub -CFLAGS += ${INCLUDES} -CXXFLAGS += ${INCLUDES} +${ARCH}_CFLAGS += ${INCLUDES} +${ARCH}_CXXFLAGS += ${INCLUDES} arch.SRCS = boot.S init.s \ gdt.c lgdt.c \ diff --git a/i686/toolchain.mk b/i686/toolchain.mk index 93c5f6d..791966b 100644 --- a/i686/toolchain.mk +++ b/i686/toolchain.mk @@ -2,34 +2,38 @@ ARCH=i686 # define compiler, linker, archiver and strip and their flags # FIXME: cpp threadsafe statics -AS := i686-elf-as +${ARCH}_AS := i686-elf-as -CC := i686-elf-gcc -CCID := $(shell ${CC} --version | head -n1) -CFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -fanalyzer -ffreestanding -std=gnu11 \ - -mgeneral-regs-only \ - $(shell echo ${CONFIG_CFLAGS}) +${ARCH}_CC := i686-elf-gcc +${ARCH}_CCID := $(shell ${${ARCH}_CC} --version | head -n1) +${ARCH}_CFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -fanalyzer -ffreestanding -std=gnu11 \ + -mgeneral-regs-only \ + $(shell echo ${CONFIG_CFLAGS}) -CXX := i686-elf-g++ -CXXID := $(shell ${CXX} --version | head -n1) -CXXFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -ffreestanding -std=c++17 \ - -mgeneral-regs-only -fno-use-cxa-atexit -fno-threadsafe-statics -fno-exceptions -fno-rtti \ - $(shell echo ${CONFIG_CXXFLAGS}) +${ARCH}_CXX := i686-elf-g++ +${ARCH}_CXXID := $(shell ${${ARCH}_CXX} --version | head -n1) +${ARCH}_CXXFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -ffreestanding -std=c++17 \ + -mgeneral-regs-only -fno-use-cxa-atexit -fno-threadsafe-statics -fno-exceptions -fno-rtti \ + $(shell echo ${CONFIG_CXXFLAGS}) -LD := i686-elf-ld -LDID := $(shell ${LD} --version | head -n1) -LDFLAGS := -static -nostdlib \ - $(shell echo ${CONFIG_LDFLAGS}) +${ARCH}_LD := i686-elf-ld +${ARCH}_LDID := $(shell ${${ARCH}_LD} --version | head -n1) +${ARCH}_LDFLAGS := -static -nostdlib \ + $(shell echo ${CONFIG_LDFLAGS}) -AR := i686-elf-ar -ARFLAGS := -crus +${ARCH}_AR := i686-elf-ar +${ARCH}_ARFLAGS := -crus -STRIP := i686-elf-strip +${ARCH}_STRIP := i686-elf-strip # define compiler and flags for test targets -TEST_CXX := g++ -TEST_CXXFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -g -Og \ - $(shell pkg-config --cflags --libs gtest gtest_main gmock) +HOST_CC := gcc +HOST_CFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion \ + ${CFLAGS} +HOST_CXX := g++ +HOST_CXXFLAGS := -Wall -Wextra -Wpedantic -Werror=shadow -Wconversion -g -Og \ + $(shell pkg-config --cflags --libs gtest gtest_main gmock) \ + ${CXXFLAGS} # emulator name and flags QEMU := qemu-system-i386 -accel kvm -machine pc diff --git a/rules.mk b/rules.mk index 893cea8..a802d0d 100644 --- a/rules.mk +++ b/rules.mk @@ -46,54 +46,54 @@ debug: targets: ${TARGETS} # extra flags -CFLAGS += -I../lib/libk \ - -Werror=implicit-function-declaration -CXXFLAGS += -I../lib/libk -Drestrict=__restrict__ +${ARCH}_CFLAGS += -I../lib/libk \ + -Werror=implicit-function-declaration +${ARCH}_CXXFLAGS += -I../lib/libk -Drestrict=__restrict__ # Depndency rules %.d: %.S - @${CC} ${CFLAGS} -M -MT $(<:.S=_${ARCH}.o) $< -MF $@ + @${${ARCH}_CC} ${${ARCH}_CFLAGS} -M -MT $(<:.S=_${ARCH}.o) $< -MF $@ %.d: %.c - @${CC} ${CFLAGS} -M -MT $(<:.c=_${ARCH}.o) $< -MF $@ + @${${ARCH}_CC} ${${ARCH}_CFLAGS} -M -MT $(<:.c=_${ARCH}.o) $< -MF $@ %.d: %.cpp - @${CXX} ${CXXFLAGS} -M -MT $(<:.cpp=_${ARCH}.o) $< -MF $@ + @${${ARCH}_CXX} ${${ARCH}_CXXFLAGS} -M -MT $(<:.cpp=_${ARCH}.o) $< -MF $@ %.d: %.cc - @${TEST_CXX} ${TEST_CXXFLAGS} -M -MT $(<:.cc=_${ARCH}.o) $< -MF $@ + @${HOST_CXX} ${HOST_CXXFLAGS} -M -MT $(<:.cc=_${ARCH}.o) $< -MF $@ # Suffix rules %.a: @echo ' AR $@' - @${AR} ${ARFLAGS} $@ $(filter %.o,$^) + @${${ARCH}_AR} ${${ARCH}_ARFLAGS} $@ $(filter %.o,$^) %_${ARCH}.o: %.s @echo ' AS $<' - @$(AS) $(ASFLAGS) -c -o $@ $< + @${${ARCH}_AS} ${${ARCH}_ASFLAGS} -c -o $@ $< %_${ARCH}.o: %.S @echo ' CC $<' - @$(CC) $(CFLAGS) -c -o $@ $< + @${${ARCH}_CC} ${${ARCH}_CFLAGS} -c -o $@ $< %_${ARCH}.o: %.c @echo ' CC $<' - @$(CC) $(CFLAGS) -c -o $@ $< + @${${ARCH}_CC} ${${ARCH}_CFLAGS} -c -o $@ $< %_${ARCH}.o: %.cpp @echo ' CXX $<' - @$(CXX) $(CXXFLAGS) -c -o $@ $< + @${${ARCH}_CXX} ${${ARCH}_CXXFLAGS} -c -o $@ $< %.elf: @echo ' LD $@' - @${LD} ${LDFLAGS} -o $@ $^ + @${${ARCH}_LD} ${${ARCH}_LDFLAGS} -o $@ $^ @echo -n ' B2b ' @b2sum $@ | cut -d' ' -f1 # test rules tst/%: tst/%.cc @echo ' CXX TEST $@' - @$(TEST_CXX) $(TEST_CXXFLAGS) $< -o $@ + @${HOST_CXX} ${HOST_CXXFLAGS} $< -o $@ .PHONY: test.base valgrind.base clean.base FORCE test.base: ${TESTS} diff --git a/src/Makefile b/src/Makefile index 02ff120..b4bdd0a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,8 +1,8 @@ include ../Makefile.config INCLUDES := -isystem../grub -I../${ARCH} -I../devices -CFLAGS += ${INCLUDES} -CXXFLAGS += ${INCLUDES} +${ARCH}_CFLAGS += ${INCLUDES} +${ARCH}_CXXFLAGS += ${INCLUDES} kernel.SRCS := multiboot2.c mmap.c kernel.cpp mem/vmm.c kernel.OBJS := conf.h @@ -15,5 +15,5 @@ conf.h: conf.h.in @echo ' GEN $@' @cp conf.h.in conf.h @sed -i 's/@VERSION@/$(shell git describe)/' conf.h - @sed -i 's/@CC@/$(shell ${CC} --version | head -n1)/' conf.h + @sed -i 's/@CC@/${${ARCH}_CCID}/' conf.h -- cgit v1.2.1