SHELL=/bin/sh

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

DLGEDIT=/home/jharris/qt/dlgedit
DISTDIR=/tmp/dlgedit-dist-dir
VERSION=1.2
RELEASE=2
SRCVERSION=1.2.0
DLGEDITDISTDIR=dlgedit-$(VERSION)
DLGEDITDIST=dlgedit-$(VERSION)-$(RELEASE)
INSTALLDIR=/usr/local

#
# $Source: /mnt/disk2/home/jharris/cvs/dlgedit/Makefile,v $
#

####### Files

HEADERS	=	\
		ProjectDialogData.h \
		MakeEditData.h \
		ProjectWnd.h \
		Project.h \
		DlgObject.h \
		AssDialog.h \
		Dialog.h \
		ProjectDialog.h \
		MakeGen.h \
		MakeEdit.h \
		ObjectList.h \
		DialogWnd.h \
		WidgetLayout.h \
		WidgetFrame.h \
		GridDialog.h \
		GenerateDialog.h \
		DlgParser.h \
		Toolbar.h \
		StatusBar.h \
		GuiTools.h

SOURCES	=	\
		ProjectDialogData.cpp \
		MakeEditData.cpp \
		main.cpp \
		ProjectWnd.cpp \
		ObjectList.cpp \
		Project.cpp \
		DlgObject.cpp \
		AssDialog.cpp \
		Dialog.cpp \
		ProjectDialog.cpp \
		MakeGen.cpp \
		MakeEdit.cpp \
		DialogWnd.cpp \
		WidgetLayout.cpp \
		WidgetFrame.cpp \
		GridDialog.cpp \
		GenerateDialog.cpp \
		DlgParser.cpp \
		Parser.cpp \
		Toolbar.cpp \
		StatusBar.cpp \
		GuiTools.cpp

OBJECTS	=	\
		ProjectDialogData.o \
		MakeEditData.o \
		main.o  \
		ProjectWnd.o \
		DlgObject.o \
		Dialog.o \
		AssDialog.o \
		ObjectList.o \
		Project.o \
		ProjectDialog.o \
		MakeGen.o \
		MakeEdit.o \
		DialogWnd.o \
		WidgetLayout.o \
		WidgetFrame.o \
		GridDialog.o \
		GenerateDialog.o \
		DlgParser.o \
		Parser.o \
		Toolbar.o \
		StatusBar.o \
		GuiTools.o

SRCMETA	=	\
		mProjectDialogData.cpp \
		mMakeEditData.cpp \
		mProjectWnd.cpp \
		mObjectList.cpp \
		mProject.cpp \
		mDlgObject.cpp \
		mAssDialog.cpp \
		mDialog.cpp \
		mProjectDialog.cpp \
		mMakeGen.cpp \
		mMakeEdit.cpp \
		mDialogWnd.cpp \
		mWidgetLayout.cpp \
		mWidgetFrame.cpp \
		mGridDialog.cpp \
		mGenerateDialog.cpp \
		mDlgParser.cpp \
		mToolbar.cpp \
		mStatusBar.cpp

OBJMETA	=	\
		mProjectDialogData.o \
		mMakeEditData.o \
		mProjectWnd.o \
		mObjectList.o \
		mProject.o \
		mDlgObject.o \
		mAssDialog.o \
		mDialog.o \
		mProjectDialog.o \
		mMakeGen.o \
		mMakeEdit.o \
		mDialogWnd.o \
		mWidgetLayout.o \
		mWidgetFrame.o \
		mGridDialog.o \
		mGenerateDialog.o \
		mDlgParser.o \
		mToolbar.o \
		mStatusBar.o

TARGET	=	dlgedit


include Makefile.common

####### Build rules

widget_d: 
	@$(MAKE) -C widget

prop_d:	
	@$(MAKE) -C prop

bmp_d:
	@$(MAKE) -C bmp

$(TARGET): bmp_d prop_d widget_d $(HEADERS) $(OBJECTS) $(OBJMETA)
	$(CC) $(OBJECTS) $(OBJMETA) -o $(TARGET) $(LFLAGS)


efence: bmp_d prop_d widget_d $(OBJECTS) $(OBJMETA) 
	$(CC) $(OBJECTS) $(OBJMETA) -o $(TARGET) -lefence $(LFLAGS) 

run: all
	./dlgedit

depend:
	@makedepend $(SOURCES) 2> /dev/null
	@$(MAKE) -C widget depend
	@$(MAKE) -C prop depend
	@$(MAKE) -C bmp depend

