# 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

CFLAGS += -Os

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

OBJECT_FILES = \
	ecs_err \
	ecs_sign \
	ecs_lib \
	ecs_ossl \
	ecs_vrf

#	ecs_asn1

HEADER_FILES = \
	ecs_locl

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

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

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

clean:
	$(RM) $(OUTDIR)

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

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

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

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

