# CONFIG.Common.iosCommon # # This file is maintained by the build community. # # Definitions for all Apple iOS builds # Sites may override these definitions in CONFIG_SITE.Common.iosCommon # or CONFIG_SITE..iosCommon #------------------------------------------------------- # Include definitions common to all Unix targets include $(CONFIG)/os/CONFIG.Common.UnixCommon # Include common gnu compiler definitions include $(CONFIG)/CONFIG.gnuCommon #------------------------------------------------------- # Valid build types VALID_BUILDS = Ioc #------------------------------------------------------- # operating system class (include/os/) OS_CLASS = iOS #-------------------------------------------------- # GNU and SDK directories GNU_DIR = $(PLATFORM_DIR)/Developer/usr SDK_DIR = $(PLATFORM_DIR)/Developer/SDKs/$(IOS_PLATFORM).sdk #------------------------------------------------------- # Build architecture flags # ARCH_CLASS must contain a list of CPU architectures which must be # valid arguments to the -arch options for the cc and ld commands. # ARCH_CLASS is defined in a CONFIG_SITE file which is not loaded # until after this file. # ARCH_DEP_FLAGS = $(addprefix -arch ,$(ARCH_CLASS)) ARCH_DEP_CFLAGS += $(ARCH_DEP_FLAGS) ARCH_DEP_LDFLAGS += $(ARCH_DEP_FLAGS) #-------------------------------------------------- # Operating system flags OP_SYS_CFLAGS += -isysroot $(SDK_DIR) OP_SYS_LDFLAGS += -isysroot $(SDK_DIR) #------------------------------------------------------- # Compiler definitions: CC_GNU = gcc CCC_GNU = g++ CMPLR_CLASS_GNU = gcc CC_LLVM_GNU = llvm-gcc CCC_LLVM_GNU = llvm-g++ CMPLR_CLASS_LLVM_GNU = gcc CC_CLANG = clang CCC_CLANG = clang++ CMPLR_CLASS_CLANG = clang CMPLR_CLASS = $(CMPLR_CLASS_$(COMPILER)) # Convert the iOS platform to lowercase for passing to xcrun's sdk parameter XCRUN_SDK_BASE = $(shell echo $(IOS_PLATFORM) | tr A-Z a-z) #------------------------------------------------------- # Linker flags GNU_LDLIBS_YES = OP_SYS_LDFLAGS += -dynamic -Z -L$(SDK_DIR)/usr/lib -L$(SDK_DIR)/usr/lib/system #------------------------------------------------------- # Shared libraries SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION) SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \ -install_name $(abspath $(INSTALL_LIB))/$@ \ -compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \ -current_version $(SHRLIB_VERSION) SHRLIB_SUFFIX_BASE = .dylib SHRLIB_SUFFIX = .$(SHRLIB_VERSION)$(SHRLIB_SUFFIX_BASE) LOADABLE_SHRLIB_LDFLAGS = -bundle -flat_namespace -undefined suppress #-------------------------------------------------- # code flags CODE_CFLAGS = -fno-common -Wno-unused-value CODE_CXXFLAGS = -fno-common # # Add support for Objective-C source # vpath %.m $(USR_VPATH) $(ALL_SRC_DIRS) %.o: %.m $(COMPILE.c) -c $< #-------------------------------------------------- # Allow site overrides -include $(CONFIG)/os/CONFIG_SITE.Common.iosCommon -include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).iosCommon #-------------------------------------------------- # Find the Xcode programs for the selected SDK CC := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find $(CC_$(COMPILER))) CCC := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find $(CCC_$(COMPILER))) AR := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find ar) -rc LD := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find ld) -r RANLIB := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find ranlib)