mirror of https://github.com/zxdos/zxuno.git
137 lines
2.9 KiB
Makefile
137 lines
2.9 KiB
Makefile
# Common declarations for Makefiles.
|
|
#
|
|
# SPDX-FileCopyrightText: 2021 Ivan Tatarinov <ivan-tat@ya.ru>
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
#
|
|
# Supported environments:
|
|
# * GNU on Linux, FreeBSD etc.
|
|
# * GNU on Windows NT (using MinGW/MSYS/Cygwin/WSL)
|
|
|
|
ifndef ZXSDK
|
|
|
|
# ZXSDK
|
|
|
|
# Root (if set acts as a flag of the properly configured environment variables)
|
|
export ZXSDK = $(patsubst %/,%,$(abspath $(dir $(lastword $(MAKEFILE_LIST)))))
|
|
_path = $(ZXSDK)
|
|
|
|
# Root of platform specific files
|
|
ifeq ($(OS),Windows_NT)
|
|
ifeq ($(PROCESSOR_ARCHITECTURE),X86)
|
|
ZXSDK_PLATFORM = $(ZXSDK)/windows-x86
|
|
else ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
|
|
ZXSDK_PLATFORM = $(ZXSDK)/windows-x86
|
|
else ifeq ($(PROCESSOR_ARCHITECTURE),EM64T)
|
|
ZXSDK_PLATFORM = $(ZXSDK)/windows-x86
|
|
else
|
|
$(warning Unsupported platform: "$(PROCESSOR_ARCHITECTURE)")
|
|
ZXSDK_PLATFORM = $(ZXSDK)/windows-x86
|
|
endif
|
|
else
|
|
ZXSDK_PLATFORM = $(ZXSDK)
|
|
endif
|
|
export ZXSDK_PLATFORM
|
|
|
|
# "bin" directory (platform specific)
|
|
_path := $(_path):$(ZXSDK_PLATFORM)/bin
|
|
|
|
# "lib" directory (platform specific)
|
|
ifeq ($(OS),Windows_NT)
|
|
_path := $(_path):$(ZXSDK_PLATFORM)/lib
|
|
else
|
|
export LD_LIBRARY_PATH = $(ZXSDK_PLATFORM)/lib
|
|
endif
|
|
|
|
# SDCC
|
|
|
|
# Root (platform specific)
|
|
export SDCCHOME = $(ZXSDK_PLATFORM)/opt/sdcc
|
|
|
|
# "bin" directory (platform specific)
|
|
_path := $(_path):$(SDCCHOME)/bin
|
|
|
|
# "include" directory (platform specific)
|
|
ifeq ($(OS),Windows_NT)
|
|
SDCCINCLUDE = $(SDCCHOME)/include
|
|
else
|
|
SDCCINCLUDE = $(SDCCHOME)/share/sdcc/include
|
|
endif
|
|
export SDCCINCLUDE
|
|
|
|
# "lib" directory (platform specific)
|
|
ifeq ($(OS),Windows_NT)
|
|
SDCCLIB = $(SDCCHOME)/lib
|
|
else
|
|
SDCCLIB = $(SDCCHOME)/share/sdcc/lib
|
|
endif
|
|
export SDCCLIB
|
|
|
|
# Z88DK
|
|
|
|
# Root
|
|
Z88DK = $(ZXSDK)/src/z88dk
|
|
|
|
# "bin" directory
|
|
_path := $(_path):$(Z88DK)/bin
|
|
|
|
# Configuration file
|
|
ZCCCFG = $(Z88DK)/lib/config
|
|
ifeq ($(OS),Windows_NT)
|
|
# Fix paths under Cygwin for Z88DK on Windows
|
|
ifeq ($(shell echo $$OSTYPE),cygwin)
|
|
ZCCCFG := $(shell cygpath -m $(ZCCCFG))
|
|
endif
|
|
endif
|
|
export ZCCCFG
|
|
|
|
# PATH
|
|
|
|
export PATH := $(_path):$(PATH)
|
|
#undefine _path
|
|
|
|
endif # !ZXSDK
|
|
|
|
# Default values
|
|
|
|
-include $(ZXSDK)/conf.mk
|
|
|
|
# Shared directory for downloaded files
|
|
DOWNLOADS ?= $(shell realpath $(ZXSDK)/../.downloads)
|
|
|
|
# C compiler
|
|
ifeq ($(BUILD),mingw32)
|
|
CC = i686-w64-mingw32-gcc
|
|
else ifeq ($(BUILD),mingw64)
|
|
CC = x86_64-w64-mingw32-gcc
|
|
endif
|
|
|
|
# Filename suffixes (platform specific)
|
|
ifeq ($(BUILD),mingw32)
|
|
EXESUFFIX = .exe
|
|
DLLSUFFIX = .dll
|
|
else ifeq ($(BUILD),mingw64)
|
|
EXESUFFIX = .exe
|
|
DLLSUFFIX = .dll
|
|
else
|
|
ifeq ($(OS),Windows_NT)
|
|
EXESUFFIX = .exe
|
|
DLLSUFFIX = .dll
|
|
else
|
|
EXESUFFIX =
|
|
DLLSUFFIX = .so
|
|
endif
|
|
endif
|
|
|
|
# Default path where to install files (platform specific)
|
|
ifeq ($(BUILD),mingw32)
|
|
USE_PREFIX ?= $(ZXSDK)/windows-x86
|
|
else ifeq ($(BUILD),mingw64)
|
|
USE_PREFIX ?= $(ZXSDK)/windows-x86_64
|
|
else
|
|
USE_PREFIX ?= $(ZXSDK_PLATFORM)
|
|
endif
|
|
|
|
# Version of SJAsmPlus compiler to use
|
|
USE_SJASMPLUS_VERSION ?= z00m128
|