:: commit d1cb337894249ad711d1fb99ffd7f12a564d469e

mintsuki <mintsuki@protonmail.com> — 2023-04-11 15:15

parents: 86632c703f

build: Reorganise warning flags

diff --git a/GNUmakefile.in b/GNUmakefile.in
index bffb9084..44147c5a 100644
--- a/GNUmakefile.in
+++ b/GNUmakefile.in
@@ -76,6 +76,9 @@ export LDFLAGS
 $(eval $(call DEFAULT_VAR,LIBS,@LIBS@))
 export LIBS
 
+override WERROR_FLAG := @WERROR_FLAG@
+export WERROR_FLAG
+
 $(eval $(call DEFAULT_VAR,CFLAGS_FOR_TARGET,@CFLAGS_FOR_TARGET@))
 export CFLAGS_FOR_TARGET
 $(eval $(call DEFAULT_VAR,CPPFLAGS_FOR_TARGET,@CPPFLAGS_FOR_TARGET@))
@@ -203,12 +206,12 @@ uninstall:
 
 $(call MKESCAPE,$(BUILDDIR))/stage1.stamp: $(STAGE1_FILES) $(call MKESCAPE,$(BUILDDIR))/decompressor-build/decompressor.bin $(call MKESCAPE,$(BUILDDIR))/common-bios/stage2.bin.gz
 	$(MKDIR_P) '$(call SHESCAPE,$(BINDIR))'
-	cd '$(call SHESCAPE,$(SRCDIR))/stage1/hdd' && nasm bootsect.asm @WERROR@ -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-hdd.bin'
+	cd '$(call SHESCAPE,$(SRCDIR))/stage1/hdd' && nasm bootsect.asm $(WERROR_FLAG) -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-hdd.bin'
 ifneq ($(BUILD_CD),no)
-	cd '$(call SHESCAPE,$(SRCDIR))/stage1/cd'  && nasm bootsect.asm @WERROR@ -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-cd.bin'
+	cd '$(call SHESCAPE,$(SRCDIR))/stage1/cd'  && nasm bootsect.asm $(WERROR_FLAG) -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-cd.bin'
 endif
 ifneq ($(BUILD_PXE),no)
-	cd '$(call SHESCAPE,$(SRCDIR))/stage1/pxe' && nasm bootsect.asm @WERROR@ -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-pxe.bin'
+	cd '$(call SHESCAPE,$(SRCDIR))/stage1/pxe' && nasm bootsect.asm $(WERROR_FLAG) -fbin -DBUILDDIR="'"'$(call NASMESCAPE,$(BUILDDIR))'"'" -o '$(call SHESCAPE,$(BINDIR))/limine-pxe.bin'
 endif
 	cp '$(call SHESCAPE,$(BUILDDIR))/common-bios/limine.sys' '$(call SHESCAPE,$(BINDIR))/'
 	touch '$(call SHESCAPE,$(BUILDDIR))/stage1.stamp'
diff --git a/common/GNUmakefile b/common/GNUmakefile
index 1ad26016..94b051d0 100644
--- a/common/GNUmakefile
+++ b/common/GNUmakefile
@@ -43,6 +43,12 @@ override BASE_CFLAGS := $(CFLAGS_FOR_TARGET)
 
 override CFLAGS_FOR_TARGET += \
     -g \
+    -Wall \
+    -Wextra \
+    -Wshadow \
+    -Wvla \
+    -Wno-deprecated-declarations \
+    $(WERROR_FLAG) \
     -std=gnu11 \
     -nostdinc \
     -ffreestanding \
@@ -50,10 +56,7 @@ override CFLAGS_FOR_TARGET += \
     -fno-stack-check \
     -fno-omit-frame-pointer \
     -fno-strict-aliasing \
-    -fno-lto \
-    -Wshadow \
-    -Wvla \
-    -Wno-deprecated-declarations
+    -fno-lto
 
 override CPPFLAGS_FOR_TARGET := \
     -I../freestanding-headers \
@@ -465,29 +468,29 @@ endif
 ifeq ($(TARGET),bios)
 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_ia32
 	$(MKDIR_P) "$$(dirname '$(call SHESCAPE,$@)')"
-	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
+	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR_FLAG) -f elf32 -o '$(call SHESCAPE,$@)'
 
 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_bios_ia32
 	$(MKDIR_P) "$$(dirname '$(call SHESCAPE,$@)')"
-	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
+	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR_FLAG) -f elf32 -o '$(call SHESCAPE,$@)'
 
 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_x86
 	$(MKDIR_P) "$$(dirname '$(call SHESCAPE,$@)')"
-	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
+	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR_FLAG) -f elf32 -o '$(call SHESCAPE,$@)'
 endif
 
 ifeq ($(TARGET),uefi-x86-64)
 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_x86_64
 	$(MKDIR_P) "$$(dirname '$(call SHESCAPE,$@)')"
-	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf64 -o '$(call SHESCAPE,$@)'
+	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR_FLAG) -f elf64 -o '$(call SHESCAPE,$@)'
 
 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_uefi_x86_64
 	$(MKDIR_P) "$$(dirname '$(call SHESCAPE,$@)')"
-	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf64 -o '$(call SHESCAPE,$@)'
+	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR_FLAG) -f elf64 -o '$(call SHESCAPE,$@)'
 
 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_x86
 	$(MKDIR_P) "$$(dirname '$(call SHESCAPE,$@)')"
-	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf64 -o '$(call SHESCAPE,$@)'
+	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR_FLAG) -f elf64 -o '$(call SHESCAPE,$@)'
 endif
 
 ifeq ($(TARGET),uefi-aarch64)
