summaryrefslogtreecommitdiff
path: root/core/plat
diff options
context:
space:
mode:
authorruki <[email protected]>2021-03-25 00:02:28 +0800
committerruki <[email protected]>2021-03-24 18:15:22 +0800
commite62ee28ef645169cf5a71582b1dfc0db039bc8ed (patch)
treee36750c534546eae4c607cbfea48f567103336c5 /core/plat
parent8936f11d510960caacf1fa8bcead1bedbef6a964 (diff)
add iphoneos support
Diffstat (limited to 'core/plat')
-rw-r--r--core/plat/iphoneos/config.h22
-rw-r--r--core/plat/iphoneos/config.mak1
-rw-r--r--core/plat/iphoneos/prefix.mak167
-rw-r--r--core/plat/macosx/prefix.mak6
4 files changed, 193 insertions, 3 deletions
diff --git a/core/plat/iphoneos/config.h b/core/plat/iphoneos/config.h
new file mode 100644
index 000000000..e55edbc80
--- /dev/null
+++ b/core/plat/iphoneos/config.h
@@ -0,0 +1,22 @@
+#ifndef XM_CONFIG_H
+#define XM_CONFIG_H
+
+// packages
+// [packages]
+
+// major version
+#define XM_CONFIG_VERSION_MAJOR [major]
+
+// minor version
+#define XM_CONFIG_VERSION_MINOR [minor]
+
+// alter version
+#define XM_CONFIG_VERSION_ALTER [alter]
+
+// build version
+#define XM_CONFIG_VERSION_BUILD [build]
+
+// small
+#define XM_CONFIG_SMALL [small]
+
+#endif
diff --git a/core/plat/iphoneos/config.mak b/core/plat/iphoneos/config.mak
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/core/plat/iphoneos/config.mak
@@ -0,0 +1 @@
+
diff --git a/core/plat/iphoneos/prefix.mak b/core/plat/iphoneos/prefix.mak
new file mode 100644
index 000000000..d81e6edba
--- /dev/null
+++ b/core/plat/iphoneos/prefix.mak
@@ -0,0 +1,167 @@
+# architecture makefile configure
+
+# prefix & suffix
+BIN_PREFIX =
+BIN_SUFFIX = .b
+
+OBJ_PREFIX =
+OBJ_SUFFIX = .o
+
+LIB_PREFIX = lib
+LIB_SUFFIX = .a
+
+DLL_PREFIX =
+DLL_SUFFIX = .dylib
+
+ASM_SUFFIX = .S
+
+# target arch
+TARGETARCH := $(if $(findstring x86_64,$(BUILD_ARCH)),-arch x86_64,$(TARGETARCH))
+TARGETARCH := $(if $(findstring arm64,$(BUILD_ARCH)),-arch arm64,$(TARGETARCH))
+TARGETARCH := $(if $(findstring i386,$(BUILD_ARCH)),-arch i386,$(TARGETARCH))
+TARGETARCH += -miphoneos-version-min=10.0
+
+# prefix
+PRE_ := $(if $(BIN),$(BIN)/$(PRE),xcrun -sdk iphoneos )
+
+# cc
+CC = $(PRE_)clang
+ifeq ($(CXFLAGS_CHECK),)
+CC_CHECK = ${shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi }
+CXFLAGS_CHECK := $(call CC_CHECK,-ftrapv,)
+export CXFLAGS_CHECK
+endif
+
+# ld
+LD = $(PRE_)clang
+ifeq ($(LDFLAGS_CHECK),)
+LD_CHECK = ${shell if $(LD) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi }
+LDFLAGS_CHECK := $(call LD_CHECK,-ftrapv,)
+export LDFLAGS_CHECK
+endif
+
+# tool
+MM = $(PRE_)clang
+AR = $(PRE_)ar
+STRIP = $(PRE_)strip
+RANLIB = $(PRE_)ranlib
+AS = $(PRE_)clang
+RM = rm -f
+RMDIR = rm -rf
+CP = cp
+CPDIR = cp -r
+MKDIR = mkdir -p
+MAKE = make -r
+
+# cxflags: .c/.cc/.cpp files
+CXFLAGS_RELEASE = -fvisibility=hidden
+CXFLAGS_DEBUG = -g -D__tb_debug__
+CXFLAGS = $(TARGETARCH) -c -Wall -Werror -Wno-error=deprecated-declarations -Qunused-arguments
+CXFLAGS-I = -I
+CXFLAGS-o = -o
+
+# opti
+ifeq ($(SMALL),y)
+CXFLAGS_RELEASE += -Os
+else
+CXFLAGS_RELEASE += -O3
+endif
+
+# prof
+ifeq ($(PROF),y)
+CXFLAGS += -g -fno-omit-frame-pointer
+else
+CXFLAGS_RELEASE += -fomit-frame-pointer
+CXFLAGS_DEBUG += -fno-omit-frame-pointer $(CXFLAGS_CHECK)
+endif
+
+# cflags: .c files
+CFLAGS_RELEASE =
+CFLAGS_DEBUG =
+CFLAGS = \
+ -std=c99 \
+ -D_GNU_SOURCE=1 -D_REENTRANT \
+ -fno-math-errno -fno-tree-vectorize
+
+# ccflags: .cc/.cpp files
+CCFLAGS_RELEASE =
+CCFLAGS_DEBUG =
+CCFLAGS = \
+ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
+ -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
+
+# mxflags: .m/.mm files
+MXFLAGS_RELEASE = -fvisibility=hidden
+MXFLAGS_DEBUG = -g -D__tb_debug__
+MXFLAGS = \
+ $(TARGETARCH) -c -Wall -Werror -Wno-error=deprecated-declarations -Qunused-arguments \
+ $(ARCH_CXFLAGS) -fmessage-length=0 -pipe -fpascal-strings \
+ "-DIBOutlet=__attribute__((iboutlet))" \
+ "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" \
+ "-DIBAction=void)__attribute__((ibaction)"
+MXFLAGS-I = -I
+MXFLAGS-o = -o
+
+# opti
+ifeq ($(SMALL),y)
+MXFLAGS_RELEASE += -Os
+else
+MXFLAGS_RELEASE += -O3
+endif
+
+# prof
+ifeq ($(PROF),y)
+MXFLAGS += -g -fno-omit-frame-pointer
+else
+MXFLAGS_RELEASE += -fomit-frame-pointer
+MXFLAGS_DEBUG += -fno-omit-frame-pointer $(LDFLAGS_CHECK)
+endif
+
+# mflags: .m files
+MFLAGS_RELEASE =
+MFLAGS_DEBUG =
+MFLAGS = -std=c99
+
+# mmflags: .mm files
+MMFLAGS_RELEASE =
+MMFLAGS_DEBUG =
+MMFLAGS =
+
+# ldflags
+LDFLAGS_ARCH := $(if $(findstring arm64,$(BUILD_ARCH)),,-pagezero_size 10000 -image_base 100000000)
+LDFLAGS_RELEASE =
+LDFLAGS_DEBUG =
+LDFLAGS = $(TARGETARCH) -all_load $(LDFLAGS_ARCH) -framework CoreFoundation -framework Foundation
+LDFLAGS-L = -L
+LDFLAGS-l = -l
+LDFLAGS-f =
+LDFLAGS-o = -o
+
+# prof
+ifeq ($(PROF),y)
+else
+LDFLAGS_RELEASE += -s
+LDFLAGS_DEBUG += -ftrapv
+endif
+
+# asflags
+ASFLAGS_RELEASE =
+ASFLAGS_DEBUG =
+ASFLAGS = $(TARGETARCH) -c -Wall
+ASFLAGS-I = -I
+ASFLAGS-o = -o
+
+# arflags
+ARFLAGS_RELEASE =
+ARFLAGS_DEBUG =
+ARFLAGS = -cr
+ARFLAGS-o =
+
+# shflags
+SHFLAGS_RELEASE = -s
+SHFLAGS = $(ARCH_LDFLAGS) -dynamiclib
+
+# config
+include $(PLAT_DIR)/config.mak
+
+
diff --git a/core/plat/macosx/prefix.mak b/core/plat/macosx/prefix.mak
index cf6665032..2cdf8481b 100644
--- a/core/plat/macosx/prefix.mak
+++ b/core/plat/macosx/prefix.mak
@@ -16,9 +16,9 @@ DLL_SUFFIX = .dylib
ASM_SUFFIX = .S
# cpu bits
-BITS := $(if $(findstring x86_64,$(BUILD_ARCH)),64,)
-BITS := $(if $(findstring arm64,$(BUILD_ARCH)),64,)
-BITS := $(if $(findstring i386,$(BUILD_ARCH)),32,)
+BITS := $(if $(findstring x86_64,$(BUILD_ARCH)),64,$(BITS))
+BITS := $(if $(findstring arm64,$(BUILD_ARCH)),64,$(BITS))
+BITS := $(if $(findstring i386,$(BUILD_ARCH)),32,$(BITS))
BITS := $(if $(BITS),$(BITS),$(shell getconf LONG_BIT))
# prefix