diff --git a/CHANGELOG.md b/CHANGELOG.md
index 84df4a49c4795d4b1164585094bdc22461ed7f95..6c4ded848201ef5ae8d93266c97749a55c91ecc0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
 ## 1.2.1
 
 * createProgram in Java had the wrong signature producing a unsatisfied link exception that is now fixed.
+* The same scripts can now compile for Linux and OSX and potentially even windows.
 
 ## 1.2.0
 
diff --git a/Makefile.am b/Makefile.am
index c6aa33088cac6fcdacead5a0f1d8d13a321ceb6c..c27c412f8bf0337cecd34b480fcf0a0f7b01a844 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
 AUTOMAKE_OPTIONS = foreign
 EXTRA_DIST = include src/cpp/CLHelper.h src/cpp/classtools.h src/cpp/invoke/JavaArgs.h src/cpp/invoke/OpenCLMem.h src/cpp/invoke/OpenCLKernel.h src/cpp/invoke/OpenCLJNI.h src/cpp/invoke/OpenCLArgDescriptor.h src/cpp/invoke/OpenCLProgram.h src/cpp/CLException.h src/cpp/JNIHelper.h src/cpp/Common.h src/cpp/runKernel/KernelArg.h src/cpp/runKernel/Range.h src/cpp/runKernel/ProfileInfo.h src/cpp/runKernel/AparapiBuffer.h src/cpp/runKernel/Config.h src/cpp/runKernel/Aparapi.h src/cpp/runKernel/ArrayBuffer.h src/cpp/runKernel/JNIContext.h src/cpp/runKernel/List.h
 lib_LTLIBRARIES = libaparapi.la
-libaparapi_la_LDFLAGS = -lOpenCL -version-info 3:1:2
-libaparapi_la_CPPFLAGS = -Iinclude -I/opt/AMDAPP/SDK/include -Isrc/cpp -Isrc/cpp/runKernel -Isrc/cpp/invoke -I/usr/lib/jvm/java-8-openjdk/include -I/usr/lib/jvm/java-8-openjdk/include/linux -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -I/usr/lib/jvm/java-8-oracle/include -I/usr/lib/jvm/java-8-oracle/include/linux -DCL_USE_DEPRECATED_OPENCL_1_1_APIS
+libaparapi_la_CPPFLAGS = -Iinclude -I/opt/AMDAPP/SDK/include -Isrc/cpp -Isrc/cpp/runKernel -Isrc/cpp/invoke -I/usr/lib/jvm/java-8-openjdk/include -I/usr/lib/jvm/java-8-openjdk/include/linux -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -I/usr/lib/jvm/java-8-oracle/include -I/usr/lib/jvm/java-8-oracle/include/linux -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/ -DCL_USE_DEPRECATED_OPENCL_1_1_APIS -fpermissive
+libaparapi_la_LDFLAGS = $(LDFLAGS)
 libaparapi_la_SOURCES = src/cpp/runKernel/Aparapi.cpp src/cpp/runKernel/ArrayBuffer.cpp src/cpp/runKernel/AparapiBuffer.cpp src/cpp/runKernel/Config.cpp src/cpp/runKernel/JNIContext.cpp src/cpp/runKernel/KernelArg.cpp src/cpp/runKernel/ProfileInfo.cpp src/cpp/runKernel/Range.cpp src/cpp/invoke/OpenCLJNI.cpp src/cpp/invoke/OpenCLArgDescriptor.cpp src/cpp/invoke/OpenCLMem.cpp src/cpp/CLHelper.cpp src/cpp/classtools.cpp src/cpp/JNIHelper.cpp src/cpp/agent.cpp
 all-local:
diff --git a/README.md b/README.md
index 264331b26582c2efb79d62a094abd90147037036..73205c4a047c721cab9175cca479a2ad16dafe06 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 git submodule init
 git submodule update
 ./prepare.sh
-libtoolize
+libtoolize (or sometimes glibtoolize on osx)
 aclocal
 autoconf
 automake --add-missing
diff --git a/configure.ac b/configure.ac
index 091ad19220e68795e1b23257e89d831c521cb7bd..8e0c62a5ef158a3605fc68fcbbd582c41cd16b53 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,20 @@ AC_INIT([libaparapi], [1.2.1], [syncleus@syncleus.com])
 AC_ENABLE_SHARED(yes)
 AC_ENABLE_STATIC(no)
 LT_INIT
-AM_INIT_AUTOMAKE([subdir-objects])
+AM_INIT_AUTOMAKE([foreign subdir-objects])
 AC_PROG_CXX
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT
+AC_CANONICAL_HOST
+case $host_os in
+  darwin* )
+        LDFLAGS="-framework OpenCL -version-info 3:1:2"
+        ;;
+  mingw*)
+        LDFLAGS="-no-undefined -lOpenCL -version-info 3:1:2"
+        ;;
+  *)
+        LDFLAGS="-lOpenCL -version-info 3:1:2"
+        ;;
+esac
+AC_SUBST([LDFLAGS])