@@ -503,13 +506,13 @@ endif
 ifeq ($(TARGET),uefi-ia32)
 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_ia32
 	$(MKDIR_P) "$$(dirname '$(call SHESCAPE,$@)')"
-	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
+	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR_FLAG) -f elf32 -o '$(call SHESCAPE,$@)'
 
 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_uefi_ia32
 	$(MKDIR_P) "$$(dirname '$(call SHESCAPE,$@)')"
-	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
+	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR_FLAG) -f elf32 -o '$(call SHESCAPE,$@)'
 
 $(call MKESCAPE,$(BUILDDIR))/%.o: %.asm_x86
 	$(MKDIR_P) "$$(dirname '$(call SHESCAPE,$@)')"
-	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR) -f elf32 -o '$(call SHESCAPE,$@)'
+	nasm '$(call SHESCAPE,$<)' -F dwarf -g $(WERROR_FLAG) -f elf32 -o '$(call SHESCAPE,$@)'
 endif
diff --git a/configure.ac b/configure.ac
index 060281ba..c3299ba7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,7 @@ AC_DEFUN([PROG_ABSPATH], [
     esac
 ])
 
-test "x$CFLAGS" = "x" && CFLAGS='-g -O2 -pipe -Wall -Wextra'
+test "x$CFLAGS" = "x" && CFLAGS='-g -O2 -pipe'
 
 AC_LANG([C])
 AC_PROG_CC
@@ -33,8 +33,9 @@ AC_ARG_ENABLE([werror],
     [AS_HELP_STRING([--enable-werror], [treat warnings as errors])],
     [werror_state="$enableval"])
 if test "$werror_state" = "yes"; then
-    AC_SUBST([WERROR], [-Werror])
-    CFLAGS="$CFLAGS -Werror"
+    AC_SUBST([WERROR_FLAG], [-Werror])
+else
+    AC_SUBST([WERROR_FLAG], [-Wno-error])
 fi
 
 AC_PROG_MKDIR_P
@@ -254,12 +255,9 @@ AC_ARG_VAR([OBJCOPY_FOR_TARGET], [objcopy command for Limine])
 AC_ARG_VAR([OBJDUMP_FOR_TARGET], [objdump command for Limine])
 AC_ARG_VAR([READELF_FOR_TARGET], [readelf command for Limine])
 
-m4_define([DEFAULT_CFLAGS_FOR_TARGET], [-g -O2 -pipe -Wall -Wextra])
+m4_define([DEFAULT_CFLAGS_FOR_TARGET], [-g -O2 -pipe])
 AC_ARG_VAR([CFLAGS_FOR_TARGET], [C flags for Limine @<:@default: ]DEFAULT_CFLAGS_FOR_TARGET[@:>@])
 test "x$CFLAGS_FOR_TARGET" = "x" && CFLAGS_FOR_TARGET="DEFAULT_CFLAGS_FOR_TARGET"
-if test "$werror_state" = "yes"; then
-    CFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET -Werror"
-fi
 
 m4_define([DEFAULT_CPPFLAGS_FOR_TARGET], [])
 AC_ARG_VAR([CPPFLAGS_FOR_TARGET], [C preprocessor flags for Limine @<:@default: ]DEFAULT_CPPFLAGS_FOR_TARGET[@:>@])
diff --git a/decompressor/GNUmakefile b/decompressor/GNUmakefile
index 4ffc01b4..c3911bfe 100644
--- a/decompressor/GNUmakefile
+++ b/decompressor/GNUmakefile
@@ -21,6 +21,11 @@ endif
 
 override CFLAGS_FOR_TARGET += \
     -Os \
+    -Wall \
+    -Wextra \
+    -Wshadow \
+    -Wvla \
+    $(WERROR_FLAG) \
     -std=gnu11 \
     -nostdinc \
     -ffreestanding \
@@ -34,9 +39,7 @@ override CFLAGS_FOR_TARGET += \
     -m32 \
     -march=i686 \
     -mabi=sysv \
-    -mno-80387 \
-    -Wshadow \
-    -Wvla
+    -mno-80387
 
 override CPPFLAGS_FOR_TARGET := \
     -I../freestanding-headers \
diff --git a/host/Makefile b/host/Makefile
index ea33398a..241b0197 100644
--- a/host/Makefile
+++ b/host/Makefile
@@ -4,7 +4,7 @@ INSTALL ?= ./install-sh
 
 PREFIX ?= /usr/local
 
-CFLAGS ?= -g -O2 -pipe -Wall -Wextra
+CFLAGS ?= -g -O2 -pipe
 
 .PHONY: all
 all: limine-deploy limine-version limine-enroll-config
@@ -39,10 +39,10 @@ clean:
 	rm -f limine-enroll-config limine-enroll-config.exe
 
 limine-deploy: limine-deploy.c limine-hdd.h
-	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -std=c99 limine-deploy.c $(LIBS) -o $@
+	$(CC) $(CFLAGS) -Wall -Wextra $(WERROR_FLAG) $(CPPFLAGS) $(LDFLAGS) -std=c99 limine-deploy.c $(LIBS) -o $@
 
 limine-version: limine-version.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -std=c99 limine-version.c $(LIBS) -o $@
+	$(CC) $(CFLAGS) -Wall -Wextra $(WERROR_FLAG) $(CPPFLAGS) $(LDFLAGS) -std=c99 limine-version.c $(LIBS) -o $@
 
 limine-enroll-config: limine-enroll-config.c
-	$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -std=c99 limine-enroll-config.c $(LIBS) -o $@
+	$(CC) $(CFLAGS) -Wall -Wextra $(WERROR_FLAG) $(CPPFLAGS) $(LDFLAGS) -std=c99 limine-enroll-config.c $(LIBS) -o $@
tab: 248 wrap: offon