diff --git a/Makefile.cross b/Makefile.cross new file mode 100755 index 0000000..4d0775d --- /dev/null +++ b/Makefile.cross @@ -0,0 +1,743 @@ +ifeq ($(SHOW_MAKE_EVENT), TRUE) +$(info MAKEFILES:$(MAKEFILES)) +$(info MAKEFILES_LIST:$(MAKEFILES_LIST)) +$(info SHELL:$(SHELL)) +$(info MAKESHELL:$(MAKESHELL)) +$(info MAKE:$(MAKE)) +$(info MAKELEVEL:$(MAKELEVEL)) +$(info MAKECMDGOALS:$(MAKECMDGOALS)) +$(info SUFFIXES:$(SUFFIXES)) +$(info LIBPATTERNS:$(.LIBPATTERNS)) +endif + +TARGET_STRIP ?= TRUE + +$(info Make $(TARGET_OBJ): $(CURDIR)) +SHELL := /bin/sh + +ifeq ($(DEBUG), TRUE) +TARGET_OUT_DIR ?= debug/ +else +TARGET_OUT_DIR ?= release/ +endif + +# default install directory +ifeq ($(DIR), ) +INSTALL_ROOT := $(addprefix ../,../release) +else +INSTALL_ROOT := $(addprefix ../,$(DIR)) +endif + +# install directory + + +# Check host OS and set shell command +# RM : delete file command +RM = rm -rf +MKDIR = mkdir -p +CP = cp -f + + +# Set Kernel Source Code Path For Build Driver +ifeq ($(TARGET_OBJ), DRV) +R16_KERNEL := $(shell echo ${ALLWINNER_R16_KERNEL}) +R311_KERNEL := $(shell echo ${ALLWINNER_R311_KERNEL}) +endif + +R16_SDK_INCLUDE := $(shell echo ${R16_SDK_INCLUDE}) +R16_SDK_LIBDIR := $(shell echo ${R16_SDK_LIBDIR}) +R311_SDK_INCLUDE := $(shell echo ${R311_SDK_INCLUDE}) +R311_SDK_LIBDIR := $(shell echo ${R311_SDK_LIBDIR}) + +TARGET_EXT_WIN := .dll + +CPU_R16_DIR := R16 +CPU_R311_DIR := R311 +CPU_LINUX_DIR := LINUX +CPU_WIN32_DIR := WIN32 +CPU_WIN64_DIR := WIN64 + +# Set ext name of driver +ifeq ($(TARGET_TYPE), KO) +TARGET_EXT := .ko +else ifeq ($(TARGET_TYPE), DLL) +TARGET_EXT := .so +else ifeq ($(TARGET_TYPE), SDK) +TARGET_EXT := .so +else ifeq ($(TARGET_TYPE), LIB) +TARGET_EXT := .a +TARGET_EXT_WIN := .lib +else ifeq ($(TARGET_TYPE), EXE) +TARGET_EXT := .exe +TARGET_EXT_WIN := .exe +else ifeq ($(TARGET_TYPE), SH) +UNMAKE_PROCESS := TRUE +else +$(error Unknown TARGET_TYPE Value Of [$(TARGET_TYPE)], It's Must Be Set Of KO/EXE/DLL/LIB/SDK) +endif + +# Set prefix name of driver +ifeq ($(TARGET_TYPE), LIB) +TARGET_PREFIX := lib +else ifeq ($(TARGET_TYPE), SDK) +TARGET_PREFIX := lib +else +TARGET_PREFIX := +endif + +ifneq ($(MAKE_TARGET), ) +MAKECMD_COLOR := \033[36;48m\033[1m$(shell env printf "%-10s" {$(MAKE_TARGET)}) \033[0m +else +MAKECMD_COLOR := +endif + +CLEAN_COLOR := $(MAKECMD_COLOR)\033[31;48m\033[1m[CLEAN]\033[0m +PATH_COLOR := \033[34;48m\033[1m($(CURDIR))\033[0m +INSTALL_PATH_COLOR := \033[34;48m\033[1m(TO $(INSTALL_ROOT))\033[0m +INSTALL_COLOR := \033[36;48m\033[1m[INSTALL]\033[0m +PRE_INSTALL_COLOR := \033[36;48m\033[1m[PRE INSTALL]\033[0m +INSTALL_USER_ITEM_COLOR := \033[36;48m\033[1m[INSTALL USER ITEMS]\033[0m +INSTALL_MULT_PLAT_COLOR := \033[36;48m\033[1m[INSTALL MULTPLATFORM ITEMS]\033[0m +INSTALL_IDK_ITEM_COLOR := \033[36;48m\033[1m[INSTALL IDK ITEMS]\033[0m + + +TARGET_TYPE_COLOR := \t\033[35;48m\033[1m$(shell env printf "%5s" [$(TARGET_TYPE)])\033[0m +TARGET_OBJ_COLOR := \t\033[34;48m\033[1m$(shell env printf "%5s" [$(TARGET_OBJ)])\033[0m +TARGET_MIX_COLOR := $(TARGET_TYPE_COLOR)$(TARGET_OBJ_COLOR) +PLAT_R311_COLOR := $(MAKECMD_COLOR)\033[32;48m\033[1m$(shell env printf "%-8s" [R311])\033[0m$(TARGET_MIX_COLOR) +PLAT_R16_COLOR := $(MAKECMD_COLOR)\033[32;48m\033[1m$(shell env printf "%-8s" [R16])\033[0m$(TARGET_MIX_COLOR) +PLAT_LINUX_COLOR := $(MAKECMD_COLOR)\033[32;48m\033[1m$(shell env printf "%-8s" [LINUX])\033[0m$(TARGET_MIX_COLOR) +PLAT_WIN32_COLOR := $(MAKECMD_COLOR)\033[32;48m\033[1m$(shell env printf "%-8s" [WIN-x86])\033[0m$(TARGET_MIX_COLOR) +PLAT_WIN64_COLOR := $(MAKECMD_COLOR)\033[32;48m\033[1m$(shell env printf "%-8s" [WIN-x64])\033[0m$(TARGET_MIX_COLOR) + + +# set gcc flags +ifeq ($(DEBUG), TRUE) +DEBUG_CFLAGS := -g3 +endif + +DEBUG_CFLAGS += -O2 + +LINUX_EXTFLAG += $(DEBUG_CFLAGS) +WIN32_EXTFLAG += $(DEBUG_CFLAGS) + +ifeq ($(DISABLE_WARRING), TRUE) +LINUX_EXTFLAG += -w +WIN32_EXTFLAG += -w +endif + +ifeq ($(TARGET_OBJ), DRV) +# kernel module driver build flags +DRV_CFLAGS := -m32 -D__KERNEL__ \ + -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_MODNAME=KBUILD_STR($(TARGET_NAME))" \ + -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing \ + -fno-common -Werror-implicit-function-declaration -Wno-format-security \ + -fno-delete-null-pointer-checks -O2 -msoft-float -pipe -Iarch/powerpc \ + -ffixed-r2 -mmultiple -mno-altivec -mno-spe -mspe=no -funit-at-a-time \ + -mno-string -fno-stack-protector -fomit-frame-pointer -Wdeclaration-after-statement \ + -Wno-pointer-sign + +ARM_DRV_CFLAGS := -nostdinc \ + -isystem /mnt/data/cross_tools/mvr16/armv7-marvell-linux-gnueabi-softfp_i686/bin/../lib/gcc/arm-openwrt-linux/4.6.4/include \ + -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_MODNAME=KBUILD_STR($(TARGET_NAME))" \ + -D__KERNEL__ -mlittle-endian -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ + -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security \ + -fno-delete-null-pointer-checks -Os -marm -fno-dwarf2-cfi-asm -fno-omit-frame-pointer -mapcs \ + -mno-sched-prolog -fstack-protector -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=7 \ + -march=armv7-a -msoft-float -Uarm -Wno-unused-but-set-variable -fno-omit-frame-pointer \ + -fno-optimize-sibling-calls -g -pg -Wdeclaration-after-statement -Wno-pointer-sign \ + -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -DMV_LINUX -DMV_CPU_LE -DMV_ARM + +R16_EXTFLAG += $(DEBUG_CFLAGS) $(ARM_DRV_CFLAGS) -I$(R16_KERNEL)/arch/arm/include \ + -Iarch/arm/include/generated -I$(R16_KERNEL)/include \ + -include $(R16_KERNEL)/include/linux/kconfig.h \ + -I$(R16_KERNEL)/arch/arm/plat-armada/common \ + -I$(R16_KERNEL)/arch/arm/plat-armada/linux_oss \ + -I$(R16_KERNEL)/arch/arm/plat-armada/mv_hal \ + -I$(R16_KERNEL)/arch/arm/plat-armada/mv_hal/neta \ + -I$(R16_KERNEL)/arch/arm/mach-armadaxp/armada_xp_family \ + -I$(R16_KERNEL)/arch/arm/mach-armadaxp/config \ + -I$(R16_KERNEL)/arch/arm/mach-armadaxp/mv_hal_if \ + -I$(R16_KERNEL)/arch/arm/plat-armada/mv_drivers_lsp/mv_trace \ + -I$(R16_KERNEL)/arch/arm/plat-armada/mv_drivers_lsp/mv_switch \ + -I$(R16_KERNEL)/arch/arm/mach-armadaxp/include \ + -I$(R16_KERNEL)/arch/arm/plat-armada/include \ + -I$(R16_KERNEL)/arch/arm/include/generated + +R16_DRV_LDFLAGS = -EL -r -T $(R16_KERNEL)/scripts/module-common.lds --build-id +else ifeq ($(TARGET_OBJ), APP) +# mvr16 linux kernel include head files path and MCU special arguments +R16_EXTFLAG += $(DEBUG_CFLAGS) -I$(R16_SDK_INCLUDE) -I$(R16_SDK_INCLUDE)/dbus-1.0 -I$(R16_SDK_INCLUDE)/glib-2.0 +R311_EXTFLAG += $(DEBUG_CFLAGS) -I$(R311_SDK_INCLUDE) -I$(R311_SDK_INCLUDE)/dbus-1.0 -I$(R311_SDK_INCLUDE)/glib-2.0 + +# show all warring +#CFLAGS += -Wall + +R16_DRV_LDFLAGS := -L$(R16_SDK_LIBDIR) +R311_DRV_LDFLAGS := -L$(R311_SDK_LIBDIR) +else ifeq ($(TARGET_OBJ), SH) +else +$(error Unknown TARGET_OBJ Value Of [$(TARGET_OBJ)], It's Must Be Set Of APP/DRV) +endif + +# set output directory +ifeq ($(DEBUG), TRUE) +BUILD_DIR := debug +else +BUILD_DIR := release +endif + +# build object output root +OUTPUT_DIR := ./.build/ + +# build object output path +PLAT_R16_DIR := $(OUTPUT_DIR)$(TARGET_NAME)_$(TARGET_TYPE)_$(TARGET_OBJ)_r16_$(BUILD_DIR) +PLAT_R311_DIR := $(OUTPUT_DIR)$(TARGET_NAME)_$(TARGET_TYPE)_$(TARGET_OBJ)_r311_$(BUILD_DIR) +PLAT_LINUX_DIR := $(OUTPUT_DIR)$(TARGET_NAME)_$(TARGET_TYPE)_$(TARGET_OBJ)_linux_$(BUILD_DIR) +PLAT_WIN32_DIR := $(OUTPUT_DIR)$(TARGET_NAME)_$(TARGET_TYPE)_$(TARGET_OBJ)_win32_$(BUILD_DIR) +PLAT_WIN64_DIR := $(OUTPUT_DIR)$(TARGET_NAME)_$(TARGET_TYPE)_$(TARGET_OBJ)_win64_$(BUILD_DIR) + +# Install path +ifeq ($(TARGET_TYPE), SDK) +PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/sdk/$(CPU_LINUX_DIR)/ +PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/sdk.debug/$(CPU_LINUX_DIR)/ + +PLAT_WIN32_PUBLISH_DIR := $(INSTALL_ROOT)/sdk/$(CPU_WIN32_DIR)/ +PLAT_WIN32_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/sdk.debug/$(CPU_WIN32_DIR)/ +else ifeq ($(TARGET_BOX), test) +PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/$(TARGET_NAME)//$(CPU_LINUX_DIR)/ +PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(TARGET_NAME).debug/$(CPU_LINUX_DIR)/ + +PLAT_WIN32_PUBLISH_DIR := $(INSTALL_ROOT)/$(TARGET_NAME)/$(CPU_WIN32_DIR)/ +PLAT_WIN32_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(TARGET_NAME).debug/$(CPU_WIN32_DIR)/ +else +ifeq ($(TARGET_BOX), ) +PLAT_R16_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_R16_DIR)/$(TARGET_BOX)/ +PLAT_R16_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_R16_DIR)/$(TARGET_BOX)/ + +PLAT_R311_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_R311_DIR)/$(TARGET_BOX)/ +PLAT_R311_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_R311_DIR)/$(TARGET_BOX)/ + + +ifeq ($(WIN32_USER_INS_DIR), ) +PLAT_WIN32_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_WIN32_DIR)/$(TARGET_BOX)/ +PLAT_WIN64_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_WIN64_DIR)/$(TARGET_BOX)/ +else +PLAT_WIN32_PUBLISH_DIR := $(INSTALL_ROOT)/$(WIN32_USER_INS_DIR)/$(CPU_WIN32_DIR)/$(TARGET_BOX)/ +PLAT_WIN64_PUBLISH_DIR := $(INSTALL_ROOT)/$(WIN64_USER_INS_DIR)/$(CPU_WIN64_DIR)/$(TARGET_BOX)/ +endif + +ifeq ($(LINUX_USER_INS_DIR), ) +PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_LINUX_DIR)/$(TARGET_BOX)/ +else +PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR)/$(CPU_LINUX_DIR)/$(TARGET_BOX)/ +endif + +PLAT_R16_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_R16_DIR)/$(TARGET_BOX)/ +PLAT_R311_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_R16_DIR)/$(TARGET_BOX)/ + +ifeq ($(WIN32_USER_INS_DIR), ) +PLAT_WIN32_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_WIN32_DIR)/$(TARGET_BOX)/ +PLAT_WIN64_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_WIN64_DIR)/$(TARGET_BOX)/ +else +PLAT_WIN32_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(WIN32_USER_INS_DIR).debug/$(CPU_WIN32_DIR)/$(TARGET_BOX)/ +PLAT_WIN64_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(WIN64_USER_INS_DIR).debug/$(CPU_WIN64_DIR)/$(TARGET_BOX)/ +endif + +ifeq ($(LINUX_USER_INS_DIR), ) +PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)/ +else +PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR).debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)/ +endif + +else +PLAT_R16_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_R16_DIR)/$(TARGET_BOX)-r16/ +PLAT_R311_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_R16_DIR)/$(TARGET_BOX)-r311/ + +ifeq ($(WIN32_USER_INS_DIR), ) +PLAT_WIN32_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_WIN32_DIR)/$(TARGET_BOX)-win32/ +PLAT_WIN64_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_WIN64_DIR)/$(TARGET_BOX)-win64/ +else +PLAT_WIN32_PUBLISH_DIR := $(INSTALL_ROOT)/$(WIN32_USER_INS_DIR)/$(CPU_WIN32_DIR)/$(TARGET_BOX)-win32/ +PLAT_WIN64_PUBLISH_DIR := $(INSTALL_ROOT)/$(WIN64_USER_INS_DIR)/$(CPU_WIN64_DIR)/$(TARGET_BOX)-win64/ +endif + +ifeq ($(LINUX_USER_INS_DIR), ) +PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/drivers/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/ +else +PLAT_LINUX_PUBLISH_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR)/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/ +endif +PLAT_R16_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_R16_DIR)/$(TARGET_BOX)-r16/ +PLAT_R311_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_R16_DIR)/$(TARGET_BOX)-r311/ + +ifeq ($(WIN32_USER_INS_DIR), ) +PLAT_WIN32_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_WIN32_DIR)/$(TARGET_BOX)-win32/ +PLAT_WIN64_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_WIN64_DIR)/$(TARGET_BOX)-win64/ +else +PLAT_WIN32_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(WIN32_USER_INS_DIR).debug/$(CPU_WIN32_DIR)/$(TARGET_BOX)-win32/ +PLAT_WIN64_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(WIN64_USER_INS_DIR).debug/$(CPU_WIN64_DIR)/$(TARGET_BOX)-win64/ +endif + +ifeq ($(LINUX_USER_INS_DIR), ) +PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/drivers.debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/ +else +PLAT_LINUX_PUBLISH_DEBUG_DIR := $(INSTALL_ROOT)/$(LINUX_USER_INS_DIR).debug/$(CPU_LINUX_DIR)/$(TARGET_BOX)-linux/ +endif +endif + +endif + +ifneq ($(TARGET_IDK_USER_ITEMS), ) +TARGET_IDK_USER_ITEMS_DIR := $(INSTALL_ROOT)/idk/$(TARGET_NAME)/ +endif + +# Actual build targets +#BUILD_TARGET += $(SUB_TARGETS) +BUILD_TARGET := + +ifneq ($(UNMAKE_PROCESS), TRUE) +PLAT_R16_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-r16$(TARGET_EXT) +PLAT_R311_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-r311$(TARGET_EXT) +PLAT_LINUX_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-linux$(TARGET_EXT) +PLAT_WIN32_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-win32$(TARGET_EXT_WIN) +PLAT_WIN32_LIB_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-win32.lib +PLAT_WIN64_TARGET := $(TARGET_PREFIX)$(TARGET_NAME)-win64$(TARGET_EXT_WIN) + +ifeq ($(PLAT_R16), TRUE) + BUILD_TARGET += $(PLAT_R16_TARGET) + PLAT_R16_CFLAGS += -DPLATFORM_R16 $(R16_EXTFLAG) + PLAT_R16_LDFLAGS += $(R16_DRV_LDFLAGS) + PLAT_R16_LIBFLAGS := $(R16_LIBFLAGS) + PLAT_R16_LIBS := $(R16_LIBS) +endif + +ifeq ($(PLAT_R311), TRUE) + BUILD_TARGET += $(PLAT_R311_TARGET) + PLAT_R311_CFLAGS += -DPLATFORM_R311 $(R311_EXTFLAG) + PLAT_R311_LDFLAGS += $(R311_DRV_LDFLAGS) + PLAT_R311_LIBFLAGS := $(R311_LIBFLAGS) + PLAT_R311_LIBS := $(R311_LIBS) +endif + +# linux board +ifeq ($(PLAT_LINUX), TRUE) + BUILD_TARGET += $(PLAT_LINUX_TARGET) + PLAT_LINUX_CFLAGS += -DPLATFORM_CPU $(LINUX_EXTFLAG) + PLAT_LINUX_LDFLAGS += + PLAT_LINUX_LIBFLAGS := $(LINUX_LIBFLAGS) + PLAT_LINUX_LIBS := $(LINUX_LIBS) +endif + +# win32 board +ifeq ($(PLAT_WIN32), TRUE) + BUILD_TARGET += $(PLAT_WIN32_TARGET) + PLAT_WIN32_CFLAGS += -DWIN32 -DPLATFORM_CPU $(WIN32_EXTFLAG) + PLAT_WIN32_LDFLAGS += + PLAT_WIN32_LIBFLAGS := $(WIN32_LIBFLAGS) + PLAT_WIN32_LIBS := $(WIN32_LIBS) +endif + +# win64 board +ifeq ($(PLAT_WIN64), TRUE) + BUILD_TARGET += $(WIN64_TARGET) + PLAT_WIN64_CFLAGS += -m64 -D_AMD64_=1 -DWIN64 -DWIN32 -DPLATFORM_CPU $(WIN64_EXTFLAG) + PLAT_WIN64_LDFLAGS += -m64 + PLAT_WIN64_LIBFLAGS := $(WIN64_LIBFLAGS) + PLAT_WIN64_LIBS := $(WIN64_LIBS) +endif + +# CC : Cross Build Tools +# LD : Cross Link Tools +CC := gcc +OBJCOPY := objcopy +STRIP := strip +AR := ar + +R16_CROSS_CC := arm-openwrt-linux-gcc +R16_CROSS_OBJCOPY := arm-openwrt-linux-objcopy +R16_CROSS_STRIP := arm-openwrt-linux-strip +R16_CROSS_AR := arm-openwrt-linux-ar +R16_CROSS_AS := arm-openwrt-linux-as + +R311_CROSS_CC := arm-openwrt-linux-muslgnueabi-gcc +R311_CROSS_OBJCOPY := arm-openwrt-linux-muslgnueabi-objcopy +R311_CROSS_STRIP := arm-openwrt-linux-muslgnueabi-strip +R311_CROSS_AR := arm-openwrt-linux-muslgnueabi-ar +R311_CROSS_AS := arm-openwrt-linux-muslgnueabi-as + +WIN32_CROSS_CC := i686-w64-mingw32-gcc +WIN32_CROSS_AR := i686-w64-mingw32-ar +WIN32_CROSS_DLLTOOL := i686-w64-mingw32-dlltool +WIN32_CROSS_LD := i686-w64-mingw32-gcc +WIN32_CROSS_OBJCOPY := i686-w64-mingw32-objcopy +WIN32_CROSS_STRIP := i686-w64-mingw32-strip + +WIN64_CROSS_CC := x86_64-w64-mingw32-gcc +WIN64_CROSS_AR := x86_64-w64-mingw32-ar +WIN64_CROSS_LD := x86_64-w64-mingw32-gcc +WIN64_CROSS_OBJCOPY := x86_64-w64-mingw32-objcopy +WIN64_CROSS_STRIP := x86_64-w64-mingw32-strip + +ifeq ($(TARGET_TYPE), KO) +R16_CROSS_LD := arm-openwrt-linux-ld +R311_CROSS_LD := arm-openwrt-linux-muslgnueabi-ld +else +R16_CROSS_LD := $(R16_CROSS_CC) +R311_CROSS_LD := $(R311_CROSS_CC) +endif + +ifeq ($(PLAT_R16), TRUE) +PLAT_R16_OBJS := $(PLAT_R16_SRCS:%.c=$(PLAT_R16_DIR)/%.o) +PLAT_R16_OBJS += $(PLAT_R16_AS_SRCS:%.s=$(PLAT_R16_DIR)/%.o) +PLAT_R16_DEPS := $(PLAT_R16_SRCS:%.c=$(PLAT_R16_DIR)/%.d) +else +PLAT_R16_OBJS := +PLAT_R16_DEPS := +endif + +ifeq ($(PLAT_R311), TRUE) +PLAT_R311_OBJS := $(PLAT_R311_SRCS:%.c=$(PLAT_R311_DIR)/%.o) +PLAT_R311_OBJS += $(PLAT_R311_AS_SRCS:%.s=$(PLAT_R311_DIR)/%.o) +PLAT_R311_DEPS := $(PLAT_R311_SRCS:%.c=$(PLAT_R311_DIR)/%.d) +else +PLAT_R311_OBJS := +PLAT_R311_DEPS := +endif + +ifeq ($(PLAT_LINUX), TRUE) +PLAT_LINUX_OBJS := $(PLAT_LINUX_SRCS:%.c=$(PLAT_LINUX_DIR)/%.o) +PLAT_LINUX_OBJS += $(PLAT_LINUX_AS_SRCS:%.s=$(PLAT_LINUX_DIR)/%.o) +PLAT_LINUX_DEPS := $(PLAT_LINUX_SRCS:%.c=$(PLAT_LINUX_DIR)/%.d) +else +PLAT_LINUX_OBJS := +PLAT_LINUX_DEPS := +endif + +ifeq ($(PLAT_WIN32), TRUE) +PLAT_WIN32_OBJS := $(PLAT_WIN32_SRCS:%.c=$(PLAT_WIN32_DIR)/%.o) +PLAT_WIN32_OBJS += $(PLAT_WIN32_AS_SRCS:%.s=$(PLAT_WIN32_DIR)/%.o) +PLAT_WIN32_DEPS := $(PLAT_WIN32_SRCS:%.c=$(PLAT_WIN32_DIR)/%.d) +else +PLAT_WIN32_OBJS := +PLAT_WIN32_DEPS := +endif + +ifeq ($(PLAT_WIN64), TRUE) +PLAT_WIN64_OBJS := $(PLAT_WIN64_SRCS:%.c=$(PLAT_WIN64_DIR)/%.o) +PLAT_WIN64_OBJS += $(PLAT_WIN64_AS_SRCS:%.s=$(PLAT_WIN64_DIR)/%.o) +PLAT_WIN64_DEPS := $(PLAT_WIN64_SRCS:%.c=$(PLAT_WIN64_DIR)/%.d) +else +PLAT_WIN64_OBJS := +PLAT_WIN64_DEPS := +endif + +ALL_OBJS += $(PLAT_R16_OBJS) $(PLAT_LINUX_OBJS) $(PLAT_WIN32_OBJS) $(PLAT_WIN64_OBJS) +ALL_DEPS += $(PLAT_R16_DEPS) $(PLAT_LINUX_DEPS) $(PLAT_WIN32_DEPS) $(PLAT_WIN64_DEPS) + +ifneq ($(MAKECMDGOALS), clean) +ifneq ($(MAKECMDGOALS), cleanall) +ifneq ($(strip $(ALL_DEPS)),) +-include $(ALL_DEPS) +endif +endif +endif +# ifneq $(UNMAKE_PROCESS) +endif + +ifeq ($(UNMAKE_PROCESS), TRUE) +BUILD_TARGET := +endif + +ifneq ($(OPT), clean) +ifneq ($(OPT), install) +ifneq ($(MAKECMDGOALS), clean) +ifneq ($(MAKECMDGOALS), cleanall) +ifeq ($(MAKE_TARGET), ) +$(info ---------------------------------------------------------------------) +$(info | CPU | TYPE | OBJECT | Command | Source/Target |) +$(info ---------------------------------------------------------------------) +else +$(info ------------------------------------------------------------------------------) +$(info | Name | CPU | TYPE | OBJECT | Command | Source |) +$(info ------------------------------------------------------------------------------) +endif +endif +endif +endif +endif + +.PHONY : all +all: $(BUILD_TARGET) +# Build R16 +ifeq ($(PLAT_R16), TRUE) +$(PLAT_R16_TARGET): $(PLAT_R16_OBJS) + -@test -d $(TARGET_OUT_DIR) || $(MKDIR) $(TARGET_OUT_DIR) +ifeq ($(TARGET_TYPE), LIB) + @echo -e "$(PLAT_R16_COLOR) AR $@" + @$(R16_CROSS_AR) $(PLAT_R16_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(PLAT_R16_LIBS) +else + @echo -e "$(PLAT_R16_COLOR) LD $@" + @$(R16_CROSS_LD) -o $(TARGET_OUT_DIR)$@ $(PLAT_R16_LDFLAGS) $+ $(PLAT_R16_LIBS) +ifeq ($(TARGET_STRIP), TRUE) + @echo -e "$(PLAT_R16_COLOR) OBJCOPY $@.debug" + @$(R16_CROSS_OBJCOPY) --only-keep-debug $(TARGET_OUT_DIR)$@ $(TARGET_OUT_DIR)/$@.debug + @echo -e "$(PLAT_R16_COLOR) STRIP $@" + @$(R16_CROSS_STRIP) -g $(TARGET_OUT_DIR)$@ + @echo -e "$(PLAT_R16_COLOR) OBJCOPY $@" + @$(R16_CROSS_OBJCOPY) --add-gnu-debuglink=$(TARGET_OUT_DIR)$@.debug $(TARGET_OUT_DIR)$@ +endif +endif +$(PLAT_R16_DIR)/%.o : %.c + -@test -d $(dir $@) || $(MKDIR) $(dir $@) + @echo -e "$(PLAT_R16_COLOR) CC $<" + @$(R16_CROSS_CC) -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $< $(PLAT_R16_CFLAGS) + +$(PLAT_R16_DIR)/%.o : %.s + @echo -e "$(PLAT_R16_COLOR) CC $<" + @$(R16_CROSS_CC) -c $< -o $@ +endif + +ifeq ($(PLAT_R311), TRUE) +$(PLAT_R311_TARGET): $(PLAT_R311_OBJS) + -@test -d $(TARGET_OUT_DIR) || $(MKDIR) $(TARGET_OUT_DIR) +ifeq ($(TARGET_TYPE), LIB) + @echo -e "$(PLAT_R311_COLOR) AR $@" + @$(R311_CROSS_AR) $(PLAT_R311_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(PLAT_R311_LIBS) +else + @echo -e "$(PLAT_R311_COLOR) LD $@" + @$(R311_CROSS_LD) -o $(TARGET_OUT_DIR)$@ $(PLAT_R311_LDFLAGS) $+ $(PLAT_R311_LIBS) +ifeq ($(TARGET_STRIP), TRUE) + @echo -e "$(PLAT_R311_COLOR) OBJCOPY $@.debug" + @$(R311_CROSS_OBJCOPY) --only-keep-debug $(TARGET_OUT_DIR)$@ $(TARGET_OUT_DIR)/$@.debug + @echo -e "$(PLAT_R311_COLOR) STRIP $@" + @$(R311_CROSS_STRIP) -g $(TARGET_OUT_DIR)$@ + @echo -e "$(PLAT_R311_COLOR) OBJCOPY $@" + @$(R311_CROSS_OBJCOPY) --add-gnu-debuglink=$(TARGET_OUT_DIR)$@.debug $(TARGET_OUT_DIR)$@ +endif +endif +$(PLAT_R311_DIR)/%.o : %.c + -@test -d $(dir $@) || $(MKDIR) $(dir $@) + @echo -e "$(PLAT_R311_COLOR) CC $<" + @$(R311_CROSS_CC) -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $< $(PLAT_R311_CFLAGS) + +$(PLAT_R311_DIR)/%.o : %.s + @echo -e "$(PLAT_R311_COLOR) CC $<" + @$(R311_CROSS_CC) -c $< -o $@ +endif + +# Build LINUX Board +ifeq ($(PLAT_LINUX), TRUE) +$(PLAT_LINUX_TARGET): $(PLAT_LINUX_OBJS) + -@test -d $(TARGET_OUT_DIR) || $(MKDIR) $(TARGET_OUT_DIR) + +ifeq ($(TARGET_TYPE), LIB) + @echo -e "$(PLAT_LINUX_COLOR) AR $@" + @$(AR) $(PLAT_LINUX_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(PLAT_LINUX_LIBS) +else + @echo -e "$(PLAT_LINUX_COLOR) LD $@" + @$(CC) -o $(TARGET_OUT_DIR)$@ $(PLAT_LINUX_LDFLAGS) $+ $(PLAT_LINUX_LIBS) +ifeq ($(TARGET_STRIP), TRUE) + @echo -e "$(PLAT_LINUX_COLOR) OBJCOPY $@.debug" + @$(OBJCOPY) --only-keep-debug $(TARGET_OUT_DIR)$@ $(TARGET_OUT_DIR)$@.debug + @echo -e "$(PLAT_LINUX_COLOR) STRIP $@" + @$(STRIP) -g $(TARGET_OUT_DIR)$@ + @echo -e "$(PLAT_LINUX_COLOR) OBJCOPY $@" + @$(OBJCOPY) --add-gnu-debuglink=$(TARGET_OUT_DIR)$@.debug $(TARGET_OUT_DIR)$@ +endif +endif + +$(PLAT_LINUX_DIR)/%.o : %.c + -@test -d $(dir $@) || $(MKDIR) $(dir $@) + @echo -e "$(PLAT_LINUX_COLOR) CC $<" + @$(CC) -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $< $(PLAT_LINUX_CFLAGS) +endif + +# Build WIN32 Board +ifeq ($(PLAT_WIN32), TRUE) +$(PLAT_WIN32_TARGET): $(PLAT_WIN32_OBJS) + -@test -d $(TARGET_OUT_DIR) || $(MKDIR) $(TARGET_OUT_DIR) + +ifeq ($(TARGET_TYPE), LIB) + @echo -e "$(PLAT_WIN32_COLOR) AR $@" + @$(WIN32_CROSS_AR) $(PLAT_WIN32_LIBFLAGS) $(TARGET_OUT_DIR)$@ $+ $(PLAT_WIN32_LIBS) +else + @echo -e "$(PLAT_WIN32_COLOR) LD $@" + $(WIN32_CROSS_CC) -o $(TARGET_OUT_DIR)$@ $+ $(PLAT_WIN32_LDFLAGS) $(PLAT_WIN32_LIBS) +ifeq ($(TARGET_STRIP), TRUE) + @echo -e "$(PLAT_WIN32_COLOR) OBJCOPY $@.debug" + @$(WIN32_CROSS_OBJCOPY) --only-keep-debug $(TARGET_OUT_DIR)$@ $(TARGET_OUT_DIR)$@.debug + @echo -e "$(PLAT_WIN32_COLOR) STRIP $@" + @$(WIN32_CROSS_STRIP) -g $(TARGET_OUT_DIR)$@ + @echo -e "$(PLAT_WIN32_COLOR) OBJCOPY $@" + @$(WIN32_CROSS_OBJCOPY) --add-gnu-debuglink=$(TARGET_OUT_DIR)$@.debug $(TARGET_OUT_DIR)$@ +endif +ifeq ($(TARGET_TYPE), SDK) +ifneq ($(PLAT_WIN32_DEF_FILE), ) + @echo -e "$(PLAT_WIN32_COLOR) DLLTOOL $(PLAT_WIN32_LIB_TARGET)" + @$(WIN32_CROSS_DLLTOOL) -d $(PLAT_WIN32_DEF_FILE) --dllname $(TARGET_OUT_DIR)$(PLAT_WIN32_TARGET) --output-lib $(TARGET_OUT_DIR)$(PLAT_WIN32_LIB_TARGET) --kill-at +endif +endif +endif + +$(PLAT_WIN32_DIR)/%.o : %.c + -@test -d $(dir $@) || $(MKDIR) $(dir $@) + @echo -e "$(PLAT_WIN32_COLOR) CC $<" + @$(WIN32_CROSS_CC) -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $< $(PLAT_WIN32_CFLAGS) +endif + +# Build WIN64 Board +ifeq ($(PLAT_WIN64), TRUE) +$(PLAT_WIN64_TARGET): $(PLAT_WIN64_OBJS) +ifeq ($(TARGET_TYPE), LIB) + @echo -e "$(PLAT_WIN64_COLOR) AR $@" + @$(WIN64_CROSS_AR) $(PLAT_WIN64_LIBFLAGS) $@ $+ $(PLAT_WIN64_LIBS) +else + @echo -e "$(PLAT_WIN64_COLOR) LD $@" + @$(WIN64_CROSS_CC) -o $@ $+ $(PLAT_WIN64_LDFLAGS) $(PLAT_WIN64_LIBS) +ifeq ($(TARGET_STRIP), TRUE) + @echo -e "$(PLAT_WIN64_COLOR) OBJCOPY $@.debug" + @$(WIN64_CROSS_OBJCOPY) --only-keep-debug $@ $@.debug + @echo -e "$(WIN64_COLOR) STRIP $@" + @$(WIN64_CROSS_STRIP) -g $@ + @echo -e "$(WIN64_COLOR) OBJCOPY $@" + @$(WIN64_CROSS_OBJCOPY) --add-gnu-debuglink=$@.debug $@ +endif +endif + +$(PLAT_WIN64_DIR)/%.o : %.c + -@test -d $(dir $@) || $(MKDIR) $(dir $@) + @echo -e "$(PLAT_WIN64_COLOR) CC $<" + @$(WIN64_CROSS_CC) -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o $@ $< $(PLAT_WIN64_CFLAGS) +endif + +.PHONY : install +install: +ifeq ($(INSTALL_ROOT), ) + $(error usage: make install DIR=) +endif +# install custom IDK files to idk directory +ifneq ($(TARGET_IDK_USER_ITEMS), ) + -@test -d $(TARGET_IDK_USER_ITEMS_DIR) || $(MKDIR) $(TARGET_IDK_USER_ITEMS_DIR) + @echo -e "$(INSTALL_IDK_ITEM_COLOR) $(MAKECMD_COLOR) $(notdir $(TARGET_IDK_USER_ITEMS)) $(INSTALL_PATH_COLOR)" + @$(CP) $(TARGET_IDK_USER_ITEMS) $(TARGET_IDK_USER_ITEMS_DIR) +endif + +ifneq ($(PLAT_R16_DONT_INSTALL), TRUE) +# R16 targets install +ifeq ($(PLAT_R16), TRUE) + -@test -d $(PLAT_R16_PUBLISH_DIR) || $(MKDIR) $(PLAT_R16_PUBLISH_DIR) + -@test -d $(PLAT_R16_PUBLISH_DEBUG_DIR) || $(MKDIR) $(PLAT_R16_PUBLISH_DEBUG_DIR) +ifneq ($(UNMAKE_PROCESS), TRUE) + @echo -e "$(INSTALL_COLOR) $(PLAT_R16_COLOR) $(TARGET_OUT_DIR)$(PLAT_R16_TARGET) $(PLAT_R16_TARGET).debug $(INSTALL_PATH_COLOR)" + @$(CP) $(TARGET_OUT_DIR)/$(PLAT_R16_TARGET) $(PLAT_R16_PUBLISH_DIR) + @$(CP) $(TARGET_OUT_DIR)/$(PLAT_R16_TARGET).debug $(PLAT_R16_PUBLISH_DEBUG_DIR) +endif +ifneq ($(PLAT_R16_USER_INS_ITEMS), ) + @echo -e "$(INSTALL_USER_ITEM_COLOR) $(PLAT_R16_COLOR) $(notdir $(PLAT_R16_USER_INS_ITEMS)) $(INSTALL_PATH_COLOR)" + @$(CP) $(PLAT_R16_USER_INS_ITEMS) $(PLAT_R16_PUBLISH_DIR) +endif +endif +endif + +ifneq ($(PLAT_R311_DONT_INSTALL), TRUE) +# R311 targets install +ifeq ($(PLAT_R311), TRUE) + -@test -d $(PLAT_R311_PUBLISH_DIR) || $(MKDIR) $(PLAT_R311_PUBLISH_DIR) + -@test -d $(PLAT_R311_PUBLISH_DEBUG_DIR) || $(MKDIR) $(PLAT_R311_PUBLISH_DEBUG_DIR) +ifneq ($(UNMAKE_PROCESS), TRUE) + @echo -e "$(INSTALL_COLOR) $(PLAT_R311_COLOR) $(TARGET_OUT_DIR)$(PLAT_R311_TARGET) $(PLAT_R311_TARGET).debug $(INSTALL_PATH_COLOR)" + @$(CP) $(TARGET_OUT_DIR)/$(PLAT_R311_TARGET) $(PLAT_R311_PUBLISH_DIR) + @$(CP) $(TARGET_OUT_DIR)/$(PLAT_R311_TARGET).debug $(PLAT_R311_PUBLISH_DEBUG_DIR) +endif +ifneq ($(PLAT_R311_USER_INS_ITEMS), ) + @echo -e "$(INSTALL_USER_ITEM_COLOR) $(PLAT_R311_COLOR) $(notdir $(PLAT_R311_USER_INS_ITEMS)) $(INSTALL_PATH_COLOR)" + @$(CP) $(PLAT_R311_USER_INS_ITEMS) $(PLAT_R311_PUBLISH_DIR) +endif +endif +endif + +ifneq ($(PLAT_LINUX_DONT_INSTALL), TRUE) +# LINUX board targets install +ifeq ($(PLAT_LINUX), TRUE) + -@test -d $(PLAT_LINUX_PUBLISH_DIR) || $(MKDIR) $(PLAT_LINUX_PUBLISH_DIR) + -@test -d $(PLAT_LINUX_PUBLISH_DEBUG_DIR) || $(MKDIR) $(PLAT_LINUX_PUBLISH_DEBUG_DIR) +ifneq ($(UNMAKE_PROCESS), TRUE) + @echo -e "$(INSTALL_COLOR) $(PLAT_LINUX_COLOR) $(TARGET_OUT_DIR)$(PLAT_LINUX_TARGET) $(PLAT_LINUX_TARGET).debug $(INSTALL_PATH_COLOR)" + @$(CP) $(TARGET_OUT_DIR)/$(PLAT_LINUX_TARGET) $(PLAT_LINUX_PUBLISH_DIR) + @$(CP) $(TARGET_OUT_DIR)/$(PLAT_LINUX_TARGET).debug $(PLAT_LINUX_PUBLISH_DEBUG_DIR) +endif +ifneq ($(PLAT_LINUX_USER_INS_ITEMS), ) + @echo -e "$(INSTALL_USER_ITEM_COLOR) $(PLAT_LINUX_COLOR) $(notdir $(PLAT_LINUX_USER_INS_ITEMS)) $(INSTALL_PATH_COLOR)" + @$(CP) $(PLAT_LINUX_USER_INS_ITEMS) $(PLAT_LINUX_PUBLISH_DIR) +endif +ifneq ($(USER_MULTILE_PLATFORM_HEAD_ITEMS), ) + @echo -e "$(INSTALL_MULT_PLAT_COLOR) $(PLAT_LINUX_COLOR) $(notdir $(USER_MULTILE_PLATFORM_HEAD_ITEMS)) $(INSTALL_PATH_COLOR)" + @$(CP) $(USER_MULTILE_PLATFORM_HEAD_ITEMS) $(SDK_HEADFILE_PUBLIST_DIR) +endif +endif +endif + +ifneq ($(PLAT_WIN32_DONT_INSTALL), TRUE) +# WIN32 board targets install +ifeq ($(PLAT_WIN32), TRUE) +ifneq ($(PLAT_WIN32_PRE_INSTALL), ) + @echo -e "$(PRE_INSTALL_COLOR) $(PLAT_WIN32_COLOR) Running $(PLAT_WIN32_PRE_INSTALL) shell script" + @sh $(PLAT_WIN32_PRE_INSTALL) + @echo -e "$(PRE_INSTALL_COLOR) $(PLAT_WIN32_COLOR) Running $(PLAT_WIN32_PRE_INSTALL) shell script complete" +endif + + -@test -d $(PLAT_WIN32_PUBLISH_DIR) || $(MKDIR) $(PLAT_WIN32_PUBLISH_DIR) + -@test -d $(PLAT_WIN32_PUBLISH_DEBUG_DIR) || $(MKDIR) $(PLAT_WIN32_PUBLISH_DEBUG_DIR) +ifneq ($(UNMAKE_PROCESS), TRUE) + @echo -e "$(INSTALL_COLOR) $(PLAT_WIN32_COLOR) $(PLAT_WIN32_TARGET) $(PLAT_WIN32_TARGET).debug $(INSTALL_PATH_COLOR)" + @$(CP) $(TARGET_OUT_DIR)/$(PLAT_WIN32_TARGET) $(PLAT_WIN32_PUBLISH_DIR) + @$(CP) $(TARGET_OUT_DIR)/$(PLAT_WIN32_TARGET).debug $(PLAT_WIN32_PUBLISH_DEBUG_DIR) +endif +ifneq ($(PLAT_WIN32_USER_INS_ITEMS), ) + @echo -e "$(INSTALL_USER_ITEM_COLOR) $(PLAT_WIN32_COLOR) $(notdir $(PLAT_WIN32_USER_INS_ITEMS)) $(INSTALL_PATH_COLOR)" + @$(CP) $(PLAT_WIN32_USER_INS_ITEMS) $(PLAT_WIN32_PUBLISH_DIR) +endif +ifneq ($(USER_MULTILE_PLATFORM_HEAD_ITEMS), ) + @echo -e "$(INSTALL_MULT_PLAT_COLOR) $(PLAT_WIN32_COLOR) $(notdir $(USER_MULTILE_PLATFORM_HEAD_ITEMS)) $(INSTALL_PATH_COLOR)" + @$(CP) $(USER_MULTILE_PLATFORM_HEAD_ITEMS) $(SDK_HEADFILE_PUBLIST_DIR) +endif +endif +endif + +ifneq ($(PLAT_WIN64_DONT_INSTALL), TRUE) +# WIN64 board targets install +ifeq ($(PLAT_WIN64), TRUE) +ifneq ($(PLAT_WIN64_PRE_INSTALL), ) + @echo -e "$(PRE_INSTALL_COLOR) $(PLAT_WIN64_COLOR) Running $(PLAT_WIN64_PRE_INSTALL) shell script" + @sh $(PLAT_WIN64_PRE_INSTALL) + @echo -e "$(PRE_INSTALL_COLOR) $(PLAT_WIN64_COLOR) Running $(PLAT_WIN64_PRE_INSTALL) shell script complete" +endif + + -@test -d $(PLAT_WIN64_PUBLISH_DIR) || $(MKDIR) $(PLAT_WIN64_PUBLISH_DIR) + -@test -d $(PLAT_WIN64_PUBLISH_DEBUG_DIR) || $(MKDIR) $(PLAT_WIN64_PUBLISH_DEBUG_DIR) +ifneq ($(UNMAKE_PROCESS), TRUE) + @echo -e "$(INSTALL_COLOR) $(PLAT_WIN64_COLOR) $(PLAT_WIN64_TARGET) $(PLAT_WIN64_TARGET).debug $(INSTALL_PATH_COLOR)" + @$(CP) $(PLAT_WIN64_TARGET) $(PLAT_WIN64_PUBLISH_DIR) + @$(CP) $(PLAT_WIN64_TARGET).debug $(PLAT_WIN64_PUBLISH_DEBUG_DIR) +endif +ifneq ($(PLAT_WIN64_USER_INS_ITEMS), ) + @echo -e "$(INSTALL_USER_ITEM_COLOR) $(PLAT_WIN64_COLOR) $(notdir $(PLAT_WIN64_USER_INS_ITEMS)) $(INSTALL_PATH_COLOR)" + @$(CP) $(PLAT_WIN64_USER_INS_ITEMS) $(PLAT_WIN64_PUBLISH_DIR) +endif +ifneq ($(USER_MULTILE_PLATFORM_HEAD_ITEMS), ) + @echo -e "$(INSTALL_MULT_PLAT_COLOR) $(PLAT_WIN64_COLOR) $(notdir $(USER_MULTILE_PLATFORM_HEAD_ITEMS)) $(INSTALL_PATH_COLOR)" + @$(CP) $(USER_MULTILE_PLATFORM_HEAD_ITEMS) $(SDK_HEADFILE_PUBLIST_DIR) +endif +endif +endif +# end of ($(DONT_INSTALL), TRUE) + +.PHONY : cleanall +cleanall: + @echo -e "$(CLEAN_COLOR) $(PATH_COLOR) $(OUTPUT_DIR) $(BUILD_TARGET) $(USER_CLEAN_ITEMS) $(notdir $(DEPEND_LIB)) $(TARGET_OUT_DIR) *.debug" + @-$(RM) $(TARGET_OUT_DIR) $(OUTPUT_DIR) $(BUILD_TARGET) $(notdir $(DEPEND_LIB)) $(USER_CLEAN_ITEMS) *.debug + +.PHONY : clean +clean: + @echo -e "$(CLEAN_COLOR) $(PATH_COLOR) $(ALL_OBJS) $(BUILD_TARGET) $(ALL_DEPS) $(USER_CLEAN_ITEMS) $(notdir $(DEPEND_LIB)) $(TARGET_OUT_DIR) *.debug" + @-$(RM) $(TARGET_OUT_DIR) $(ALL_OBJS) $(BUILD_TARGET) $(ALL_DEPS) $(USER_CLEAN_ITEMS) $(notdir $(DEPEND_LIB)) *.debug