#
#	Makefile for the MPR - Michael's Portable Runtime
#
#	Copyright (c) Embedthis Software LLC, 2003-2009. All Rights Reserved.
#
#	This is an all-in-one build where all the MPR source files are catenated into as few files as possible. 
#	See http://hg.embedthis.com/mpr if you require the full source for the MPR.
#

include 			.makedep

ifeq ($(BLD_MPR_DIR),)

	TARGETS					+= $(BLD_LIB_DIR)/libmpr$(BLD_LIB)
	MPR_OBJECTS				+= mprLib

	ifeq ($(BLD_FEATURE_OPENSSL),1)
		MAKE_IFLAGS			+= $(BLD_OPENSSL_IFLAGS)
		OPENSSL_IMPORTS		+= $(patsubst %,$(BLD_LIB_DIR)/%, $(BLD_OPENSSL_IMP_LIBS))
	endif
	ifeq ($(BLD_FEATURE_MATRIXSSL),1)
		MAKE_IFLAGS			+= $(BLD_MATRIXSSL_IFLAGS)
		MATRIXSSL_IMPORTS	+= $(patsubst %,$(BLD_LIB_DIR)/%, $(BLD_MATRIXSSL_IMP_LIBS))
	endif

	ifeq ($(BLD_FEATURE_REGEXP),1)
		TARGETS				+= $(BLD_LIB_DIR)/libpcre$(BLD_LIB)
		REGEXP_IMPORTS 		+= $(patsubst %,$(BLD_LIB_DIR)/%, $(BLD_REGEXP_IMP_LIBS))
	endif

	ifeq ($(BLD_FEATURE_SSL),1)
		TARGETS				+= $(BLD_LIB_DIR)/libmprssl$(BLD_LIB)
		SSL_OBJECTS			+= mprSsl
	endif

	TARGETS					+= $(BLD_BIN_DIR)/makerom$(BLD_EXE)

	ifeq ($(BLD_FEATURE_HTTP_CLIENT),1)
		TARGETS				+= $(BLD_BIN_DIR)/http$(BLD_EXE)
	endif
else
	MPR_IMPORTS 			+= $(patsubst %,$(BLD_LIB_DIR)/%, $(BLD_MPR_LIBS))
endif

compileTargets: 	imports $(TARGETS)

#
#	MPR library
#
$(BLD_LIB_DIR)/libmpr$(BLD_LIB): $(OBJECTS)
	@bld --library $(BLD_LIB_DIR)/libmpr $(MPR_OBJECTS)

#
#	Regular Expression (pcre) library
#
$(BLD_LIB_DIR)/libpcre$(BLD_LIB): $(OBJECTS)
	@bld --library $(BLD_LIB_DIR)/libpcre mprPcre

#
#	SSL library
#
$(BLD_LIB_DIR)/libmprssl$(BLD_LIB): $(OBJECTS)
	@bld --library $(BLD_LIB_DIR)/libmprssl --search "$(BLD_SSL_DEP_LIBPATHS)" --libs "mpr $(BLD_SSL_DEP_LIBS)" \
		$(SSL_OBJECTS)

#
#	makerom utility
#
$(BLD_BIN_DIR)/makerom$(BLD_EXE): $(OBJECTS) $(BLD_LIB_DIR)/libmpr$(BLD_LIB)
	@bld --exe $(BLD_BIN_DIR)/makerom$(BLD_EXE) --search "$(BLD_SSL_LIBPATHS)" --libs "$(BLD_MPR_LIBS) \
		$(BLD_SSL_LIBS)" makerom

#
#	http utility
#
$(BLD_BIN_DIR)/http$(BLD_EXE): $(OBJECTS) $(BLD_LIB_DIR)/libmpr$(BLD_LIB)
	@bld --exe $(BLD_BIN_DIR)/http$(BLD_EXE) --search "$(BLD_SSL_LIBPATHS)" --libs "$(BLD_MPR_LIBS) $(BLD_SSL_LIBS)" http

#
#	Import required libraries
#
imports: $(OPENSSL_IMPORTS) $(MATRIXSSL_IMPORTS) $(REGEXP_IMPORTS) $(MPR_IMPORTS)

$(MATRIXSSL_IMPORTS): $(patsubst %,$(BLD_MATRIXSSL_IMP_LIBPATH)/%, $(BLD_MATRIXSSL_IMP_LIBS))
	getlib $(BLD_MATRIXSSL_IMP_LIBPATH)/$(notdir $@)

$(OPENSSL_IMPORTS): $(patsubst %,$(BLD_OPENSSL_IMP_LIBPATH)/%, $(BLD_OPENSSL_IMP_LIBS))
	getlib $(BLD_OPENSSL_IMP_LIBPATH)/$(notdir $@)

$(REGEXP_IMPORTS): $(patsubst %,$(BLD_REGEXP_IMP_LIBPATH)/%, $(BLD_REGEXP_IMP_LIBS))
	getlib $(BLD_REGEXP_IMP_LIBPATH)/$(notdir $@)

$(MPR_IMPORTS): $(patsubst %,$(BLD_MPR_LIBPATH)/%, $(BLD_MPR_LIBS))
	getlib $(BLD_MPR_LIBPATH)/$(notdir $@)

cleanExtra:
	rm -f $(OPENSSL_IMPORTS) $(MATRIXSSL_IMPORTS)
