##################################################################
#   Copyright  2004, Sebastian Heutling. All rights reserved.
#   $Id: Makefile,v 1.10 2004/09/11 15:04:24 basti Exp $
#
#   Descr. : Makefile for the keyman kde configuration tool
#   Authors: Sebastian Heutling, sheutlin@gmx.de
##################################################################
TOP     :=../..
include $(TOP)/config/make.tmpl
include ../config/make.cfg
LD      := $(CXX)
LIBBASENAME := kcm_keyman
UIFILES := kkeymanconfig actionsdialog_base
UIBUILDFILES := $(foreach f, $(UIFILES), $(f).h $(f).cpp)
MOCFILES:= $(UIFILES) keyman kdemessage keycodedialog windowclass 
FILES   := \
	actionlistviewitem \
	bindlistviewitem \
	ComPort \
	MsgPorts \
	pluginlistviewitem \
	verbose \
	actionsdialog \
	configwrap \
	$(MOCFILES)
OBJECTS  := $(foreach f, $(FILES), .$(f).lo)
DEPENDS  := $(foreach f, $(FILES), .$(f).d)
MOCJECTS := $(foreach f, $(MOCFILES), $(f).moc)
cleanfiles= \
	$(OBJECTS) $(UIBUILDFILES) $(DEPENDS) $(MOCJECTS) \
	.libs *.so 	*.a *.la .*.loT \
	ComPort.cpp ComPort.h MsgPorts.cpp MsgPorts.h

INCLUDES := -I$(QTINCLUDES) -I$(KDEINCLUDES) -I$(TOP)/server/include -I. 
DEFINES  := -DPLUGINDIR=\"$(PLUGINDIR)\" -DDATADIR=\"$(datadir)\"
CXXFLAGS += $(INCLUDES) $(DEFINES) -DQT_THREAD_SUPPORT -D_REENTRANT -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION
LIBRARIES:= -L$(KDELIBS) -L$(QTLIBS) -L$(XLIBS) -lqt-mt -lkdecore -lkio -lkdeui -lX11 -ldl -lstdc++ -lxerces-c
LDFLAGS  := -module -avoid-version -no-undefined -shared -Wl,-shared -Wl,--no-undefined -Wl,--allow-shlib-undefined -rpath $(KDELIBS)/kde3 $(LIBRARIES)
subdirs := locale

.PHONY: all clean distclean install

all: $(LIBBASENAME).so $(LIBBASENAME).la
	@$(call multimake,$(subdirs))

##############################################################
# install into home for testing
.PHONY: hinstall
HLIB=$(HOME)/.kde/lib/kde3
$(HLIB)/$(LIBBASENAME).so: $(LIBBASENAME).so
	@cp $< $@
$(HLIB)/$(LIBBASENAME).la: $(LIBBASENAME).la
	@cp $< $@
hinstall:$(HLIB)/$(LIBBASENAME).la $(HLIB)/$(LIBBASENAME).so
#
##############################################################

#WARNINGWARNINGWARNINGWARNINGWARNINGWARNINGWARNINGWARNINGWARNING
# remove this if GNU's make is finally fixed!
#$(LIBBASENAME).la: $(OBJECTS)
#WARNINGWARNINGWARNINGWARNINGWARNINGWARNINGWARNINGWARNINGWARNING
$(eval $(call ltlink_lib, $(LIBBASENAME),$(OBJECTS),$(LDFLAGS)))
$(foreach f, $(UIFILES),$(eval $(call build_ui_source,$(f),Makefile)))
$(eval $(call ltcompile_source,cpp,Makefile,$(CXXFLAGS)))
$(eval $(call build_ldepends,cpp,Makefile $(MOCJECTS),$(CXXFLAGS)))
$(eval $(call build_moc,h,Makefile))

############################################
$(eval $(call link_source,ComPort,$(TOP)/server/src))
$(eval $(call link_source,MsgPorts,$(TOP)/server/src))
############################################

$(eval $(call clean,,$(cleanfiles)))
$(eval $(call distclean,,$(cleanfiles)))

	
install:
	@$(INSTALL) -d $(DESTDIR)$(KDELIBS)/kde3
	@$(INSTALL) -d $(DESTDIR)$(KDELIBS)/../share/applnk/Settings/Peripherals
	@$(INSTALL) -d $(DESTDIR)$(KDELIBS)/../share/icons/crystalsvg/32x32/apps
	@$(INSTALL_DATA) $(LIBBASENAME).so $(DESTDIR)$(KDELIBS)/kde3
	@$(INSTALL_DATA) $(LIBBASENAME).la $(DESTDIR)$(KDELIBS)/kde3
	@$(INSTALL_DATA) keyman.desktop $(DESTDIR)$(KDELIBS)/../share/applnk/Settings/Peripherals
	@$(INSTALL_DATA) $(TOP)/icons/keyman.png $(DESTDIR)$(KDELIBS)/../share/icons/crystalsvg/32x32/apps
	@$(call multimake,$(subdirs), install)
ifeq (,$(filter clean configure distclean depend install,$(MAKECMDGOALS)))
-include $(DEPENDS)
endif

# keyman.png -> /usr/share/icons/crystalsvg/32x32/apps
