Improved architecture support.

This commit is contained in:
Steven Smith
2016-05-28 18:23:53 -07:00
parent 389da754b8
commit 3908147305
+48 -23
View File
@@ -101,15 +101,28 @@ ifeq ($(TARGET),3DS)
_3DSLINK := $(DEVKITARM)/bin/3dslink _3DSLINK := $(DEVKITARM)/bin/3dslink
ifeq ($(OS),Windows_NT) ifeq ($(OS),Windows_NT)
MAKEROM := $(BUILDTOOLS_DIR)/3ds/makerom.exe ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
BANNERTOOL := $(BUILDTOOLS_DIR)/3ds/bannertool.exe MAKEROM := $(BUILDTOOLS_DIR)/3ds/makerom64.exe
CITRA := $(BUILDTOOLS_DIR)/3ds/citra/citra.exe BANNERTOOL := $(BUILDTOOLS_DIR)/3ds/bannertool64.exe
CITRA := $(BUILDTOOLS_DIR)/3ds/citra/citra64.exe
else
MAKEROM := $(BUILDTOOLS_DIR)/3ds/makerom32.exe
BANNERTOOL := $(BUILDTOOLS_DIR)/3ds/bannertool32.exe
CITRA := $(BUILDTOOLS_DIR)/3ds/citra/citra32.exe
endif
else else
UNAME_S := $(shell uname -s) UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux) ifeq ($(UNAME_S),Linux)
MAKEROM := $(BUILDTOOLS_DIR)/3ds/makerom-linux UNAME_P := $(shell uname -p)
BANNERTOOL := $(BUILDTOOLS_DIR)/3ds/bannertool-linux ifeq ($(UNAME_P),x86_64)
CITRA := $(BUILDTOOLS_DIR)/3ds/citra/citra-linux MAKEROM := $(BUILDTOOLS_DIR)/3ds/makerom-linux64
BANNERTOOL := $(BUILDTOOLS_DIR)/3ds/bannertool-linux64
CITRA := $(BUILDTOOLS_DIR)/3ds/citra/citra-linux64
else
MAKEROM := $(BUILDTOOLS_DIR)/3ds/makerom-linux32
BANNERTOOL := $(BUILDTOOLS_DIR)/3ds/bannertool-linux32
CITRA := $(BUILDTOOLS_DIR)/3ds/citra/citra-linux32
endif
endif endif
ifeq ($(UNAME_S),Darwin) ifeq ($(UNAME_S),Darwin)
MAKEROM := $(BUILDTOOLS_DIR)/3ds/makerom-mac MAKEROM := $(BUILDTOOLS_DIR)/3ds/makerom-mac
@@ -171,6 +184,12 @@ else
CC := gcc CC := gcc
CXX := g++ CXX := g++
ifeq ($(TARGET),NATIVE32)
COMMON_CC_FLAGS += -m32
else ifeq ($(TARGET),NATIVE64)
COMMON_CC_FLAGS += -m64
endif
ifeq ($(LIBRARY),1) ifeq ($(LIBRARY),1)
OUTPUT_FILES := $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).a $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).dll OUTPUT_FILES := $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).a $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).dll
COMMON_CC_FLAGS += -fPIC COMMON_CC_FLAGS += -fPIC
@@ -178,25 +197,25 @@ else
OUTPUT_FILES := $(OUTPUT_DIR)/$(STRIPPED_NAME).exe OUTPUT_FILES := $(OUTPUT_DIR)/$(STRIPPED_NAME).exe
endif endif
else else
ifeq ($(TARGET),WIN32) ifeq ($(TARGET),$(filter $(TARGET),WIN32 WIN64))
AR := i686-w64-mingw32-ar UNAME_P := $(shell uname -p)
AS := i686-w64-mingw32-as ifeq ($(UNAME_P),x86_64)
CC := i686-w64-mingw32-gcc AR := x86_64-w64-mingw32-ar
CXX := i686-w64-mingw32-g++ AS := x86_64-w64-mingw32-as
CC := x86_64-w64-mingw32-gcc
LD_FLAGS += -static-libstdc++ -static-libgcc -static CXX := x86_64-w64-mingw32-g++
ifeq ($(LIBRARY),1)
OUTPUT_FILES := $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).a $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).dll
COMMON_CC_FLAGS += -fPIC
else else
OUTPUT_FILES := $(OUTPUT_DIR)/$(STRIPPED_NAME).exe AR := i686-w64-mingw32-ar
AS := i686-w64-mingw32-as
CC := i686-w64-mingw32-gcc
CXX := i686-w64-mingw32-g++
endif
ifeq ($(TARGET),WIN32)
COMMON_CC_FLAGS += -m32
else ifeq ($(TARGET),WIN64)
COMMON_CC_FLAGS += -m64
endif endif
else ifeq ($(TARGET),WIN64)
AR := x86_64-w64-mingw32-ar
AS := x86_64-w64-mingw32-as
CC := x86_64-w64-mingw32-gcc
CXX := x86_64-w64-mingw32-g++
LD_FLAGS += -static-libstdc++ -static-libgcc -static LD_FLAGS += -static-libstdc++ -static-libgcc -static
@@ -212,6 +231,12 @@ else
CC := gcc CC := gcc
CXX := g++ CXX := g++
ifeq ($(TARGET),NATIVE32)
COMMON_CC_FLAGS += -m32
else ifeq ($(TARGET),NATIVE64)
COMMON_CC_FLAGS += -m64
endif
ifeq ($(LIBRARY),1) ifeq ($(LIBRARY),1)
OUTPUT_FILES := $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).a $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).so OUTPUT_FILES := $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).a $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).so
COMMON_CC_FLAGS += -fPIC COMMON_CC_FLAGS += -fPIC