aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraqua <aqua@iserlohn-fortress.net>2023-02-21 17:54:34 +0200
committeraqua <aqua@iserlohn-fortress.net>2023-02-21 17:54:34 +0200
commit2d16f03ca44269d79a28f04884165bbbb6286ba5 (patch)
treee65f9b0283564eaa3e8afa496c7c34fe3369c2ab
parentMove C stdlib to lib/libk (diff)
downloadkernel-2d16f03ca44269d79a28f04884165bbbb6286ba5.tar.xz
Rename host and target tool names
- target tool prefix is ${ARCH}_ - host tool prefix is HOST_
-rw-r--r--Makefile.all28
-rw-r--r--Makefile.config46
-rw-r--r--devices/Makefile4
-rw-r--r--i686/Makefile4
-rw-r--r--i686/toolchain.mk46
-rw-r--r--rules.mk28
-rw-r--r--src/Makefile6
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