SHELL=/bin/sh

TOPDIR  := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
export TOPDIR


#
# $Source: /cvsroot/qtarch/qtarch/Makefile,v $
#

####### Files

DIALOGS = \
	ProjectDialog \
	MakeEdit \
	GridDialog \
	TMakeDialog \
	GridPrefPage \
	ModulesPrefPage \
	TabOrderDialog \
	StylePrefPage \
	GenerateDialog \
	I18NPrefPage

META_CLASSES = $(DIALOGS:%=%Data) $(DIALOGS) \
	ProjectWnd \
	Project \
	DlgObject \
	Dialog \
	ObjectList \
	DialogWnd \
	WidgetLayout \
	WidgetFrame \
	DlgParser \
	SelectedWidgetBorder \
	PreferencesDialog

CLASSES = $(META_CLASSES) \
	GuiTools \
	appconf \
	WidgetModuleMgr

HEADERS = $(CLASSES:%=%.h)

SOURCES	= $(CLASSES:%=%.cpp)

OBJECTS	= $(CLASSES:%=%.o ) \
	main.o \
	Parser.o

OBJMETA = $(META_CLASSES:%=%.moc.o)

TARGET	=	qtarch


include Makefile.common

####### Build rules

xml_d: 
	@$(MAKE) -C xml
	@echo

pixmap_d: 
	@$(MAKE) -C pixmap
	@echo

widget_d: 
	@$(MAKE) -C widget
	@echo

prop_d:	
	@$(MAKE) -C prop
	@echo

bmp_d:
	@$(MAKE) -C bmp
	@echo

layout_d:
	@$(MAKE) -C layout
	@echo

$(TARGET): $(HEADERS) $(OBJECTS) $(OBJMETA)

$(TARGET): xml_d bmp_d prop_d widget_d layout_d pixmap_d
	@echo
	@echo
	@echo "Linking $(TARGET)"
	@$(CC) $(OBJECTS) $(OBJMETA) -o $(TARGET) $(LFLAGS)

.SUFFIXES: .po .qm $(SUFFIXES)

.po.qm: $(TARGET).po
	msg2qm $< $@

TR_LANGS = de

$(patsubst %,$(TARGET)_%.po,$(TR_LANGS)): $(TARGET).po
	@if [ -f $@ ]; then \
		echo "Merging $< into $@"; \
		mergetr $@ $<; \
	else \
		echo "Creating $@"; \
		cp $< $@; \
	fi

$(TARGET).po: *.h *.cpp \
	pixmap/*.h pixmap/*.cpp \
	widget/*.h widget/*.cpp \
	prop/*.h prop/*.cpp \
	bmp/*.h bmp/*.cpp \
	layout/*.h layout/*.cpp
	@echo "Running findtr"
	@findtr $^ > $(TARGET).po

TR_FILES = $(patsubst %,qtarch_%.qm,$(TR_LANGS))

tr: $(TR_FILES)


efence: $(OBJECTS) $(OBJMETA) 
efence: xml_d bmp_d prop_d widget_d layout_d pixmap_d
	$(CC) $(OBJECTS) $(OBJMETA) -o $(TARGET) $(LFLAGS) libefence.a

run: all
	./qtarch

depend:
	@makedepend $(SOURCES) -f- >.depend 2> /dev/null
	@$(MAKE) -C xml depend
	@$(MAKE) -C pixmap depend
	@$(MAKE) -C widget depend
	@$(MAKE) -C prop depend
	@$(MAKE) -C bmp depend
	@$(MAKE) -C layout depend

gen:
	$(QTARCHBIN) -g *.dlg
	@$(MAKE) -C pixmap gen
	@$(MAKE) -C widget gen
	@$(MAKE) -C prop gen
	@$(MAKE) -C bmp gen
	@$(MAKE) -C layout gen

clean:
	-rm -f `find . -name '*.bak' -o -name '*~' -o -name '*%' -o -name '#*' `
	-rm -f *.moc.cpp $(OBJECTS) $(OBJMETA)
	-rm -f $(TR_FILES)
	@$(MAKE) -C xml clean
	@$(MAKE) -C pixmap clean
	@$(MAKE) -C widget clean
	@$(MAKE) -C prop clean
	@$(MAKE) -C bmp clean
	@$(MAKE) -C layout clean

cleaner: clean
	-rm -f $(TARGET)
	@$(MAKE) -C pixmap cleaner
	@$(MAKE) -C widget cleaner
	@$(MAKE) -C prop cleaner
	@$(MAKE) -C bmp cleaner
	@$(MAKE) -C layout cleaner

status:
	cvs status | grep Loc

doc:
	@$(MAKE) -C doc doc

