Use standard compiler environment variables.
This commit is contained in:
parent
d05bc1c6f5
commit
e259e8ae52
|
@ -36,6 +36,9 @@ software_meant_for_sortix:
|
|||
endif
|
||||
endif
|
||||
|
||||
# Determine whether a function is unset or is a Make default.
|
||||
is_unset_or_default = $(filter undefined default,$(origin $(1)))
|
||||
|
||||
# Provide deprecated CPU variable so makefiles can select CPU-specific dirs.
|
||||
ifeq ($(HOST),i486-sortix)
|
||||
MACHINE:=i486
|
||||
|
@ -61,66 +64,57 @@ ifndef HOST_TOOL_PREFIX
|
|||
endif
|
||||
|
||||
# Determine the names of the tools that target the build platform.
|
||||
ifndef BUILDCC
|
||||
BUILDCC:=$(BUILD_TOOL_PREFIX)gcc
|
||||
ifndef CC_FOR_BUILD
|
||||
CC_FOR_BUILD:=$(BUILD_TOOL_PREFIX)gcc
|
||||
endif
|
||||
ifndef BUILDCXX
|
||||
BUILDCXX:=$(BUILD_TOOL_PREFIX)g++
|
||||
ifndef CXX_FOR_BUILD
|
||||
CXX_FOR_BUILD:=$(BUILD_TOOL_PREFIX)g++
|
||||
endif
|
||||
ifndef BUILDAR
|
||||
BUILDAR:=$(BUILD_TOOL_PREFIX)ar
|
||||
ifndef AR_FOR_BUILD
|
||||
AR_FOR_BUILD:=$(BUILD_TOOL_PREFIX)ar
|
||||
endif
|
||||
ifndef BUILDAS
|
||||
BUILDAS:=$(BUILD_TOOL_PREFIX)as
|
||||
ifndef AS_FOR_BUILD
|
||||
AS_FOR_BUILD:=$(BUILD_TOOL_PREFIX)as
|
||||
endif
|
||||
ifndef BUILDLD
|
||||
BUILDAS:=$(BUILD_TOOL_PREFIX)ld
|
||||
ifndef LD_FOR_BUILD
|
||||
LD_FOR_BUILD:=$(BUILD_TOOL_PREFIX)ld
|
||||
endif
|
||||
ifndef BUILDOBJCOPY
|
||||
BUILDOBJCOPY:=$(BUILD_TOOL_PREFIX)objcopy
|
||||
ifndef OBJCOPY_FOR_BUILD
|
||||
OBJCOPY_FOR_BUILD:=$(BUILD_TOOL_PREFIX)objcopy
|
||||
endif
|
||||
|
||||
# Determine the names of the tools that target the host platform.
|
||||
ifndef HOSTCC
|
||||
HOSTCC:=$(HOST_TOOL_PREFIX)gcc
|
||||
ifneq ($(call is_unset_or_default,CC),)
|
||||
CC:=$(HOST_TOOL_PREFIX)gcc
|
||||
endif
|
||||
ifndef HOSTCXX
|
||||
HOSTCXX:=$(HOST_TOOL_PREFIX)g++
|
||||
ifneq ($(call is_unset_or_default,CXX),)
|
||||
CXX:=$(HOST_TOOL_PREFIX)g++
|
||||
endif
|
||||
ifndef HOSTAR
|
||||
HOSTAR:=$(HOST_TOOL_PREFIX)ar
|
||||
ifneq ($(call is_unset_or_default,AR),)
|
||||
AR:=$(HOST_TOOL_PREFIX)ar
|
||||
endif
|
||||
ifndef HOSTAS
|
||||
HOSTAS:=$(HOST_TOOL_PREFIX)as
|
||||
ifneq ($(call is_unset_or_default,AS),)
|
||||
AS:=$(HOST_TOOL_PREFIX)as
|
||||
endif
|
||||
ifndef HOSTLD
|
||||
HOSTLD:=$(HOST_TOOL_PREFIX)ld
|
||||
ifneq ($(call is_unset_or_default,LD),)
|
||||
LD:=$(HOST_TOOL_PREFIX)ld
|
||||
endif
|
||||
ifndef HOSTOBJCOPY
|
||||
HOSTOBJCOPY:=$(HOST_TOOL_PREFIX)objcopy
|
||||
ifneq ($(call is_unset_or_default,OBJCOPY),)
|
||||
OBJCOPY:=$(HOST_TOOL_PREFIX)objcopy
|
||||
endif
|
||||
ifdef SYSROOT
|
||||
HOSTCC:=$(HOSTCC) --sysroot="$(SYSROOT)"
|
||||
HOSTCXX:=$(HOSTCXX) --sysroot="$(SYSROOT)"
|
||||
HOSTLD:=$(HOSTLD) --sysroot="$(SYSROOT)"
|
||||
CC:=$(CC) --sysroot="$(SYSROOT)"
|
||||
CXX:=$(CXX) --sysroot="$(SYSROOT)"
|
||||
LD:=$(LD) --sysroot="$(SYSROOT)"
|
||||
endif
|
||||
|
||||
CC:=$(HOSTCC)
|
||||
CXX:=$(HOSTCXX)
|
||||
AR:=$(HOSTAR)
|
||||
AS:=$(HOSTAS)
|
||||
LD:=$(HOSTLD)
|
||||
OBJCOPY:=$(HOSTOBJCOPY)
|
||||
|
||||
# Determine default optimization level.
|
||||
DEFAULT_GENERIC_OPTLEVEL_BASE:=-O2 -g
|
||||
DEFAULT_BUILD_OPTLEVEL:=$(DEFAULT_GENERIC_OPTLEVEL_BASE)
|
||||
DEFAULT_OPTLEVEL_FOR_BUILD:=$(DEFAULT_GENERIC_OPTLEVEL_BASE)
|
||||
ifeq ($(BUILD_IS_SORTIX),1)
|
||||
DEFAULT_BUILD_OPTLEVEL+=
|
||||
DEFAULT_OPTLEVEL_FOR_BUILD+=
|
||||
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
|
||||
|
|
|
@ -5,7 +5,7 @@ include ../build-aux/version.mak
|
|||
include ../build-aux/dirs.mak
|
||||
|
||||
# Default values in case the user doesn't override these variables.
|
||||
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||
DISKWRITE?=1
|
||||
CPPFLAGS?=
|
||||
CXXFLAGS?=$(OPTLEVEL)
|
||||
|
@ -67,8 +67,8 @@ endif
|
|||
# Object files that constitute the kernel.
|
||||
|
||||
CRTI_OBJ:=$(CPUDIR)/crti.o
|
||||
CRTBEGIN_OBJ:=$(shell $(HOSTCXX) $(CXXFLAGS) -print-file-name=crtbegin.o)
|
||||
CRTEND_OBJ:=$(shell $(HOSTCXX) $(CXXFLAGS) -print-file-name=crtend.o)
|
||||
CRTBEGIN_OBJ:=$(shell $(CXX) $(CXXFLAGS) -print-file-name=crtbegin.o)
|
||||
CRTEND_OBJ:=$(shell $(CXX) $(CXXFLAGS) -print-file-name=crtend.o)
|
||||
CRTN_OBJ:=$(CPUDIR)/crtn.o
|
||||
|
||||
LIBS=\
|
||||
|
@ -176,10 +176,10 @@ headers:
|
|||
ifeq ($(CPU),x64)
|
||||
|
||||
sortix-x86_64.bin: $(ALLOBJS)
|
||||
$(HOSTCXX) $(CXXFLAGS) -Wl,-Ttext -Wl,100000 -Wl,-z -Wl,max-page-size=0x1000 $(LINK_OBJECTS) -o $@
|
||||
$(CXX) $(CXXFLAGS) -Wl,-Ttext -Wl,100000 -Wl,-z -Wl,max-page-size=0x1000 $(LINK_OBJECTS) -o $@
|
||||
|
||||
sortix.bin: sortix-x86_64.bin
|
||||
$(HOSTOBJCOPY) $< -O elf32-i386-sortix $@
|
||||
$(OBJCOPY) $< -O elf32-i386-sortix $@
|
||||
|
||||
endif
|
||||
|
||||
|
@ -187,15 +187,15 @@ endif
|
|||
ifeq ($(CPU),x86)
|
||||
|
||||
sortix.bin: $(ALLOBJS)
|
||||
$(HOSTCXX) $(CXXFLAGS) -Wl,-Ttext -Wl,100000 $(LINK_OBJECTS) -o $@
|
||||
$(CXX) $(CXXFLAGS) -Wl,-Ttext -Wl,100000 $(LINK_OBJECTS) -o $@
|
||||
|
||||
endif
|
||||
|
||||
%.o: %.cpp
|
||||
$(HOSTCXX) -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)
|
||||
$(CXX) -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)
|
||||
|
||||
%.o: %.S
|
||||
$(HOSTCXX) -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)
|
||||
$(CXX) -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)
|
||||
|
||||
clean:
|
||||
rm -f $(ALLOBJS) sortix.bin
|
||||
|
|
|
@ -4,7 +4,7 @@ include ../build-aux/compiler.mak
|
|||
include ../build-aux/version.mak
|
||||
include ../build-aux/dirs.mak
|
||||
|
||||
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||
|
||||
CPUDIR:=$(CPU)
|
||||
|
||||
|
@ -684,19 +684,19 @@ libs-kernel: $(BINSKERNEL)
|
|||
FORCE:
|
||||
|
||||
libc.a: $(OBJS)
|
||||
$(HOSTAR) rcs $@ $(OBJS)
|
||||
$(AR) rcs $@ $(OBJS)
|
||||
|
||||
libdl.a:
|
||||
$(HOSTAR) rcs $@
|
||||
$(AR) rcs $@
|
||||
|
||||
libg.a:
|
||||
$(HOSTAR) rcs $@
|
||||
$(AR) rcs $@
|
||||
|
||||
libk.a: $(LIBK_OBJS)
|
||||
$(HOSTAR) rcs $@ $(LIBK_OBJS)
|
||||
$(AR) rcs $@ $(LIBK_OBJS)
|
||||
|
||||
librt.a:
|
||||
$(HOSTAR) rcs $@
|
||||
$(AR) rcs $@
|
||||
|
||||
crt0.o: $(CPUDIR)/crt0.o
|
||||
ln -f $< $@
|
||||
|
@ -717,23 +717,23 @@ headers:
|
|||
|
||||
# standard library
|
||||
%.o: %.c
|
||||
$(HOSTCC) -c $< -o $@ $(CPPFLAGS) $(FLAGS) $(CFLAGS)
|
||||
$(CC) -c $< -o $@ $(CPPFLAGS) $(FLAGS) $(CFLAGS)
|
||||
|
||||
%.o: %.cpp
|
||||
$(HOSTCXX) -c $< -o $@ $(CPPFLAGS) $(FLAGS) $(CXXFLAGS)
|
||||
$(CXX) -c $< -o $@ $(CPPFLAGS) $(FLAGS) $(CXXFLAGS)
|
||||
|
||||
%.o: %.S
|
||||
$(HOSTCXX) -c $< -o $@ $(CPPFLAGS) $(FLAGS) $(CFLAGS)
|
||||
$(CXX) -c $< -o $@ $(CPPFLAGS) $(FLAGS) $(CFLAGS)
|
||||
|
||||
# libk
|
||||
%.libk.o: %.c
|
||||
$(HOSTCC) -c $< -o $@ $(LIBK_CPPFLAGS) $(LIBK_FLAGS) $(LIBK_CFLAGS)
|
||||
$(CC) -c $< -o $@ $(LIBK_CPPFLAGS) $(LIBK_FLAGS) $(LIBK_CFLAGS)
|
||||
|
||||
%.libk.o: %.cpp
|
||||
$(HOSTCXX) -c $< -o $@ $(LIBK_CPPFLAGS) $(LIBK_FLAGS) $(LIBK_CXXFLAGS)
|
||||
$(CXX) -c $< -o $@ $(LIBK_CPPFLAGS) $(LIBK_FLAGS) $(LIBK_CXXFLAGS)
|
||||
|
||||
%.libk.o: %.S
|
||||
$(HOSTCC) -c $< -o $@ $(LIBK_CPPFLAGS) $(LIBK_FLAGS) $(LIBK_CFLAGS)
|
||||
$(CC) -c $< -o $@ $(LIBK_CPPFLAGS) $(LIBK_FLAGS) $(LIBK_CFLAGS)
|
||||
|
||||
clean:
|
||||
rm -f *.o */*.o */*/*.o *.a
|
||||
|
|
|
@ -3,7 +3,7 @@ include ../build-aux/compiler.mak
|
|||
include ../build-aux/version.mak
|
||||
include ../build-aux/dirs.mak
|
||||
|
||||
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||
CFLAGS?=$(OPTLEVEL)
|
||||
|
||||
# TODO: Better detection of the proper subdirectory here!
|
||||
|
@ -383,13 +383,13 @@ arch/i387/s_modf.o: src/s_modf.c
|
|||
headers:
|
||||
|
||||
libm.a: $(OBJS)
|
||||
$(HOSTAR) rcs $@ $(OBJS)
|
||||
$(AR) rcs $@ $(OBJS)
|
||||
|
||||
%.o: %.S
|
||||
$(HOSTCC) -c $< -o $@ $(CPPFLAGS) $(CFLAGS)
|
||||
$(CC) -c $< -o $@ $(CPPFLAGS) $(CFLAGS)
|
||||
|
||||
%.o: %.c
|
||||
$(HOSTCC) -c $< -o $@ $(CPPFLAGS) $(CFLAGS)
|
||||
$(CC) -c $< -o $@ $(CPPFLAGS) $(CFLAGS)
|
||||
|
||||
clean:
|
||||
rm -f $(BINS) $(OBJS) $(ARCH_SUBDIR)/*.o src/*.o */*.o arch/*/*.o
|
||||
|
|
|
@ -4,7 +4,7 @@ include ../build-aux/compiler.mak
|
|||
include ../build-aux/version.mak
|
||||
include ../build-aux/dirs.mak
|
||||
|
||||
OPTLEVEL?=$(DEFAULT_HOST_OPTLEVEL)
|
||||
OPTLEVEL?=$(DEFAULT_OPTLEVEL)
|
||||
CXXFLAGS?=$(OPTLEVEL)
|
||||
CPPFLAGS?=
|
||||
|
||||
|
@ -77,10 +77,10 @@ headers:
|
|||
libs: $(BINS)
|
||||
|
||||
libpthread.a: $(OBJS)
|
||||
$(HOSTAR) rcs $@ $(OBJS)
|
||||
$(AR) rcs $@ $(OBJS)
|
||||
|
||||
%.o: %.c++
|
||||
$(HOSTCXX) -std=gnu++11 -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)
|
||||
$(CXX) -std=gnu++11 -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)
|
||||
|
||||
clean:
|
||||
rm -f $(BINS) $(OBJS) *.o
|
||||
|
|
Loading…
Reference in New Issue