-ifneq (,$(findstring MINGW,$(platform)))
-CXXFLAGS = -I$(QTDIR)/include -I$(QTDIR)/include/QtCore -I$(QTDIR)/include/QtGui -I$(QTDIR)/include/QtWidgets 
-QTLDLIBS = -L$(QTDIR)/lib  -lQt5Core -lQt5Gui -lQt5Widgets 
-MOC = $(QTDIR)/bin/moc
-LUAPLATFORM = mingw
+ifneq (,$(findstring MINGW,$(platform))) 
+    LDLIBS +=  -L/mingw/lib -lgdi32
+       CFLAGS +=  -I/mingw/include
+    CXXFLAGS = -I$(QTDIR)/include -I$(QTDIR)/include/QtCore -I$(QTDIR)/include/QtGui
+    MOC = $(QTDIR)/bin/moc
+    LUAPLATFORM = mingw
+    ifneq ($(wildcard $(QTDIR)/include/QtWidgets),)
+        CXXFLAGS += -I$(QTDIR)/include/QtWidgets
+        QTLDLIBS = -L$(QTDIR)/lib -lQt5Core -lQt5Gui -lQt5Widgets
+    else
+        QTLDLIBS = -L$(QTDIR)/lib -lQtCore4 -lQtGui4
+    endif
+
+       # QT version,  4 or 5
+       qtplatform = $(shell $(MOC) -v)
+       ifneq (, $(findstring moc 5,$(qtplatform)))
+          CXXFLAGS = -I$(QTDIR)/include -I$(QTDIR)/include/QtCore -I$(QTDIR)/include/QtGui -I$(QTDIR)/include/QtWidgets  -I/mingw/include
+          QTLDLIBS = -L$(QTDIR)/lib  -lQt5Core -lQt5Gui -lQt5Widgets 
+       else
+          CXXFLAGS = -I$(QTDIR)/include -I$(QTDIR)/include/QtCore -I$(QTDIR)/include/QtGui
+          QTLDLIBS = -L$(QTDIR)/lib -lQtCore4 -lQtGui4
+       endif
+       
+else ifeq ($(platform),Darwin)
+
+       # Assuming you have QT4 installed.
+       CFLAGS += -I/usr/include/malloc/ -I/usr/local/opt/readline/include
+       LDLIBS = -L/opt/local/lib -L/usr/local/opt/readline/lib -lreadline -lpthread -lm
+       
+       # use this if you have QT5 installed.
+       #CFLAGS += -I/usr/include/malloc/ -I/usr/local/opt/readline/include -I/usr/local/opt/qt5/include 
+    #LDLIBS = -L/opt/local/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/qt5/lib -lreadline -lpthread -lm
+
+       CXXFLAGS = $(shell pkg-config --cflags QtCore QtGui 2>/dev/null) -Wall -O3
+    QTLDLIBS = $(shell pkg-config --libs QtCore QtGui 2>/dev/null)
+    MOC = $(shell pkg-config --variable=moc_location QtCore)
+    LUAPLATFORM = macosx