# Include variables
QTDIR= /usr/lib/qt-2.3.1
INC_KDE= /usr/include/kde
INC_OSPMD= ../inc
INCL= -I$(QTDIR)/include -I$(INC_KDE) -I$(INC_OSPMD)

# Library flags
KDELIB2= /usr/lib/kde2
LDIRS= -L$(QTDIR)/lib -L$(KDELIB2) -L/usr/X11R6/lib
LIBS= -lkdecore -lkdeui -lqt-mt -lX11 -lXext -ldl


# These turn on debug printf(s) in their respective objects
# Add this to CXXFLAGS
GUI_CFLAGS= -D_OSPMD_GUI_BUTTON_CONFIG_DEBUG \
	-D_OSPMD_GUI_BATTERY_CONFIG_DEBUG \
	-D_OSPMD_GUI_BATDET_CONFIG_DEBUG \
	-D_OSPMD_GUI_BATTERY_CRITALARM_DEBUG \
	-D_OSPMD_GUI_GENINFO_DEBUG \
	-D_OSPMD_GUI_THREAD_DEBUG \
	-D_OSPMD_GUI_BATTERY_LOWALARM_DEBUG \
	-D_OSPMD_GUI_NOTIFY_OBJ_DEBUG \
	-D_OSPMD_GUI_PROPERTYSHEET_DEBUG \
	-D_OSPMD_GUI_PROPSHEET_MAIN_DEBUG

# Compile flags without optimization -O2 but with debug -g
CXXFLAGS= -pipe -g -fno-strength-reduce -Wall $(INCL) $(GUI_CFLAGS)

OBJS=   PropertySheetMain.o \
	PropertySheet.o \
	moc_PropertySheet.o \
	GUIThread.o \
	GenInfoPage.o \
	ButtonPage.o \
	moc_ButtonPage.o \
	BatteryPage.o \
	moc_BatteryPage.o \
	BatDetails.o \
	moc_BatDetails.o \
	ActionGroup.o \
	NotifyGroup.o \
	LowAlarmDialog.o \
	moc_LowAlarmDialog.o \
	CriticalAlarmDialog.o \
	moc_CriticalAlarmDialog.o \
	PowerPage.o \
	moc_PowerPage.o

all: ospmd_gui

# Describe what components go into the GUI application
ospmd_gui:  $(OBJS) libpower.a
	$(CC) $(LDIRS) -o ospmd_gui $(OBJS) libpower.a $(LIBS)
	

# Describe "target rules" that is, how to make each part required above.
PropertySheetMain.o: PropertySheet.h

PropertySheet.o: PropertySheet.h

moc_PropertySheet.cpp: PropertySheet.h
	$(QTDIR)/bin/moc PropertySheet.h -o moc_PropertySheet.cpp

GUIThread.o: GUIThread.h

GenInfoPage.o: GenInfoPage.h

ButtonPage.o: ButtonPage.h

moc_ButtonPage.cpp: ButtonPage.h
	$(QTDIR)/bin/moc ButtonPage.h -o moc_ButtonPage.cpp

BatteryPage.o: BatteryPage.h

moc_BatteryPage.cpp: BatteryPage.h
	$(QTDIR)/bin/moc BatteryPage.h -o moc_BatteryPage.cpp

BatDetails.o: BatDetails.h

moc_BatDetails.cpp: BatDetails.h
	$(QTDIR)/bin/moc BatDetails.h -o moc_BatDetails.cpp

ActionGroup.o: ActionGroup.h

NotifyGroup.o: NotifyGroup.h

LowAlarmDialog.o: LowAlarmDialog.h

moc_LowAlarmDialog.cpp: LowAlarmDialog.h
	$(QTDIR)/bin/moc LowAlarmDialog.h -o moc_LowAlarmDialog.cpp

CriticalAlarmDialog.o: CriticalAlarmDialog.h

moc_CriticalAlarmDialog.cpp: CriticalAlarmDialog.h
	$(QTDIR)/bin/moc CriticalAlarmDialog.h -o moc_CriticalAlarmDialog.cpp

PowerPage.o: PowerPage.h

moc_PowerPage.cpp: PowerPage.h
	$(QTDIR)/bin/moc PowerPage.h -o moc_PowerPage.cpp

clean:
	rm -f ospmd_gui $(OBJS) moc_*

#define the rule for generating .o files from .cpp
%.o : %.cpp
	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@
