# Special config for native MacOS SSL (Secure Transport) instead of OpenSSL
PKG_CPPFLAGS=-I. -Icommon -Ikms -Iutf8proc \
	-DBSON_COMPILATION -DBSON_EXTRA_ALIGN \
	-DMONGOC_COMPILATION -DMONGOC_HAVE_SASL_CLIENT_DONE \
	-DMONGOC_ENABLE_SSL_SECURE_TRANSPORT -DMONGOC_ENABLE_CRYPTO_COMMON_CRYPTO \
	-DKMS_MESSAGE_ENABLE_CRYPTO -DKMS_MESSAGE_ENABLE_CRYPTO_COMMON_CRYPTO \
	-D_DARWIN_C_SOURCE

LIBBSON=bson/bcon.o bson/bson-clock.o bson/bson-context.o common/common-md5.o \
	bson/bson-error.o bson/bson-iso8601.o bson/bson-iter.o bson/bson-json.o \
	bson/bson-keys.o bson/bson-md5.o bson/bson-memory.o bson/bson-oid.o \
	bson/bson-reader.o bson/bson-string.o bson/bson-timegm.o bson/bson-utf8.o \
	bson/bson-value.o bson/bson.o bson/bson-decimal128.o jsonsl/jsonsl.o

LIBMONGOC=mongoc/mongoc-array.o common/common-b64.o mongoc/mongoc-buffer.o \
	mongoc/mongoc-bulk-operation.o mongoc/mongoc-client-pool.o mongoc/mongoc-client.o \
	mongoc/mongoc-cluster.o mongoc/mongoc-collection.o mongoc/mongoc-counters.o \
	mongoc/mongoc-cursor-array.o mongoc/mongoc-cursor.o mongoc/mongoc-database.o \
	mongoc/mongoc-gridfs-file-list.o mongoc/mongoc-gridfs-file-page.o \
	mongoc/mongoc-gridfs-file.o mongoc/mongoc-gridfs.o mongoc/mongoc-index.o \
	mongoc/mongoc-stream-gridfs.o mongoc/mongoc-init.o mongoc/mongoc-list.o mongoc/mongoc-log.o \
	mongoc/mongoc-rand-common-crypto.o mongoc/mongoc-read-prefs.o mongoc/mongoc-rpc.o \
	mongoc/mongoc-sasl.o mongoc/mongoc-scram.o mongoc/mongoc-socket.o mongoc/mongoc-ssl.o \
	mongoc/mongoc-stream-buffered.o	mongoc/mongoc-stream-socket.o mongoc/mongoc-stream-tls.o \
	mongoc/mongoc-stream.o mongoc/mongoc-uri.o mongoc/mongoc-util.o \
	mongoc/mongoc-write-command.o mongoc/mongoc-write-concern.o mongoc/mongoc-topology-description-apm.o \
	mongoc/mongoc-async.o mongoc/mongoc-async-cmd.o mongoc/mongoc-host-list.o \
	mongoc/mongoc-set.o mongoc/mongoc-server-description.o mongoc/mongoc-topology-description.o \
	mongoc/mongoc-topology.o mongoc/mongoc-topology-scanner.o mongoc/mongoc-version-functions.o \
	mongoc/mongoc-memcmp.o mongoc/mongoc-server-stream.o mongoc/mongoc-find-and-modify.o \
	mongoc/mongoc-read-concern.o mongoc/mongoc-secure-transport.o mongoc/mongoc-apm.o \
	mongoc/mongoc-crypto.o mongoc/mongoc-crypto-common-crypto.o mongoc/mongoc-handshake.o \
	mongoc/mongoc-stream-tls-secure-transport.o \
	mongoc/mongoc-cluster-sasl.o mongoc/mongoc-cmd.o \
	mongoc/mongoc-change-stream.o mongoc/mongoc-client-session.o mongoc/mongoc-cluster-cyrus.o \
	mongoc/mongoc-compression.o mongoc/mongoc-cyrus.o \
	mongoc/mongoc-stream-file.o mongoc/mcd-rpc.o mongoc/mongoc-deprioritized-servers.o  \
	mongoc/mongoc-opts.o mongoc/mongoc-opts-helpers.o \
	mongoc/mongoc-cursor-cmd.o mongoc/mongoc-cursor-cmd-deprecated.o \
	mongoc/mongoc-cursor-find.o mongoc/mongoc-cursor-find-cmd.o mongoc/mongoc-cursor-find-opquery.o \
	mongoc/mongoc-cursor-legacy.o mongoc/mongoc-error.o mongoc/mongoc-aggregate.o \
	mongoc/mongoc-client-side-encryption.o mongoc/mongoc-cursor-change-stream.o mongoc/mongoc-change-stream.o \
	mongoc/mongoc-cluster-aws.o mongoc/mongoc-generation-map.o mongoc/mongoc-timeout.o \
	mongoc/mongoc-server-monitor.o mongoc/mongoc-topology-background-monitoring.o common/common-thread.o \
	mongoc/mongoc-optional.o mongoc/mongoc-server-api.o mongoc/mongoc-http.o mongoc/mongoc-shared.o mongoc/mongoc-ts-pool.o \
	utf8proc/utf8proc.o

LIBKMS=kms/hexlify.o kms/kms_crypto_apple.o kms/kms_kv_list.o kms/kms_request.o \
	kms/kms_response.o kms/kms_b64.o kms/kms_crypto_libcrypto.o kms/kms_decrypt_request.o kms/kms_message.o \
	kms/kms_request_opt.o kms/kms_response_parser.o kms/kms_caller_identity_request.o	\
	kms/kms_encrypt_request.o kms/kms_port.o kms/kms_request_str.o kms/sort.o

PKG_LIBS=-Lmongoc -lstatmongoc -Lbson -lstatbson -Lkms -lstatkms -lz -lsasl2 -lresolv -framework Security
STATLIB = mongoc/libstatmongoc.a bson/libstatbson.a kms/libstatkms.a

# mongo-c-driver uses some legacy apis: https://jira.mongodb.org/browse/CDRIVER-2722
PKG_CFLAGS=-mmacosx-version-min=10.8

# For development only
# PKG_CFLAGS= -Wall -pedantic
all: clean

$(SHLIB): $(STATLIB)

$(STATLIB): $(LIBBSON) $(LIBMONGOC) $(LIBKMS)
	$(AR) rcs bson/libstatbson.a $(LIBBSON)
	$(AR) rcs mongoc/libstatmongoc.a $(LIBMONGOC)
	$(AR) rcs kms/libstatkms.a $(LIBKMS)

clean:
	rm -f $(SHLIB) $(STATLIB) $(LIBBSON) $(LIBMONGOC) $(LIBKMS) $(OBJECTS)
