diff --git a/example/Makefile b/example/Makefile
index 28ab001662aa6195211e58cfc8dcd1cd7f01c074..9fc9cf595d6c2787660d9fd2cea0a53bd1c5c56d 100644
--- a/example/Makefile
+++ b/example/Makefile
@@ -1,6 +1,7 @@
 PWD = $(shell pwd)
 NVIDIA_SDK_INSTALL_PATH ?= /usr/local/cuda
 AMDAPPSDKROOT ?= /opt/AMDAPP
+CXX ?= g++
 
 TARGET = clfft_example
 
@@ -22,7 +23,7 @@ endif
 
 
 $(TARGET): main.cpp Makefile $(PWD)/../lib/libclfft.a
-	g++ $(CXXFLAGS) main.cpp $(LDFLAGS) -o $(TARGET)
+	$(CXX) $(CXXFLAGS) main.cpp $(LDFLAGS) -o $(TARGET)
 
 clean:
 	rm -f $(TARGET)
diff --git a/example/Makefile.mingw b/example/Makefile.mingw
index 28bba19c6e04cf8a37fcd46c98bed31afb6403f2..85555e6bf0c274b1e52f71594e6db13428c98aff 100644
--- a/example/Makefile.mingw
+++ b/example/Makefile.mingw
@@ -1,6 +1,7 @@
 PWD = $(shell pwd)
 NVIDIA_SDK_INSTALL_PATH ?= /usr/local/cuda
 AMDAPPSDKROOT ?= /opt/AMDAPP
+CXX ?= i586-mingw32msvc-g++
 
 TARGET = clfft_example.exe
 
@@ -8,7 +9,7 @@ CXXFLAGS += -O3 -Wall -g -I$(NVIDIA_SDK_INSTALL_PATH)/OpenCL/common/inc -I$(AMDA
 LDFLAGS += $(PWD)/../lib/libclfft.a ../lib/amd/win32/2.5/OpenCL.lib
 
 $(TARGET): main.cpp Makefile $(PWD)/../lib/libclfft.a
-	i586-mingw32msvc-g++ $(CXXFLAGS) main.cpp $(LDFLAGS) -o $(TARGET)
+	$(CXX) $(CXXFLAGS) main.cpp $(LDFLAGS) -o $(TARGET)
 
 clean:
 	rm -f $(TARGET)
diff --git a/src/Makefile b/src/Makefile
index 9cc085a10a79f19b8b4abc781bb7a89223e68ceb..bcbb617e12398bf769d1cb06b792a4e6c7ac37ab 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,5 +1,7 @@
 NVIDIA_SDK_INSTALL_PATH ?= /usr/local/cuda
 AMDAPPSDKROOT ?= /opt/AMDAPP
+CXX ?= g++
+AR ?= ar
 
 TARGET = libclfft.a
 
@@ -13,18 +15,18 @@ OBJECTS = fft_setup.o fft_execute.o fft_kernelstring.o
 
 
 $(TARGET): $(OBJECTS)
-	ar rcs $(TARGET) $(OBJECTS)
+	$(AR) rcs $(TARGET) $(OBJECTS)
 	mkdir -p ../lib
 	cp $(TARGET) ../lib/
 
 fft_setup.o: fft_setup.cpp fft_internal.h fft_base_kernels.h
-	g++ $(CXXFLAGS) -c fft_setup.cpp
+	$(CXX) $(CXXFLAGS) -c fft_setup.cpp
 	
 fft_execute.o: fft_execute.cpp ../include/clFFT.h fft_internal.h
-	g++ $(CXXFLAGS) -c fft_execute.cpp
+	$(CXX) $(CXXFLAGS) -c fft_execute.cpp
 
 fft_kernelstring.o: fft_kernelstring.cpp ../include/clFFT.h fft_internal.h
-	g++ $(CXXFLAGS) -c fft_kernelstring.cpp
+	$(CXX) $(CXXFLAGS) -c fft_kernelstring.cpp
 
 clean:
 	rm -f *.o
diff --git a/src/Makefile.mingw b/src/Makefile.mingw
index 7334e6bb9b6a7e7a3a5c26e639c9c4bfcd2b23af..216d207982eabb74fbbc23b1fb2f8486b353cd9d 100644
--- a/src/Makefile.mingw
+++ b/src/Makefile.mingw
@@ -1,5 +1,7 @@
 NVIDIA_SDK_INSTALL_PATH ?= /usr/local/cuda
 AMDAPPSDKROOT ?= /opt/AMDAPP
+CXX ?= i586-mingw32msvc-g++
+AR ?= i586-mingw32msvc-ar
 
 TARGET = libclfft.a
 
@@ -9,18 +11,18 @@ OBJECTS = fft_setup.o fft_execute.o fft_kernelstring.o
 
 
 $(TARGET): $(OBJECTS)
-	i586-mingw32msvc-ar rcs $(TARGET) $(OBJECTS)
+	$(AR) rcs $(TARGET) $(OBJECTS)
 	mkdir -p ../lib
 	cp $(TARGET) ../lib/
 
 fft_setup.o: fft_setup.cpp fft_internal.h fft_base_kernels.h
-	i586-mingw32msvc-g++ $(CXXFLAGS) -c fft_setup.cpp
+	$(CXX) $(CXXFLAGS) -c fft_setup.cpp
 	
 fft_execute.o: fft_execute.cpp ../include/clFFT.h fft_internal.h
-	i586-mingw32msvc-g++ $(CXXFLAGS) -c fft_execute.cpp
+	$(CXX) $(CXXFLAGS) -c fft_execute.cpp
 
 fft_kernelstring.o: fft_kernelstring.cpp ../include/clFFT.h fft_internal.h
-	i586-mingw32msvc-g++ $(CXXFLAGS) -c fft_kernelstring.cpp
+	$(CXX) $(CXXFLAGS) -c fft_kernelstring.cpp
 
 clean:
 	rm -f *.o