OUTFILE=BlockOut
OPTCOMMON=-pipe
LIBRARIES=-lqt -lkdeui -lkdecore -lXext
OPTLINK=-L/usr/X11/lib -L$(QTDIR)/lib -L$(KDEDIR)/lib $(OPTCOMMON) $(LIBRARIES)
OPTC=-I$(QTDIR)/include -I$(KDEDIR)/include -Wall $(OPTCOMMON)

nonmocobjects= Draw3D.o Figure.o Obstacle.o PerformGamePlay.o QtDraw3D.o CubeContainer.o Settings.o
mocobjects=$(OUTFILE).o GameViewWidget.o

.PHONY: doc install

$(OUTFILE): $(nonmocobjects) $(mocobjects)
	g++ $(mocobjects) $(nonmocobjects) -o $(OUTFILE) $(OPTLINK)

$(mocobjects): %.o: %.cpp
	moc $(patsubst %.cpp, %.h, $<) -o $(patsubst %.cpp, %.moc, $<)
	g++ $(OPTC) -c $< -o $@
$(nonmocobjects): %.o: %.cpp
	g++ $(OPTC) -c $< -o $@

clean:
	rm *.o $(OUTFILE)
doc:
	rm -rf doc
	kdoc -d doc BlockOut *.h

install:
	cp share $(KDEDIR) -r
	cp BlockOut $(KDEDIR)/bin
	
$(OUTFILE).o: $(OUTFILE).cpp $(OUTFILE).h Draw3D.h Figure.h Obstacle.h PerformGamePlay.h CubeContainer.h Settings.h
Draw3D.o: Draw3D.h Draw3D.cpp
Figure.o: Figure.h Figure.cpp Draw3D.h CubeContainer.h
Obstacle.o: Obstacle.h Obstacle.cpp Draw3D.h Figure.h CubeContainer.h
PerformGamePlay.o: PerformGamePlay.h PerformGamePlay.cpp  Draw3D.h Figure.h CubeContainer.h
GameViewWidget.o: GameViewWidget.h GameViewWidget.cpp QtDraw3D.h Draw3D.h CubeContainer.h
QtDraw3D.o: QtDraw3D.h QtDraw3D.cpp Draw3D.h
CubeContainer.o: CubeContainer.h CubeContainer.cpp Draw3D.h
Settings.o: Settings.h Settings.cpp
