From 9e6148f6ff5e58151a76899c395753385423f63e Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Sun, 13 Apr 2014 22:34:36 +0200 Subject: [PATCH] Refactor default compiler options logic. --- bench/Makefile | 9 ++------- compiler.mak | 12 ++++++++++++ dispd/Makefile | 13 ++++--------- ext/Makefile | 2 +- games/Makefile | 9 ++------- kernel/Makefile | 2 +- libc/Makefile | 4 +--- libm/Makefile | 2 +- libpthread/Makefile | 2 +- mbr/Makefile | 2 +- mkinitrd/Makefile | 9 ++------- regress/Makefile | 2 +- tix/Makefile | 2 +- utils/Makefile | 9 ++------- 14 files changed, 32 insertions(+), 47 deletions(-) diff --git a/bench/Makefile b/bench/Makefile index 22282f6d..d6a30b64 100644 --- a/bench/Makefile +++ b/bench/Makefile @@ -3,13 +3,8 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -ifndef OPTLEVEL - OPTLEVEL=-g -O2 -endif - -ifndef CXXFLAGS - CXXFLAGS:=$(OPTLEVEL) -endif +OPTLEVEL?=$(DEFAULT_OPTLEVEL) +CXXFLAGS?=$(OPTLEVEL) CXXFLAGS:=$(CXXFLAGS) -Wall -Wextra -fno-exceptions -fno-rtti diff --git a/compiler.mak b/compiler.mak index 7e237d54..8db89ab0 100644 --- a/compiler.mak +++ b/compiler.mak @@ -112,3 +112,15 @@ AS:=$(HOSTAS) LD:=$(HOSTLD) OBJCOPY:=$(HOSTOBJCOPY) +# Determine default optimization level. +DEFAULT_GENERIC_OPTLEVEL_BASE:=-O2 -g +DEFAULT_BUILD_OPTLEVEL:=$(DEFAULT_GENERIC_OPTLEVEL_BASE) +ifeq ($(BUILD_IS_SORTIX),1) + DEFAULT_BUILD_OPTLEVEL+= +endif +DEFAULT_HOST_OPTLEVEL:=$(DEFAULT_GENERIC_OPTLEVEL_BASE) +DEFAULT_OPTLEVEL:=$(DEFAULT_GENERIC_OPTLEVEL_BASE) +ifeq ($(HOST_IS_SORTIX),1) + DEFAULT_HOST_OPTLEVEL+= + DEFAULT_OPTLEVEL+= +endif diff --git a/dispd/Makefile b/dispd/Makefile index 5112f716..4845b310 100644 --- a/dispd/Makefile +++ b/dispd/Makefile @@ -3,13 +3,8 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -ifndef OPTLEVEL - OPTLEVEL:=-g -O2 -endif - -ifndef CXXFLAGS - CXXFLAGS:=$(OPTLEVEL) -endif +OPTLEVEL?=$(DEFAULT_OPTLEVEL) +CXXFLAGS?=$(OPTLEVEL) CXXFLAGS:=$(CXXFLAGS) -Wall -Wextra -fno-exceptions -fno-rtti CPPFLAGS:=$(CPPFLAGS) -I include @@ -35,7 +30,7 @@ headers: client: client/libdispd.a client/libdispd.a: $(CLIENT_OBJS) - $(HOSTAR) rcs $@ $(CLIENT_OBJS) + $(AR) rcs $@ $(CLIENT_OBJS) server: server/dispd @@ -48,7 +43,7 @@ clean: rm -f *.o client/*.o server/*.o %.o: %.cpp - $(HOSTCXX) -std=gnu++11 -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS) + $(CXX) -std=gnu++11 -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS) # Installation into sysroot install: install-headers install-client install-server diff --git a/ext/Makefile b/ext/Makefile index a3edf9f5..5ec659d8 100644 --- a/ext/Makefile +++ b/ext/Makefile @@ -2,7 +2,7 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -OPTLEVEL?=-g -O2 +OPTLEVEL?=$(DEFAULT_OPTLEVEL) CXXFLAGS?=$(OPTLEVEL) CPPFLAGS:=$(CPPFLAGS) diff --git a/games/Makefile b/games/Makefile index 55d1bee4..5a67ce0a 100644 --- a/games/Makefile +++ b/games/Makefile @@ -3,13 +3,8 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -ifndef OPTLEVEL - OPTLEVEL=-g -O2 -endif - -ifndef CXXFLAGS - CXXFLAGS:=$(OPTLEVEL) -endif +OPTLEVEL?=$(DEFAULT_OPTLEVEL) +CXXFLAGS?=$(OPTLEVEL) CXXFLAGS:=$(CXXFLAGS) -Wall -Wextra -fno-exceptions -fno-rtti diff --git a/kernel/Makefile b/kernel/Makefile index a6a528ec..c3783c9c 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -4,7 +4,7 @@ include ../version.mak include ../dirs.mak # Default values in case the user doesn't override these variables. -OPTLEVEL?=-g -O2 +OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL) CALLTRACE?=0 DISKWRITE?=1 CPPFLAGS?= diff --git a/libc/Makefile b/libc/Makefile index 18e0cdf5..c8b27f9c 100644 --- a/libc/Makefile +++ b/libc/Makefile @@ -3,9 +3,7 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -ifndef OPTLEVEL - OPTLEVEL:=-g -O2 -fno-omit-frame-pointer -endif +OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL) CPUDIR:=$(CPU) diff --git a/libm/Makefile b/libm/Makefile index a6692243..da1ae1e4 100644 --- a/libm/Makefile +++ b/libm/Makefile @@ -3,7 +3,7 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -OPTLEVEL?=-O2 -g +OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL) CFLAGS?=$(OPTLEVEL) # TODO: Better detection of the proper subdirectory here! diff --git a/libpthread/Makefile b/libpthread/Makefile index bfa37769..e0e32a91 100644 --- a/libpthread/Makefile +++ b/libpthread/Makefile @@ -3,7 +3,7 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -OPTLEVEL?=-O2 -g +OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL) CXXFLAGS?=$(OPTLEVEL) CPPFLAGS?= diff --git a/mbr/Makefile b/mbr/Makefile index f870ab70..8dd29d54 100644 --- a/mbr/Makefile +++ b/mbr/Makefile @@ -3,7 +3,7 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -OPTLEVEL?=-g -O2 +OPTLEVEL?=$(DEFAULT_OPTLEVEL) CXXFLAGS?=$(OPTLEVEL) CXXFLAGS:=$(CXXFLAGS) -Wall -Wextra -fno-exceptions -fno-rtti diff --git a/mkinitrd/Makefile b/mkinitrd/Makefile index 989ca9dd..1e4557d1 100644 --- a/mkinitrd/Makefile +++ b/mkinitrd/Makefile @@ -2,13 +2,8 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -ifndef OPTLEVEL - OPTLEVEL=-g -O2 -endif - -ifndef CXXFLAGS - CXXFLAGS:=$(OPTLEVEL) -endif +OPTLEVEL?=$(DEFAULT_OPTLEVEL) +CXXFLAGS?=$(OPTLEVEL) SORTIXKERNEL=../kernel diff --git a/regress/Makefile b/regress/Makefile index 3748854c..66b51445 100644 --- a/regress/Makefile +++ b/regress/Makefile @@ -3,7 +3,7 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -OPTLEVEL?=-O2 -g +OPTLEVEL?=$(DEFAULT_OPTLEVEL) CXXFLAGS?=$(OPTLEVEL) TESTDIR?=$(LIBEXECDIR)/test diff --git a/tix/Makefile b/tix/Makefile index 1d3e03d1..8a46d035 100644 --- a/tix/Makefile +++ b/tix/Makefile @@ -2,7 +2,7 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -OPTLEVEL?=-g -O2 +OPTLEVEL?=$(DEFAULT_OPTLEVEL) CPPFLAGS?= CXXFLAGS?=$(OPTLEVEL) diff --git a/utils/Makefile b/utils/Makefile index ba46df35..935076b0 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -3,13 +3,8 @@ include ../compiler.mak include ../version.mak include ../dirs.mak -ifndef OPTLEVEL - OPTLEVEL=-g -O2 -endif - -ifndef CXXFLAGS - CXXFLAGS:=$(OPTLEVEL) -endif +OPTLEVEL?=$(DEFAULT_OPTLEVEL) +CXXFLAGS?=$(OPTLEVEL) CPPFLAGS:=$(CPPFLAGS) -DVERSIONSTR=\"$(VERSION)\" CXXFLAGS:=$(CXXFLAGS) -Wall -Wextra -fno-exceptions -fno-rtti