# Copyright 2011 Google Inc. All Rights Reserved.
# Author: dgentry@google.com (Denton Gentry)

CROSS_PREFIX:=$(TARGET)
CC:=$(CROSS_PREFIX)gcc
CPP:=$(CROSS_PREFIX)g++
LD:=$(CROSS_PREFIX)ld
AR:=$(CROSS_PREFIX)ar
RANLIB:=$(CROSS_PREFIX)ranlib
STRIP:=$(CROSS_PREFIX)strip

CFLAGS = -g -Os

# util.c includes htype.h, which we don't have. Skip it, we don't need it right now.
SRCS = hmx_upgrade.c hmx_upgrade_flash.c hmx_upgrade_nvram.c hmx_upgrade_system.c lib_queue.c
INCS = hmx_upgrade.h hmx_upgrade_flash.h hmx_upgrade_nvram.h hmx_upgrade_system.h lib_queue.h util.h
OBJS = $(SRCS:.c=.o)

all: libhmxupgrade.a

.c.o:
	$(CC) $(CFLAGS) -c $< -o $@

libhmxupgrade.a: $(OBJS) $(INCS)
	$(AR) rcs $@ $(OBJS)

clean:
	rm -f libhmxupgrade.a *.o
