# Copyright 2010 by Nest Labs, Inc. All rights reserved.
#
# This program is confidential and proprietary to Nest Labs, Inc.,
# and may not be reproduced, published or disclosed to others without
# company authorization.
#

DEPTH = ../../

include $(DEPTH)Makefile.config

OUTDIR = $(OBJ_DIR)
SRCDIR = ./
INCDIR = ./

OBJECT_FILES = \
	ech_err \
	ech_key \
	ech_lib \
	ech_ossl

HEADER_FILES = \
	ech_locl

OBJECTS = $(OBJECT_FILES:%=$(OUTDIR)/%.o)
HEADERS = $(HEADER_FILES:%=$(INCDIR)/%.h)

all: $(OUTDIR) $(LIB_DIR)/libecdh.a

$(OUTDIR):
	$(MKDIR) $(OUTDIR)

clean:
	$(RM) $(OUTDIR)

$(OUTDIR)/%.o: $(SRCDIR)/%.c $(HEADERS)
	$(CC) $(CFLAGS) $< -o $@

$(OUTDIR)/%.o: $(SRCDIR)/%.cpp $(HEADERS)
	$(CC) $(CFLAGS) $< -o $@

$(OUTDIR)/libecdh.a: $(OBJECTS)
	$(ARCHIVE) $@ $(OBJECTS)
	$(RANLIB) $@

$(LIB_DIR)/libecdh.a: $(OUTDIR)/libecdh.a
	$(MKDIR) $(dir $@)
	$(CP) $< $@

