#
# Protean MacOS X (Darwin) Makefile definitions
#

# 1) System specific additional libraries, include paths, etc
#    (Where to find X11 libraries, etc)
#

SYSTEM_INCLUDES = 
SYSTEM_LDFLAGS = 
SYSTEM_LIBS = -lresolv -lpcap -lpthread

# 2) System specific capabilities
# Must choose appropriate for the following:
#
# A) -DHAVE_CUSERID (preferred) or -DHAVE_GETLOGIN for cuserid() or getlogin()
#     functions to obtain user's login name (We may change this to getpwd() 
#     if that is better across different platforms and login environments)
#
# B) -DHAVE_LOCKF (preferred) or -D_LOCKF for lockf() or flock() file locking
#     functions to attempt exclusive lock on writing to files
# 
# C) Specify -DHAVE_DIRFD if you system provides the "dirfd()" function
#    (Most don't have it defined ... but some do)
#
# D) Optionally specify -DHAVE_ASSERT if your system has a built-in ASSERT()
#    routine.
#
# E) Some systems (SOLARIS/SUNOS) have a few gotchas which require
#    some #ifdefs to avoid compiler warnings ... so you might need
#    to specify -DSOLARIS or -DSUNOS depending on your OS.
#
# F) Uncomment this if you have the NRL IPv6+IPsec software
#DNETSEC = -DNETSEC -I/usr/inet6/include
#
# (We export these for other Makefiles as needed)
#

SYSTEM_HAVES = -DMACOSX -DECN_SUPPORT -DHAVE_IPV6 -DHAVE_ASSERT -DHAVE_GETLOGIN -DHAVE_FLOCK \
-D_FILE_OFFSET_BITS=64 -DHAVE_DIRFD -DUSE_SELECT

SYSTEM_SRC = ../protolib/src/unix/bpfCap.cpp

# The "SYSTEM" keyword can be used for dependent makes
SYSTEM = macosx

# TBD - provide means to build universal Mac OSX library (x86/arm64)

CC = g++
SYSTEM_CFLAGS = -Wall -Wcast-align -fPIC
SYSTEM_SOFLAGS = -dynamiclib 
SYSTEM_SOEXT = dylib
RANLIB = ranlib
AR = ar

include Makefile.common
