# CONFIG.darwinCommon.darwinCommon
#
# Common definitions for darwin builds
# Sites may override these definitions in CONFIG_SITE.darwinCommon.darwinCommon
#-------------------------------------------------------

# Include definitions common to all Unix targets
include $(CONFIG)/os/CONFIG.Common.UnixCommon

# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon

#
# Set OS-specific information
#
OS_CLASS = Darwin

#
# Build architecture flags
#   For Darwin, ARCH_CLASS may be empty, or may 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)

#
# Special flags for Darwin
#   No common blocks (as required when using shared libraries)
#
OP_SYS_CFLAGS += -fno-common

#
# Darwin os definition
#
OP_SYS_CPPFLAGS += -Ddarwin

#
# Always compile in debugging symbol table information
#
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g

#
# Libraries for command-line editing.
#
LDLIBS_READLINE = -lreadline

#
# Command-line input support
#
COMMANDLINE_LIBRARY=READLINE

GNU_DIR = /usr

# Apple soft-links these compilers to clang/clang++
CMPLR_CLASS = clang
CC = cc
CCC = c++
GNU = NO

#
# Darwin shared libraries
#
SHRLIB_LDFLAGS = -dynamiclib -undefined dynamic_lookup \
    -install_name $(shell $(FULLPATHNAME) $(INSTALL_LIB))/$@ \
    $(addprefix -compatibility_version , $(SHRLIB_VERSION)) \
    $(addprefix -current_version , $(SHRLIB_VERSION))
SHRLIB_SUFFIX_BASE = .dylib
SHRLIB_SUFFIX = $(addprefix ., $(SHRLIB_VERSION))$(SHRLIB_SUFFIX_BASE)

LOADABLE_SHRLIB_LDFLAGS = -bundle -undefined dynamic_lookup

#
# Position-independent code is the default on Darwin.
#
CODE_CFLAGS = 
CODE_CXXFLAGS = 

#
# Add support for Objective-C source
#
vpath %.m $(USR_VPATH) $(ALL_SRC_DIRS)
%.o: %.m
	$(COMPILE.c) -c $<

#
# Header dependency file generation
#
HDEPENDS_METHOD = MKMF

#--------------------------------------------------
# Allow site overrides
-include $(CONFIG)/os/CONFIG_SITE.darwinCommon.darwinCommon
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).darwinCommon
