MAINSRC  = main.c
MAINHEAD = main.h
MAINOBJ  = main.o
EXE      = xsensors
GUISRC   = gui.c
GUIHEAD  = gui.h
GUIOBJ   = gui.o
CHIPSSRC = chips.c
CHIPSHEAD= chips.h
CHIPSOBJ = chips.o
CC       = gcc
CFLAGS   = -ansi -Wall -O2 `gtk-config --cflags`
DEBUGCFLAGS   = -ansi -Wall -g -DDEBUG `gtk-config --cflags`
INCLUDES = -I/usr/local/include
LIBS     = -lsensors `gtk-config --libs`

all: $(EXE)

$(EXE): $(MAINOBJ) $(GUIOBJ) $(CHIPSOBJ)
	$(CC) -o $@ $(CFLAGS) $(INCLUDES) $(LIBS) $(GUIOBJ) $(CHIPSOBJ) $(MAINOBJ)

$(GUIOBJ): $(GUISRC) $(MAINHEAD) $(GUIHEAD) $(CHIPSHEAD)
	$(CC) -c -o $@ $(CFLAGS) $(INCLUDES) $(GUISRC)

$(CHIPSOBJ): $(CHIPSSRC) $(MAINHEAD) $(GUIHEAD) $(CHIPSHEAD)
	$(CC) -c -o $@ $(CFLAGS) $(INCLUDES) $(CHIPSSRC)

$(MAINOBJ): $(MAINSRC) $(MAINHEAD) $(GUIHEAD)
	$(CC) -c -o $@ $(CFLAGS) $(INCLUDES) $(MAINSRC)

debug: debugmain debuggui debugchips
	$(CC) -o $(EXE) $(DEBUGCFLAGS) $(INCLUDES) $(LIBS) $(GUIOBJ) $(CHIPSOBJ) $(MAINOBJ)

debuggui: $(GUISRC) $(MAINHEAD) $(GUIHEAD) $(CHIPSHEAD)
	$(CC) -c -o $(GUIOBJ) $(DEBUGCFLAGS) $(INCLUDES) $(GUISRC)

debugchips: $(CHIPSSRC) $(MAINHEAD) $(GUIHEAD) $(CHIPSHEAD)
	$(CC) -c -o $(CHIPSOBJ) $(DEBUGCFLAGS) $(INCLUDES) $(CHIPSSRC)

debugmain: $(MAINSRC) $(MAINHEAD) $(GUIHEAD)
	$(CC) -c -o $(MAINOBJ) $(DEBUGCFLAGS) $(INCLUDES) $(MAINSRC)
    
backup:
	mkdir backup-`date +%m%d%y-%H-%M`
	cp -a $(MAINSRC) $(MAINHEAD) $(GUISRC) $(GUIHEAD) $(CHIPSSRC) $(CHIPSHEAD) backup-`date +%m%d%y-%H-%M`

clean:
	rm -f *.o $(EXE)
