diff --git a/Makefile b/Makefile
index 07c5a647837278f16d569cbb2c90534983faf0fb..c9bc02a41fe5ee40c146afc1dac02607c5388b69 100644
--- a/Makefile
+++ b/Makefile
@@ -21,6 +21,9 @@ ifeq ($(OS_NAME),linux)
 ifeq ($(MACHINE),ppc)
 HOST = linuxppc
 else
+ifeq ($(MACHINE),arm64)
+HOST = arm64
+else
 ifeq ($(SIXTYFOURBIT),yes)
 HOST = amd64
 else
@@ -28,6 +31,7 @@ HOST = linux
 endif
 endif
 endif
+endif
 
 ifeq ($(OS_NAME),freebsd)
 HOST = freebsd
diff --git a/Makefile.arm64 b/Makefile.arm64
new file mode 100644
index 0000000000000000000000000000000000000000..4074bcb413fad5f419374070412fba50a5f3cb25
--- /dev/null
+++ b/Makefile.arm64
@@ -0,0 +1,37 @@
+
+include Makefile.defs
+
+Makefile=Makefile.arm64
+
+ifeq ($(shell if test -d /usr/include/openmotif; then echo yes; fi),yes)
+XINCLUDES = -I/usr/include/openmotif
+XLIBDIR  = /usr/lib64/openmotif
+endif
+
+XINCLUDES ?= /usr/include
+XLIBDIR  ?= /usr/lib64
+
+TKLIB=-lXm -lXpm -lXext -lXp
+XTLIB=-lXt
+XLIB=-lX11
+
+ifdef FI_USE_DMALLOC
+THREADLIB = -lpthread -ldmallocth
+CFLAGS = -I/usr/local/include
+else
+THREADLIB = -lpthread
+endif
+
+SET_LIBRARY_PATH = LD_RUN_PATH=$(XLIBDIR):/lib:/usr/lib; export LD_RUN_PATH
+
+PRODUCT-OBJS= $(PRODUCT-GENERIC-OBJS) $(STATIC-XM-OBJS) $(SHARED-XM-OBJS)
+
+#MOTIFXTRAS=-lgen
+
+PICFLAGS = -fPIC
+SHAREFLAGS = 
+MAKE_SHARED = ld -shared -L$(XLIBDIR)
+STD_DEFINES = -DSVR4 -DSYSV
+AR = ar cq
+
+include Makefile.generic
diff --git a/Makefile.wnn b/Makefile.wnn
index 806929a577315fd04ec974888a1ce57d97da5afc..575d382ea2e4723eac487f2fb514de54cc4cbc3e 100644
--- a/Makefile.wnn
+++ b/Makefile.wnn
@@ -108,11 +108,15 @@ ifeq ($(OS_NAME),freebsd)
 REDHATLIBS = -lcrypt
 endif
 
-ifeq ($(MACHINE),x86_64)
 ifeq ($(OS_NAME),linux)
+ifeq ($(MACHINE),x86_64)
 REDHATLIBS = -lcrypt
 endif
+ifeq ($(MACHINE),arm64)
+REDHATLIBS = -lcrypt
 endif
+endif
+
 
 wnn.$(SHARED_EXT): $(WNN_OBJS)
 	$(MAKE_SHARED) $(SHAREFLAGS) -o wnn.$(SHARED_EXT) $(WNN_OBJS) \