CC              = gcc
GITCOUNT        = $(shell git rev-list HEAD --count)
CFLAGS          = -Wall -g -O -DMINGW32 -Ilibusb-win32 -Ihidapi -DGITCOUNT='"$(GITCOUNT)"'
LDFLAGS         = -s

# Windows
LIBS            += -lhid -lsetupapi
HIDSRC          = hidapi/hid-windows.c

PROG_OBJS       = pic32prog.o target.o executive.o hid.o serial.o \
                  adapter-pickit2.o adapter-hidboot.o adapter-an1388.o\
                  adapter-bitbang.o adapter-stk500v2.o adapter-uhb.o \
                  adapter-an1388-uart.o configure.o \
                  family-mx1.o family-mx3.o family-mz.o
#PROG_OBJS      += adapter-mpsse.o
#LIBS           += -Llibusb-win32/x86 -lusb0_x86

# Compiling Windows binary from Linux
ifeq (/usr/bin/i586-mingw32msvc-gcc,$(wildcard /usr/bin/i586-mingw32msvc-gcc))
    CC          = i586-mingw32msvc-gcc
endif
ifeq (/usr/bin/i686-w64-mingw32-gcc,$(wildcard /usr/bin/i686-w64-mingw32-gcc))
    CC          = i686-w64-mingw32-gcc
endif

all:            pic32prog.exe

pic32prog.exe:  $(PROG_OBJS)
		$(CC) $(LDFLAGS) -o $@ $(PROG_OBJS) $(LIBS)

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

###
adapter-an1388.o: adapter-an1388.c adapter.h hidapi/hidapi.h pic32.h
adapter-hidboot.o: adapter-hidboot.c adapter.h hidapi/hidapi.h pic32.h
adapter-mpsse.o: adapter-mpsse.c adapter.h
adapter-pickit2.o: adapter-pickit2.c adapter.h pickit2.h pic32.h
executive.o: executive.c pic32.h
pic32prog.o: pic32prog.c target.h localize.h
target.o: target.c target.h adapter.h localize.h pic32.h
