
# target (linux, windows)
TARGET = linux

ifeq ($(TARGET),linux)
	CC = gcc
	INCLUDE = -I/usr/include
	BIN = mesaflash
	LIBS = /usr/lib/libpci.so
endif

ifeq ($(TARGET),windows)
	MINGW = c:/MinGW
	CC = $(MINGW)/bin/gcc.exe
	INCLUDE = -I$(MINGW)/include
	BIN = mesaflash.exe
	LIBS = -lwsock32 libpci.dll
endif

RM = rm -f

MATHLIB = -lm
OPT = -O0
#DEBUG = -g -pedantic -Wall -Wextra
DEBUG = -g -Wall -Wextra
#DEBUG = -g -Wall
CFLAGS = $(INCLUDE) $(OPT) $(DEBUG) $(MATHLIB)

objects = main.o eeprom.o flash_spi.o device_eth.o lbp16.o device_pci.o hostmot2.o
mesaflash_objects = main.o eeprom.o flash_spi.o device_eth.o lbp16.o device_pci.o hostmot2.o

all : $(objects)
	$(CC) -o $(BIN) $(mesaflash_objects) $(MATHLIB) $(LIBS)

main.o : main.c devices.h eeprom.h device_eth.h
	$(CC) $(CFLAGS) -c main.c

eeprom.o : eeprom.c devices.h eeprom.h device_eth.h device_pci.h hostmot2.h lbp16.h
	$(CC) $(CFLAGS) -c eeprom.c

device_pci.o : device_pci.c eeprom.h flash_spi.h hostmot2.h device_pci.h
	$(CC) $(CFLAGS) -c device_pci.c

device_eth.o : device_eth.c eeprom.h device_eth.h hostmot2.h lbp16.h
	$(CC) $(CFLAGS) -c device_eth.c

flash_spi.o : flash_spi.c eeprom.h flash_spi.h hostmot2.h
	$(CC) $(CFLAGS) -c flash_spi.c

lbp16.o : lbp16.c lbp16.h
	$(CC) $(CFLAGS) -c lbp16.c

hostmot2.o : hostmot2.c hostmot2.h lbp16.h eeprom.h
	$(CC) $(CFLAGS) -c hostmot2.c

clean :
	$(RM) $(BIN) *.o
