diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..d057c8d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,90 @@
+# Author: Shyam Prasath <shyam.prasath@timesys.com>
+# Date:   Tue Nov 18 21:01:22 2025 +0530
+
+# Create symlink /usr/lib/ld-linux-aarch64.so.1
+
+# With merged /usr enabled (via usrmerge), the dynamic loader
+# ld-linux-aarch64.so.1 resides in /usr/lib. Since the gpu-demos
+# are linked against /usr/lib/ld-linux-aarch64.so.1, providing a symlink
+# from /usr/lib/ld-linux-aarch64.so.1 to /lib/ld-linux-aarch64.so.1
+# resolves the loader path mismatch.
+
+# Author: Jaret Cantu <jaret.cantu@timesys.com>
+# Date:   Tue Nov 14 14:21:41 EST 2023
+
+# Allow GL libraries and headers to be omitted
+
+# Author: Shyam Prasath <shyam.prasath@timesys.com>
+# Date:   Wed Nov 1 14:21:59 2023 +0530
+
+# Update Makefile based on imx-gpu-viv-6.4.3.p4.6-aarch64
+
+# Author: Shyam Prasath <shyam.prasath@timesys.com>
+# Date: Tue, 23 Aug 2022 12:49:59 +0530
+
+# Update Makefile based on imx-gpu-viv-6.4.3.p2.4-aarch64
+
+# Author: Justin Waters <justin.waters@timesys.com>
+# Date:   Fri Feb 27 12:19:20 2015 -0500
+
+# Add makefile
+
+# This is heavily based off of the Yocto recipe from Freescale
+
+# Makefile for imx-gpu-viv
+
+# Timesys Corporation 2022
+
+BINDIR=$(DESTDIR)/usr/bin
+LIBDIR=$(DESTDIR)/usr/lib
+INCLUDEDIR=$(DESTDIR)/usr/include
+OPTDIR=$(DESTDIR)/opt
+ETCDIR=$(DESTDIR)/etc
+
+TARGETS=
+
+all: $(TARGETS)
+
+$(TARGETS):
+
+install: $(TARGETS)
+	mkdir -p $(BINDIR)
+	mkdir -p $(LIBDIR)
+	mkdir -p $(LIBDIR)/pkgconfig
+	mkdir -p $(INCLUDEDIR)
+	mkdir -p $(OPTDIR)
+	mkdir -p $(ETCDIR)
+	mkdir -p $(ETCDIR)/OpenCL/vendors/
+
+	cp -P gpu-core/usr/lib/*.so* $(LIBDIR)
+	cp -r gpu-demos/opt/* $(OPTDIR)
+	cp -r gpu-tools/gmem-info/usr/bin/* $(BINDIR)
+	
+	rm -rf $(INCLUDEDIR)/vulkan/
+	
+	install -m 0644 gpu-core/usr/lib/pkgconfig/gbm.pc $(LIBDIR)/pkgconfig/gbm.pc
+	
+	install -m 0644 gpu-core/usr/lib/pkgconfig/glesv1_cm.pc $(LIBDIR)/pkgconfig/glesv1_cm.pc
+	install -m 0644 gpu-core/usr/lib/pkgconfig/glesv2.pc $(LIBDIR)/pkgconfig/glesv2.pc
+	install -m 0644 gpu-core/usr/lib/pkgconfig/vg.pc $(LIBDIR)/pkgconfig/vg.pc
+	
+	install -m 0644 gpu-core/usr/lib/pkgconfig/egl_wayland.pc $(LIBDIR)/pkgconfig/egl.pc
+	
+	install -m 0644 gpu-core/etc/Vivante.icd $(ETCDIR)/OpenCL/vendors/Vivante.icd
+	
+ifeq ($(wildcard $(LIBDIR)/ld-linux-aarch64.so.1),)
+	ln -s /lib/ld-linux-aarch64.so.1 $(LIBDIR)/ld-linux-aarch64.so.1
+endif
+	
+ifeq (,$(DISABLE_GL))
+	cp -r gpu-core/usr/lib/wayland/* $(LIBDIR)
+	cp -r gpu-core/usr/include/* $(INCLUDEDIR)
+	install -m 0644 gpu-core/usr/lib/pkgconfig/gl.pc $(LIBDIR)/pkgconfig/gl.pc
+else
+	cp -r $$(ls -1dp gpu-core/usr/lib/wayland/* | grep -Fv /libGL.) $(LIBDIR)
+	cp -r $$(ls -1dp gpu-core/usr/include/* | grep -v '/GL/$$') $(INCLUDEDIR)
+endif
+
+clean:
+
+distclean: clean
