diff --git a/arch.mk b/arch.mk index a93cb92e..a2a75a34 100644 --- a/arch.mk +++ b/arch.mk @@ -1,4 +1,8 @@ -MACHINE := $(shell $(CC) -dumpmachine) +ifdef CROSS_COMPILE + MACHINE := $(CROSS_COMPILE) +else + MACHINE ?= $(shell $(CC) -dumpmachine) +endif ifneq (,$(findstring x86_64-,$(MACHINE))) ARCH_X64 := 1 diff --git a/compile.mk b/compile.mk index b72fd683..011b4363 100644 --- a/compile.mk +++ b/compile.mk @@ -20,6 +20,12 @@ FLAGS += -Wall -Wextra -Wno-unused-parameter # C++ standard CXXFLAGS += -std=c++11 +# Define compiler/linker target if cross-compiling +ifdef CROSS_COMPILE + FLAGS += --target=$(MACHINE) + LDFLAGS += --target=$(MACHINE) +endif + # Architecture-independent flags ifdef ARCH_X64 FLAGS += -DARCH_X64 diff --git a/dep.mk b/dep.mk index 7db35fb5..41fe5896 100644 --- a/dep.mk +++ b/dep.mk @@ -10,6 +10,12 @@ DEP_FLAGS += -g -O3 # Static libs don't usually compiled with -fPIC, but since we're including them in a shared library, it's needed. DEP_FLAGS += -fPIC +# Define compiler/linker target if cross-compiling +ifdef CROSS_COMPILE + DEP_FLAGS += --target=$(MACHINE) + DEP_LDFLAGS += --target=$(MACHINE) +endif + ifdef ARCH_X64 DEP_FLAGS += -march=nehalem endif