mirror of
https://github.com/DarkStore-3DS/buildtools.git
synced 2026-07-06 08:49:07 +00:00
Improve target resolution, OS X support.
This commit is contained in:
@@ -186,65 +186,142 @@ else ifeq ($(TARGET),WIIU)
|
|||||||
COMMON_CC_FLAGS += -mrvl -mcpu=750 -meabi -mhard-float -ffast-math -DPPC -DWIIU
|
COMMON_CC_FLAGS += -mrvl -mcpu=750 -meabi -mhard-float -ffast-math -DPPC -DWIIU
|
||||||
else
|
else
|
||||||
ifeq ($(OS),Windows_NT)
|
ifeq ($(OS),Windows_NT)
|
||||||
AR := ar
|
HOST_OS := windows
|
||||||
AS := as
|
ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
|
||||||
CC := gcc
|
HOST_ARCH := x86_64
|
||||||
CXX := g++
|
else
|
||||||
|
HOST_ARCH := i686
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
UNAME_S := $(shell uname -s)
|
||||||
|
ifeq ($(UNAME_S),Darwin)
|
||||||
|
HOST_OS := mac
|
||||||
|
else
|
||||||
|
HOST_OS := linux
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET),NATIVE32)
|
UNAME_M := $(shell uname -m)
|
||||||
|
ifeq ($(UNAME_M),$(filter $(UNAME_M),x86_64 amd64))
|
||||||
|
HOST_ARCH := x86_64
|
||||||
|
else
|
||||||
|
HOST_ARCH := i686
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET),WIN32)
|
||||||
|
TARGET_OS := windows
|
||||||
|
TARGET_ARCH := i686
|
||||||
|
else ifeq ($(TARGET),WIN64)
|
||||||
|
TARGET_OS := windows
|
||||||
|
TARGET_ARCH := x86_64
|
||||||
|
else ifeq ($(TARGET),LINUX32)
|
||||||
|
TARGET_OS := linux
|
||||||
|
TARGET_ARCH := i686
|
||||||
|
else ifeq ($(TARGET),LINUX64)
|
||||||
|
TARGET_OS := linux
|
||||||
|
TARGET_ARCH := x86_64
|
||||||
|
else ifeq ($(TARGET),MAC32)
|
||||||
|
TARGET_OS := mac
|
||||||
|
TARGET_ARCH := i686
|
||||||
|
else ifeq ($(TARGET),MAC64)
|
||||||
|
TARGET_OS := mac
|
||||||
|
TARGET_ARCH := x86_64
|
||||||
|
else
|
||||||
|
TARGET_OS := $(HOST_OS)
|
||||||
|
TARGET_ARCH := $(HOST_ARCH)
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET_OS),windows)
|
||||||
|
ifeq ($(HOST_OS),windows)
|
||||||
|
AR := ar
|
||||||
|
AS := as
|
||||||
|
CC := gcc
|
||||||
|
CXX := g++
|
||||||
|
else ifeq ($(TARGET_ARCH),i686)
|
||||||
|
AR := i686-w64-mingw32-ar
|
||||||
|
AS := i686-w64-mingw32-as
|
||||||
|
CC := i686-w64-mingw32-gcc
|
||||||
|
CXX := i686-w64-mingw32-g++
|
||||||
|
else ifeq ($(TARGET_ARCH),x86_64)
|
||||||
|
AR := x86_64-w64-mingw32-ar
|
||||||
|
AS := x86_64-w64-mingw32-as
|
||||||
|
CC := x86_64-w64-mingw32-gcc
|
||||||
|
CXX := x86_64-w64-mingw32-g++
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET_ARCH),i686)
|
||||||
COMMON_CC_FLAGS += -m32
|
COMMON_CC_FLAGS += -m32
|
||||||
else ifeq ($(TARGET),NATIVE64)
|
else ifeq ($(TARGET_ARCH),x86_64)
|
||||||
COMMON_CC_FLAGS += -m64
|
COMMON_CC_FLAGS += -m64
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
LD_FLAGS += -static-libstdc++ -static-libgcc -static
|
||||||
|
|
||||||
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
|
||||||
else
|
else
|
||||||
OUTPUT_FILES := $(OUTPUT_DIR)/$(STRIPPED_NAME).exe
|
OUTPUT_FILES := $(OUTPUT_DIR)/$(STRIPPED_NAME).exe
|
||||||
endif
|
endif
|
||||||
else
|
else ifeq ($(TARGET_OS),mac)
|
||||||
ifeq ($(TARGET),$(filter $(TARGET),WIN32 WIN64))
|
ifeq ($(HOST_OS),mac)
|
||||||
ifeq ($(TARGET),WIN32)
|
|
||||||
AR := i686-w64-mingw32-ar
|
|
||||||
AS := i686-w64-mingw32-as
|
|
||||||
CC := i686-w64-mingw32-gcc
|
|
||||||
CXX := i686-w64-mingw32-g++
|
|
||||||
COMMON_CC_FLAGS += -m32
|
|
||||||
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++
|
|
||||||
COMMON_CC_FLAGS += -m64
|
|
||||||
endif
|
|
||||||
|
|
||||||
LD_FLAGS += -static-libstdc++ -static-libgcc -static
|
|
||||||
|
|
||||||
ifeq ($(LIBRARY),1)
|
|
||||||
OUTPUT_FILES := $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).a $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).dll
|
|
||||||
COMMON_CC_FLAGS += -fPIC
|
|
||||||
else
|
|
||||||
OUTPUT_FILES := $(OUTPUT_DIR)/$(STRIPPED_NAME).exe
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
AR := ar
|
AR := ar
|
||||||
AS := as
|
AS := as
|
||||||
CC := gcc
|
CC := gcc
|
||||||
CXX := g++
|
CXX := g++
|
||||||
|
else ifeq ($(TARGET_ARCH),i686)
|
||||||
|
AR := i686-apple-darwin15-ar
|
||||||
|
AS := i686-apple-darwin15-as
|
||||||
|
CC := i686-apple-darwin15-gcc
|
||||||
|
CXX := i686-apple-darwin15-g++
|
||||||
|
else ifeq ($(TARGET_ARCH),x86_64)
|
||||||
|
AR := x86_64-apple-darwin15-ar
|
||||||
|
AS := x86_64-apple-darwin15-as
|
||||||
|
CC := x86_64-apple-darwin15-gcc
|
||||||
|
CXX := x86_64-apple-darwin15-g++
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET),NATIVE32)
|
ifeq ($(TARGET_ARCH),i686)
|
||||||
COMMON_CC_FLAGS += -m32
|
COMMON_CC_FLAGS += -m32
|
||||||
else ifeq ($(TARGET),NATIVE64)
|
else ifeq ($(TARGET_ARCH),x86_64)
|
||||||
COMMON_CC_FLAGS += -m64
|
COMMON_CC_FLAGS += -m64
|
||||||
endif
|
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 $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).dylib
|
||||||
COMMON_CC_FLAGS += -fPIC
|
COMMON_CC_FLAGS += -fPIC
|
||||||
else
|
else
|
||||||
OUTPUT_FILES := $(OUTPUT_DIR)/$(STRIPPED_NAME)
|
OUTPUT_FILES := $(OUTPUT_DIR)/$(STRIPPED_NAME)
|
||||||
endif
|
endif
|
||||||
|
else ifeq ($(TARGET_OS),linux)
|
||||||
|
ifeq ($(HOST_OS),linux)
|
||||||
|
AR := ar
|
||||||
|
AS := as
|
||||||
|
CC := gcc
|
||||||
|
CXX := g++
|
||||||
|
else ifeq ($(TARGET_ARCH),i686)
|
||||||
|
AR := i686-pc-linux-gnu-ar
|
||||||
|
AS := i686-pc-linux-gnu-as
|
||||||
|
CC := i686-pc-linux-gnu-gcc
|
||||||
|
CXX := i686-pc-linux-gnu-g++
|
||||||
|
else ifeq ($(TARGET_ARCH),x86_64)
|
||||||
|
AR := x86_64-pc-linux-gnu-ar
|
||||||
|
AS := x86_64-pc-linux-gnu-as
|
||||||
|
CC := x86_64-pc-linux-gnu-gcc
|
||||||
|
CXX := x86_64-pc-linux-gnu-g++
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET_ARCH),i686)
|
||||||
|
COMMON_CC_FLAGS += -m32
|
||||||
|
else ifeq ($(TARGET_ARCH),x86_64)
|
||||||
|
COMMON_CC_FLAGS += -m64
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(LIBRARY),1)
|
||||||
|
OUTPUT_FILES := $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).a $(OUTPUT_DIR)/lib/$(STRIPPED_NAME).so
|
||||||
|
COMMON_CC_FLAGS += -fPIC
|
||||||
|
else
|
||||||
|
OUTPUT_FILES := $(OUTPUT_DIR)/$(STRIPPED_NAME)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -446,6 +523,10 @@ $(OUTPUT_DIR)/$(STRIPPED_NAME): $(OBJECT_FILES)
|
|||||||
@echo $@
|
@echo $@
|
||||||
@$(CXX) $(CXX_FLAGS) -shared $^ -o $@ $(LD_FLAGS)
|
@$(CXX) $(CXX_FLAGS) -shared $^ -o $@ $(LD_FLAGS)
|
||||||
|
|
||||||
|
%.dylib: $(OBJECT_FILES)
|
||||||
|
@echo $@
|
||||||
|
@$(CXX) $(CXX_FLAGS) -dynamiclib -undefined suppress -flat_namespace $^ -o $@ $(LD_FLAGS)
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.c
|
$(BUILD_DIR)/%.o: %.c
|
||||||
@echo $@
|
@echo $@
|
||||||
@$(CC) -c $(CC_FLAGS) -MMD -MP -MF $(BUILD_DIR)/$*.d $< -o $@
|
@$(CC) -c $(CC_FLAGS) -MMD -MP -MF $(BUILD_DIR)/$*.d $< -o $@
|
||||||
|
|||||||
Reference in New Issue
Block a user