# Makefile for qlwm

# Compiler
CXX  		= g++
CXXFLAGS	= -pipe -O2
#CXXFLAGS	= -Wall -pipe -DDEBUGMSG
#CXXFLAGS	= -pipe -DDEBUGMSG

# include files
INCPATH		= -I/usr/X11R6/include -I$(QTDIR)/include

# libraries
LFLAGS		= -L/usr/X11R6/lib -L$(QTDIR)/lib
LIBS		= -lXext -lX11 -lm -lqt

# Linker
LINK		= g++

# Meta-object compiler
MOC		= $(QTDIR)/bin/moc

# objects
DESTDIR = ./
TARGET  = qlwm
OBJECTS = main.o qapp.o toolbar.o xwindow.o procbar.o winlist.o menu.o pager.o apbar.o keyboard.o defaults.o rubber.o wborder.o
SRCMOC  = moc_xwindow.cpp moc_menu.cpp moc_wborder.cpp

# Implicit rules

.SUFFIXES: .cpp

.cpp.o:
	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
	
####### Build rules

all: $(DESTDIR)$(TARGET)

$(DESTDIR)$(TARGET): $(OBJECTS) 
	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)

depend:
	makedepend *.cpp 2> /dev/null

# MOC rules
xwindow.o: moc_xwindow.cpp
menu.o: moc_menu.cpp
wborder.o: moc_wborder.cpp

moc: moc_$(SRCMOC).cpp

moc_xwindow.cpp: xwindow.h
	$(MOC) xwindow.h -o moc_xwindow.cpp

moc_menu.cpp: menu.h
	$(MOC) menu.h -o moc_menu.cpp

moc_wborder.cpp: wborder.h
	$(MOC) wborder.h -o moc_wborder.cpp

clean:
	-rm -f $(SRCMOC) $(OBJECTS) $(TARGET) $(TARGET).core
