diff --git a/CHANGELOG.md b/CHANGELOG.md
index 741c90db885865a4b0e9198faa52653b62123690..26b3e2d01b7af4204f76481b0ed7b0504a6ee683 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,7 @@
 ## 1.4.3
 
 * Improve Aparapi native to enforce Kernel and Device max work group size limitations and provide query functions for clGetKernelWorkGroupInfo(...)
+* Updated Docker and build configurations to use new image for cross-building Aparapi native for multiple platforms
 
 ## 1.4.2
 
diff --git a/Dockerfile b/Dockerfile
index fe90632e1b0f18a210b9553288f44352b15a7a78..0be3a0c0161ac58086f583f02faa932d179eb81f 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,11 +1,10 @@
-FROM openjdk:8
+FROM aparapi/aparapi-native-builder-image
 
-RUN set -ex && apt-get update && apt-get upgrade -y && apt-get install -y build-essential ocl-icd-opencl-dev libtool autoconf autotools-dev automake maven gcc-multilib g++-multilib --no-install-recommends && dpkg --add-architecture i386 && apt-get update && apt-get install -y ocl-icd-opencl-dev:i386 --no-install-recommends && rm -rf /var/lib/apt/lists/*
+RUN cd /usr/src && unzip /root/openjdk/windows64/openlogic-openjdk-8u272-b10-windows-x64.zip && cp -av /root/OpenCL_* /usr/src && cd /usr/src/OpenCL_ARM/aarch64 && ln -s libOpenCL.so.1.0.0 libOpenCL.so && cd /usr/src/OpenCL_ARM/armhf && ln -s libOpenCL.so.1.0.0 libOpenCL.so && cp -av /root/msys2-OpenCL-headers /usr/src && rm -rf /var/lib/apt/lists/*
 
-COPY . /usr/src/app
+COPY . /usr/src/app/
 WORKDIR /usr/src/app
-
 RUN rm -rf /usr/src/app/.git && rm -rf /usr/src/app/java/.git
 
 # run in shell mode with ENV expansion
-CMD ./build.sh
+CMD rm -rf .libs .libs32 .libs64 && ./buildMingW.sh && ./build.sh && ./buildArmLinux.sh
diff --git a/build.sh b/build.sh
index 198236ee7ebed674330a5abdc7b959e75c7d65c9..3e11027f6347da053512a66a266475a0d5df06dc 100755
--- a/build.sh
+++ b/build.sh
@@ -1,15 +1,19 @@
 #!/bin/sh
-rm -rf .libs64 .libs32
+echo Aparapi Linux x86_64 compilation started...
+rm -rf .libs64/linux .libs32/linux
 make clean
 ./prepare.sh
 libtoolize
 aclocal
 autoconf
 automake --add-missing
-./configure
+./configure 
 make
-mv .libs .libs64
+mkdir -p .libs64
+mv .libs .libs64/linux
+echo Aparapi Linux x86 compilation started...
 make clean
-./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
+./configure --host=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"
 make
-mv .libs .libs32
+mkdir -p .libs32
+mv .libs .libs32/linux
diff --git a/buildArmLinux.sh b/buildArmLinux.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9dc42a7c39ea7edbd80f99dd36fb6fc9c4a67f62
--- /dev/null
+++ b/buildArmLinux.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+echo Aparapi Linux aarch64 compilation started....
+rm -rf .libs64/linuxARM .libs32/linuxARM
+make clean
+./prepare.sh
+libtoolize
+aclocal
+autoconf
+automake --add-missing
+./configure --host=aarch64-linux-gnu
+make
+mkdir -p .libs64
+mv .libs .libs64/linuxARM
+echo Aparapi Linux armhf compilation started....
+make clean
+./configure --host=arm-linux-gnueabihf
+make
+mkdir -p .libs32
+mv .libs .libs32/linuxARM
diff --git a/buildMingW.sh b/buildMingW.sh
new file mode 100755
index 0000000000000000000000000000000000000000..95e609f46af56f0a2849a399f9e7dd142ec2e07b
--- /dev/null
+++ b/buildMingW.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+echo Aparapi MingW Win64 compilation started....
+rm -rf .libs64/win .libs32/win
+make clean
+./prepare.sh
+libtoolize
+aclocal
+autoconf
+automake --add-missing
+./configure --host=x86_64-w64-mingw32
+make
+mkdir -p .libs64
+mv .libs .libs64/win
+cp /usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/libstdc++-6.dll .libs64/win
+cp /usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/libgcc_s_seh-1.dll .libs64/win
+echo Aparapi MingW Win32 compilation started....
+make clean
+./configure --host=i686-w64-mingw32
+make
+mkdir -p .libs32
+mv .libs .libs32/win
+cp /usr/lib/gcc/i686-w64-mingw32/9.3-win32/libstdc++-6.dll .libs32/win
+cp /usr/lib/gcc/i686-w64-mingw32/9.3-win32/libgcc_s_sjlj-1.dll .libs32/win
diff --git a/configure.ac b/configure.ac
index ec27c48542322179117d9578cea07e6ba5d13e6c..23b313b6a87264dbb11f2df6fab65af5db5bf0ae 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,18 +7,60 @@ AM_INIT_AUTOMAKE([subdir-objects])
 AC_PROG_CXX
 AC_CONFIG_FILES([Makefile])
 AC_CANONICAL_HOST
+
+HOST_CPU_BITS=""
+case $host_cpu in
+  x86_64|aarch64*|mips64*|ppc64*|sparc64 )
+        HOST_CPU_BITS="64"
+        ;;
+  i?86|arm*|mips*|ppc*|sparc )
+        HOST_CPU_BITS="32"
+        ;;
+esac
+AC_SUBST(HOST_CPU_BITS)
+
+HOST_ARCH=""
+case $host_cpu in
+  aarch64* )
+       HOST_ARCH="aarch64"
+       ;;
+  arm* ) 
+       HOST_ARCH="armhf"
+       ;;
+  * )
+       HOST_ARCH="other"
+       ;;
+esac
+AC_SUBST(HOST_ARCH)
+
 case $host_os in
   darwin* )
         AC_LDFLAGS="-framework OpenCL -version-info 5:3:4"
 	AC_CPPFLAGS="-Iinclude -I/opt/AMDAPP/SDK/include -Isrc/cpp -Isrc/cpp/runKernel -Isrc/cpp/invoke -I${JAVA_HOME}/include/darwin -I${JAVA_HOME}/include -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/ -DCL_USE_DEPRECATED_OPENCL_1_1_APIS"
         ;;
   mingw*)
-        AC_LDFLAGS="-no-undefined -lOpenCL -version-info 5:3:4"
-	AC_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"
+        case $HOST_CPU_BITS in
+        32 )
+            EXTRA_LDFLAGS="-Wl,--kill-at"
+            EXTRA_CPPFLAGS=""
+            ;;
+        64 )
+            EXTRA_LDFLAGS=""
+            EXTRA_CPPFLAGS=""
+            ;;
+        esac
+        AC_LDFLAGS="-no-undefined -lOpenCL -version-info 5:3:4 -L/usr/src/OpenCL_DLL/win$HOST_CPU_BITS $EXTRA_LDFLAGS"
+	AC_CPPFLAGS="-Iinclude -Isrc/cpp -Isrc/cpp/runKernel -Isrc/cpp/invoke -I/usr/src/openlogic-openjdk-8u272-b10-windows-64/include -I/usr/src/openlogic-openjdk-8u272-b10-windows-64/include/win32 -DCL_USE_DEPRECATED_OPENCL_1_1_APIS -fpermissive -I/usr/src/msys2-OpenCL-headers/mingw64/include $EXTRA_CPPFLAGS"
         ;;
   *)
-        AC_LDFLAGS="-lOpenCL -version-info 5:3:4"
-	AC_CPPFLAGS="-Iinclude -I/opt/AMDAPP/SDK/include -Isrc/cpp -Isrc/cpp/runKernel -Isrc/cpp/invoke -I/usr/local/openjdk-8/include/ -I/usr/local/openjdk-8/include/linux -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/ -DCL_USE_DEPRECATED_OPENCL_1_1_APIS"
+        LIB_PATH=""
+        case $HOST_ARCH in
+        aarch64 | armhf)
+             LIB_PATH="-L/usr/src/OpenCL_ARM/$HOST_ARCH"
+             ;;
+        esac
+        AC_LDFLAGS="-lOpenCL -version-info 5:3:4 $LIB_PATH"
+	AC_CPPFLAGS="-Iinclude -Isrc/cpp -Isrc/cpp/runKernel -Isrc/cpp/invoke -I/usr/lib/jvm/java-8-openjdk-amd64/include/ -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/ -DCL_USE_DEPRECATED_OPENCL_1_1_APIS"
         ;;
 esac
 AC_SUBST(AC_LDFLAGS)
diff --git a/docker-compose.yml b/docker-compose.yml
index 764fe9cb4b8bea60a31f24ea0c43fa122a8c53c6..0bbdd8256a1d48fa79e799a09cec5511b9d9e04a 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,8 +1,8 @@
 version: '3'
 services:
-  aparapi_native_builder:
-    container_name: aparapi_native_builder
-    image: 'aparapi/aparapi-native-builder:latest'
+  aparapi_native_windows_builder:
+    container_name: aparapi_native_builder-worker
+    image: 'aparapi/aparapi-native-builder-image-worker:latest'
     build:
       context: .
     user: "$UID:$GID"