clean:
	-rm -f `find . -name '*.bak' -o -name '*~' -o -name '*%' -o -name '#*' `
	-rm -f $(SRCMETA) $(OBJECTS) $(OBJMETA)
	@$(MAKE) -C widget clean
	@$(MAKE) -C prop clean
	@$(MAKE) -C bmp clean

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

whatco:
	rlog -R -L RCS/*,v widget/RCS/*,v bmp/RCS/*,v prop/RCS/*,v

dist: $(DISTDIR)/$(DLGEDITDIST).tar.gz
execdist: $(DISTDIR)/$(DLGEDITDIST)-i486-unknown-linux.tar.gz
rpm: $(DISTDIR)/$(DLGEDITDIST).i386.rpm $(DISTDIR)/$(DLGEDITDIST).src.rpm

SPEC=$(DISTDIR)/redhat/SPECS/$(DLGEDITDIST).spec

$(DISTDIR)/$(DLGEDITDIST).i386.rpm:
$(DISTDIR)/$(DLGEDITDIST).src.rpm: \
		$(DISTDIR)/$(DLGEDITDIST).tar.gz \
		$(DISTDIR)/$(DLGEDITDIST)-i486-unknown-linux.tar.gz

	ln -sf $(DISTDIR)/$(DLGEDITDIST).tar.gz \
		$(DISTDIR)/redhat/SOURCES/$(DLGEDITDIST).tar.gz

	@echo "Creating spec file"
	@echo "Description: Qt dialog editor" > $(SPEC)
	@echo "Summary: Qt dialog editor" 			>> $(SPEC)
	@echo "Name: dlgedit" 					>> $(SPEC)
	@echo "Version: $(VERSION)" 				>> $(SPEC)
	@echo "Release: $(RELEASE)" 				>> $(SPEC)
	@echo "Source: http://www.cis.ohio-state.edu/~jharris/dlgedit/$(DLGEDITDIST).tar.gz" >> $(SPEC)
	@echo "Copyright: GPL" 					>> $(SPEC)
	@echo "Group: Development/Tools" 			>> $(SPEC)
	@echo "Icon: Dlgedit.xpm" 				>> $(SPEC)
	@echo "" 						>> $(SPEC)
	@echo "%prep" 						>> $(SPEC)
	@echo "%setup" 						>> $(SPEC)
	@echo "" 						>> $(SPEC)
	@echo "%build" 						>> $(SPEC)
	@echo "cd .." 						>> $(SPEC)
	@echo "rm -rf $(DLGEDITDISTDIR)"			>> $(SPEC)
	@echo "tar xzf ../../$(DLGEDITDIST)-i486-unknown-linux.tar.gz" >> $(SPEC)
	@echo "cd $(DLGEDITDISTDIR)" 				>> $(SPEC)
	@echo "" 						>> $(SPEC)
	@echo "%install"					>> $(SPEC)
	@echo "install -m 755 -s dlgedit /usr/bin" 		>> $(SPEC)
	@echo "" 						>> $(SPEC)
	@echo "%files" 						>> $(SPEC)
	@echo "/usr/bin/dlgedit" 				>> $(SPEC)
	@echo "%doc COPYING" 					>> $(SPEC)
	@echo "%doc TODO" 					>> $(SPEC)
	@echo "%doc README" 					>> $(SPEC)
	@echo "%doc misc/DlgEdit.Template.Makefile" 		>> $(SPEC)
	@echo "%doc misc/dlgUpdate.pl" 				>> $(SPEC)
	@echo "%doc help/*.html"				>> $(SPEC)

	@echo "Need root access to begin rpm creation"
	@su -c "cd $(DISTDIR)/redhat/SPECS; \
		rpm -ba --rcfile rpmrc --clean --quiet $(SPEC)"
	@mv $(DISTDIR)/redhat/RPMS/i386/$(DLGEDITDIST).i386.rpm $(DISTDIR)
	@mv $(DISTDIR)/redhat/SRPMS/$(DLGEDITDIST).src.rpm $(DISTDIR)
	@rm $(SPEC)


$(DISTDIR)/$(DLGEDITDIST).tar.gz:
	-mkdir $(DISTDIR)
	rm -rf $(DISTDIR)/dlgedit
	rm -rf $(DISTDIR)/$(DLGEDITDISTDIR)
	( \
		cd $(DISTDIR); \
		cvs export -D now dlgedit; \
		mv dlgedit $(DLGEDITDISTDIR); \
		cd $(DLGEDITDISTDIR); \
		cd bmp; $(MAKE); cd ..; \
		cd prop; $(DLGEDITBIN) -g *.dlg; cd ..; \
		$(MAKE) Parser.cpp; \
		$(DLGEDITBIN) -g *.dlg; \
		chmod +w Makefile Makefile.common widget/Makefile prop/Makefile bmp/Makefile; \
		cd ..; \
                tar czvf $(DLGEDITDIST).tar.gz `find $(DLGEDITDISTDIR) \
                        -name *.cpp -o \
                        -name *.h -o \
                        -name *.y -o \
                        -name *.dlg -o \
                        -name *.bmp -o \
                        -name *.xpm -o \
			-name *.html -o \
                        -name Makefile -o \
                        -name Makefile.common -o \
                        -name Makefile.librules -o \
                        -name Makefile.install -o \
                        -name DlgEdit.Template.Makefile -o \
                        -name dlgUpdate.pl -o \
                        -name COPYING -o \
                        -name README -o \
                        -name TODO`; \
	)
	rm -rf $(DISTDIR)/$(DLGEDITDISTDIR)


$(DISTDIR)/$(DLGEDITDIST)-i486-unknown-linux.tar.gz: $(DISTDIR)/$(DLGEDITDIST).tar.gz
	(cd $(DISTDIR); \
		tar xzf $(DLGEDITDIST).tar.gz; \
		cd $(DISTDIR)/$(DLGEDITDISTDIR); \
		time $(MAKE) && \
			strip dlgedit && \
			mv Makefile.install Makefile && \
			cd .. && \
			tar czvf $(DLGEDITDIST)-i486-unknown-linux.tar.gz \
				$(DLGEDITDISTDIR)/dlgedit \
				$(DLGEDITDISTDIR)/misc/DlgEdit.Template.Makefile \
				$(DLGEDITDISTDIR)/misc/dlgUpdate.pl \
				$(DLGEDITDISTDIR)/help/ \
				$(DLGEDITDISTDIR)/Makefile \
				$(DLGEDITDISTDIR)/COPYING \
				$(DLGEDITDISTDIR)/TODO \
				$(DLGEDITDISTDIR)/README && \
			rm -rf $(DISTDIR)/$(DLGEDITDISTDIR) \
	)


srcdist:
	-mkdir $(DISTDIR)
	( \
		cd $(DISTDIR); \
		cvs export -D now dlgedit; \
		mv dlgedit $(DLGEDITDISTDIR); \
		cd $(DLGEDITDISTDIR); \
		cd bmp; $(MAKE); cd ..; \
		cd prop; $(DLGEDITBIN) -g *.dlg; cd ..; \
		$(MAKE) Parser.cpp; \
		$(DLGEDITBIN) -g *.dlg; \
		chmod +w Makefile Makefile.common widget/Makefile prop/Makefile bmp/Makefile; \
		cd ..; \
		tar czvhf dlgedit-source-$(SRCVERSION).tar.gz dlgedit; \
		rm -rf $(DISTDIR)/dlgedit \
	)


include Makefile.install


# DO NOT DELETE THIS LINE -- make depend depends on it.

main.o: /usr/include/stdlib.h /usr/include/features.h
main.o: /usr/include/sys/cdefs.h /usr/include/errno.h
main.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
main.o: /usr/include/alloca.h /usr/include/stdio.h /usr/include/libio.h
main.o: /usr/include/_G_config.h ProjectWnd.h Dialog.h DlgObject.h
main.o: DlgParser.h Project.h ObjectList.h Toolbar.h
ProjectWnd.o: ProjectWnd.h Dialog.h DlgObject.h DlgParser.h
ProjectWnd.o: /usr/include/stdio.h /usr/include/libio.h
ProjectWnd.o: /usr/include/_G_config.h Project.h ObjectList.h Toolbar.h
ProjectWnd.o: GenerateDialog.h widget/DlgWidget.h widget/SignalConnection.h
ProjectWnd.o: bmp/bitmaps.h
ObjectList.o: ProjectWnd.h Dialog.h DlgObject.h DlgParser.h
ObjectList.o: /usr/include/stdio.h /usr/include/libio.h
ObjectList.o: /usr/include/_G_config.h Project.h ObjectList.h Toolbar.h
ObjectList.o: DialogWnd.h WidgetLayout.h widget/DlgWidget.h
ObjectList.o: widget/SignalConnection.h WidgetFrame.h StatusBar.h
ObjectList.o: bmp/bitmaps.h
Project.o: Project.h DlgObject.h ProjectWnd.h Dialog.h DlgParser.h
Project.o: /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h
Project.o: ObjectList.h Toolbar.h ProjectDialog.h MakeGen.h AssDialog.h
Project.o: MakeEdit.h
DlgObject.o: Dialog.h DlgObject.h DlgParser.h /usr/include/stdio.h
DlgObject.o: /usr/include/libio.h /usr/include/_G_config.h Project.h
AssDialog.o: AssDialog.h
Dialog.o: Dialog.h DlgObject.h DlgParser.h /usr/include/stdio.h
Dialog.o: /usr/include/libio.h /usr/include/_G_config.h GenerateDialog.h
Dialog.o: DialogWnd.h WidgetLayout.h widget/DlgWidget.h
Dialog.o: widget/SignalConnection.h WidgetFrame.h Toolbar.h StatusBar.h
Dialog.o: ProjectWnd.h Project.h ObjectList.h
ProjectDialog.o: ProjectDialog.h
MakeGen.o: AssDialog.h MakeGen.h Project.h DlgObject.h
MakeEdit.o: MakeEdit.h Project.h DlgObject.h
DialogWnd.o: ProjectWnd.h Dialog.h DlgObject.h DlgParser.h
DialogWnd.o: /usr/include/stdio.h /usr/include/libio.h
DialogWnd.o: /usr/include/_G_config.h Project.h ObjectList.h Toolbar.h
DialogWnd.o: DialogWnd.h WidgetLayout.h widget/DlgWidget.h
DialogWnd.o: widget/SignalConnection.h WidgetFrame.h StatusBar.h
DialogWnd.o: GenerateDialog.h bmp/bitmaps.h prop/DialogPropDialog.h
DialogWnd.o: prop/DialogBasePage.h prop/DialogBasePageData.h
DialogWnd.o: prop/DialogGenPage.h prop/DialogGenPageData.h
DialogWnd.o: prop/DialogWindowPage.h prop/DialogPropDialogData.h
WidgetLayout.o: WidgetLayout.h widget/DlgWidget.h widget/SignalConnection.h
WidgetLayout.o: DialogWnd.h WidgetFrame.h Toolbar.h StatusBar.h GuiTools.h
WidgetLayout.o: widget/DlgButton.h widget/Button.h widget/DlgButtonGroup.h
WidgetLayout.o: widget/ButtonGroup.h widget/DlgCheckBox.h widget/CheckBox.h
WidgetLayout.o: widget/DlgComboBox.h widget/ComboBox.h widget/DlgFrame.h
WidgetLayout.o: widget/Frame.h widget/DlgGroupBox.h widget/GroupBox.h
WidgetLayout.o: widget/DlgLCDNumber.h widget/LCDNumber.h widget/DlgLabel.h
WidgetLayout.o: widget/Label.h widget/DlgLineEdit.h widget/LineEdit.h
WidgetLayout.o: widget/DlgListBox.h widget/ListBox.h widget/DlgMenuBar.h
WidgetLayout.o: widget/MenuBar.h widget/DlgMultiLineEdit.h
WidgetLayout.o: widget/MultiLineEdit.h widget/DlgPushButton.h
WidgetLayout.o: widget/PushButton.h widget/DlgRadioButton.h
WidgetLayout.o: widget/RadioButton.h widget/DlgScrollBar.h widget/ScrollBar.h
WidgetLayout.o: widget/DlgUser.h GridDialog.h DlgParser.h
WidgetLayout.o: /usr/include/stdio.h /usr/include/libio.h
WidgetLayout.o: /usr/include/_G_config.h
WidgetFrame.o: WidgetFrame.h WidgetLayout.h widget/DlgWidget.h
WidgetFrame.o: widget/SignalConnection.h
GridDialog.o: GridDialog.h
GenerateDialog.o: GenerateDialog.h
DlgParser.o: DlgParser.h /usr/include/stdio.h /usr/include/libio.h
DlgParser.o: /usr/include/_G_config.h
Parser.o: /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h
Parser.o: DlgParser.h /usr/include/stdlib.h /usr/include/features.h
Parser.o: /usr/include/sys/cdefs.h /usr/include/errno.h
Parser.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
Parser.o: /usr/include/alloca.h
Toolbar.o: Toolbar.h
StatusBar.o: StatusBar.h
GuiTools.o: GuiTools.h
