diff --git a/Makefile b/Makefile
index dbc428aa18b5c897290e8f007367d984b942f14f..1b3cf6b23a6a49ef40c8274d5e7296bd17601c3a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,13 @@
+# ARCH_OPT is the gcc architecture option (probably -m32 or -m64)
+export ARCH_OPT="-m32"
+MAKE="make"
 
 build:
-	cd ./psys/src; make
-	cd ./log/src; make
-	
+	$(MAKE) -C psys/src
+	$(MAKE) -C log/src
+
 
 clean:
-	cd log/src; make clean
-	cd psys/src; make clean
+	$(MAKE) -C psys/src clean
+	$(MAKE) -C log/src clean
 
diff --git a/log/src/Makefile b/log/src/Makefile
index b76b6fb473f5751dfd9141554556b91049ac599d..f41dac18f0596fc6993f8d0a0f89fd80733950ca 100644
--- a/log/src/Makefile
+++ b/log/src/Makefile
@@ -154,7 +154,7 @@ CC = $(CHIPMUNKCC)
 ## FreeBSD                      -m32 
 ##
 
-CHIPMUNKFLAGS = -m32
+CHIPMUNKFLAGS = $(ARCH_OPT)
 
 CFLAGS =  $(CHIPMUNKFLAGS) -I$(LOCINC) -I$(XINCLUDEDIR) -DLOGLIB=\"$(LOGLIBDIR)\" -DF_OK=0
 
diff --git a/log/src/ana/Makefile b/log/src/ana/Makefile
index 69cf0f6bcac9f1e4850c6afccc2f4da44ebe4ccf..8ee2026252274102771976923c9e27bffb0e8dfc 100644
--- a/log/src/ana/Makefile
+++ b/log/src/ana/Makefile
@@ -79,7 +79,7 @@ CC = $(CHIPMUNKCC)
 ## FreeBSD                      -m32
 ##
 
-CHIPMUNKFLAGS = -m32
+CHIPMUNKFLAGS = $(ARCH_OPT)
 
 OPTIONS = -Wall -Wextra
 
diff --git a/psys/src/Makefile b/psys/src/Makefile
index 9e1e126d6d746bf51368a174ce03c305a6e6a0e2..1223006de11cc22338709daf84d180b43bd8cb28 100644
--- a/psys/src/Makefile
+++ b/psys/src/Makefile
@@ -165,7 +165,7 @@ FONTS =
 ## Apple OS X                   -m32
 ## FreeBSD                      -m32
 
-CHIPMUNKFLAGS = -m32
+CHIPMUNKFLAGS = $(ARCH_OPT)
 
 OPTIONS = -Wall -Wextra