-ifeq ($(shell echo ""),)
-RM = rm -f
-BINS = proxmark3 snooper cli flasher
-CLEAN = cli flasher proxmark3 snooper *.o *.moc.cpp
+# Check for correctly configured Qt5
+QTINCLUDES = $(shell pkg-config --cflags Qt5Core Qt5Widgets 2>/dev/null)
+QTLDLIBS = $(shell pkg-config --libs Qt5Core Qt5Widgets 2>/dev/null)
+MOC = $(shell pkg-config --variable=host_bins Qt5Core)/moc
+UIC = $(shell pkg-config --variable=host_bins Qt5Core)/uic
+ifeq ($(QTINCLUDES), )
+# if Qt5 not found Check for correctly configured Qt4
+ QTINCLUDES = $(shell pkg-config --cflags QtCore QtGui 2>/dev/null)
+ QTLDLIBS = $(shell pkg-config --libs QtCore QtGui 2>/dev/null)
+ MOC = $(shell pkg-config --variable=moc_location QtCore)
+ UIC = $(shell pkg-config --variable=uic_location QtCore)
+endif
+ifeq ($(QTINCLUDES), )
+# if both pkg-config commands failed, search in common places
+ ifneq ($(QTDIR), )
+ QTINCLUDES = -I$(QTDIR)/include -I$(QTDIR)/include/QtCore -I$(QTDIR)/include/QtGui
+ QTLDLIBS = -L$(QTDIR)/lib -lQtCore4 -lQtGui4
+ ifneq ($(wildcard $(QTDIR)/include/QtWidgets),)
+ QTINCLUDES += -I$(QTDIR)/include/QtWidgets
+ QTLDLIBS = -L$(QTDIR)/lib -lQt5Widgets -lQt5Gui -lQt5Core
+ endif
+ MOC = $(QTDIR)/bin/moc
+ UIC = $(QTDIR)/bin/uic
+ endif
+endif
+
+
+ifneq ($(QTLDLIBS), )
+ QTGUIOBJS = $(OBJDIR)/proxgui.o $(OBJDIR)/proxguiqt.o $(OBJDIR)/proxguiqt.moc.o
+ CFLAGS += -DHAVE_GUI