# Makefile for qcadlib

# qcadlib installation directories
#

# default: /usr/local/...
#LIBDIR = /usr/local/lib
#INCDIR = /usr/local/include/qcadlib

# users home dir:
LIBDIR = $(HOME)/local/lib
INCDIR = $(HOME)/local/include/qcadguiqt

FIND = find

all: prepare
	-rm -f ./lib/libqcadguiqt.a
	$(MAKE) ./lib/libqcadguiqt.a

prepare: src/Makefile
	test -d ./include || mkdir -p ./include
	-(cd src && $(MAKE) ui/qg_arcoptions.h)
	-(cd src && $(MAKE) ui/qg_beveloptions.h)
	-(cd src && $(MAKE) ui/qg_blockdialog.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbar.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbararcs.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarcircles.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbardim.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarellipses.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarinfo.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarlines.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarmain.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarmodify.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarpoints.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarselect.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarsnap.h)
	-(cd src && $(MAKE) ui/qg_cadtoolbarsplines.h)
	-(cd src && $(MAKE) ui/qg_circleoptions.h)
	-(cd src && $(MAKE) ui/qg_commandwidget.h)
	-(cd src && $(MAKE) ui/qg_coordinatewidget.h)
	-(cd src && $(MAKE) ui/qg_dimlinearoptions.h)
	-(cd src && $(MAKE) ui/qg_dimensionlabeleditor.h)
	-(cd src && $(MAKE) ui/qg_dimoptions.h)
	-(cd src && $(MAKE) ui/qg_dlgarc.h)
	-(cd src && $(MAKE) ui/qg_dlgattributes.h)
	-(cd src && $(MAKE) ui/qg_dlgcircle.h)
	-(cd src && $(MAKE) ui/qg_dlgdimension.h)
	-(cd src && $(MAKE) ui/qg_dlgdimlinear.h)
	-(cd src && $(MAKE) ui/qg_dlghatch.h)
	-(cd src && $(MAKE) ui/qg_dlgimageoptions.h)
	-(cd src && $(MAKE) ui/qg_dlginitial.h)
	-(cd src && $(MAKE) ui/qg_dlginsert.h)
	-(cd src && $(MAKE) ui/qg_dlgline.h)
	-(cd src && $(MAKE) ui/qg_dlgellipse.h)
	-(cd src && $(MAKE) ui/qg_dlgmirror.h)
	-(cd src && $(MAKE) ui/qg_dlgmove.h)
	-(cd src && $(MAKE) ui/qg_dlgmoverotate.h)
	-(cd src && $(MAKE) ui/qg_dlgoptionsdrawing.h)
	-(cd src && $(MAKE) ui/qg_dlgoptionsgeneral.h)
	-(cd src && $(MAKE) ui/qg_dlgpoint.h)
	-(cd src && $(MAKE) ui/qg_dlgrotate.h)
	-(cd src && $(MAKE) ui/qg_dlgrotate2.h)
	-(cd src && $(MAKE) ui/qg_dlgscale.h)
	-(cd src && $(MAKE) ui/qg_dlgtext.h)
	-(cd src && $(MAKE) ui/qg_exitdialog.h)
	-(cd src && $(MAKE) ui/qg_imageoptions.h)
	-(cd src && $(MAKE) ui/qg_insertoptions.h)
	-(cd src && $(MAKE) ui/qg_layerdialog.h)
	-(cd src && $(MAKE) ui/qg_librarywidget.h)
	-(cd src && $(MAKE) ui/qg_lineangleoptions.h)
	-(cd src && $(MAKE) ui/qg_linebisectoroptions.h)
	-(cd src && $(MAKE) ui/qg_lineoptions.h)
	-(cd src && $(MAKE) ui/qg_lineparalleloptions.h)
	-(cd src && $(MAKE) ui/qg_lineparallelthroughoptions.h)
	-(cd src && $(MAKE) ui/qg_linepolygon2options.h)
	-(cd src && $(MAKE) ui/qg_linepolygonoptions.h)
	-(cd src && $(MAKE) ui/qg_linerelangleoptions.h)
	-(cd src && $(MAKE) ui/qg_mousewidget.h)
	-(cd src && $(MAKE) ui/qg_moverotateoptions.h)
	-(cd src && $(MAKE) ui/qg_printpreviewoptions.h)
	-(cd src && $(MAKE) ui/qg_roundoptions.h)
	-(cd src && $(MAKE) ui/qg_selectionwidget.h)
	-(cd src && $(MAKE) ui/qg_snapdistoptions.h)
	-(cd src && $(MAKE) ui/qg_textoptions.h)
	-(cd src && $(MAKE) ui/qg_trimamountoptions.h)
	-(cd src && $(MAKE) ui/qg_widgetpen.h)
	-( cd ./include; rm -f *.h; \
	for hf in `find ../src -name '*.h'`; do \
		ln -s "$$hf" 2> /dev/null || cp "$$hf" .; \
	done )
	
./lib/libqcadguiqt.a: src/Makefile
	cd src && $(MAKE)

src/Makefile:
	cd src && qmake qcadguiqt.pro

install: ./lib/libqcadguiqt.a
	test -d $(LIBDIR) || mkdir -p $(LIBDIR)
	test -d $(INCDIR) || mkdir -p $(INCDIR)
	cp ./lib/libqcadguiqt.a $(LIBDIR)
	cp ./include/*.h $(INCDIR)

clean:
	cd src && $(MAKE) clean
	cd test && $(MAKE) clean
	-rm -f ./lib/lib*
	-$(FIND) . -name "*~" -exec rm -f {} \;
  
testing: ./lib/libqcadguiqt.a
	-(cd ./test ; make clean; make)

docu:
	-(doxygen ./doxygen.cfg)

statistics:
	@echo "Lines in source files:"
	-find -name *.cpp | xargs cat | wc
	@echo "Lines in header files:"
	-find -name *.h | xargs cat | wc

dist:	clean

