From: David Bremner <david@tethera.net>
Date: Sun, 13 Jan 2019 09:08:03 -0400
Subject: make shared library / drivers buildable in 32bit architectures.

To ensure maximum make dialect portability, use variables that can be
overridden, rather than some conditional structure.
---
 makefile | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)

diff --git a/makefile b/makefile
index 439bd12..9fcee00 100644
--- a/makefile
+++ b/makefile
@@ -196,8 +196,17 @@ SOMINOR ?=.0.0
 SHLIB ?=$(SONAME)$(SOMINOR)
 SHLINK ?=liblrs.so
 
-SHLIBOBJ=lrslong1-shr.o lrslong2-shr.o lrslib1-shr.o lrslib2-shr.o \
-	lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o
+# for 32 bit architectures
+# BITS=-DB32
+# SHLIBOBJ2=
+
+# for 64 bit architectures
+BITS=-DB128
+SHLIBOBJ2=lrslib2-shr.o lrslong2-shr.o
+
+SHLIBOBJ=lrslong1-shr.o lrslib1-shr.o  \
+	lrslibgmp-shr.o lrsgmp-shr.o lrsdriver-shr.o \
+	${SHLIBOBJ2}
 
 SHLIBBIN=lrs-shared redund-shared lrsnash-shared
 
@@ -216,15 +225,23 @@ ${SHLINK}: ${SONAME}
 
 all-shared: ${SHLIBBIN}
 
-lrs-shared: ${SHLINK} lrs.o
-	$(CC) lrs.o -o $@ -L . -llrs
+lrs-shared: ${SHLINK} lrs-shared.o
+	$(CC) $^ -o $@ -L . -llrs
 
-redund-shared: ${SHLINK}  redund.o
-	$(CC) redund.o -o $@ -L . -llrs
+redund-shared: ${SHLINK}  redund-shared.o
+	$(CC) $^ -o $@ -L . -llrs
 
 lrsnash-shared: ${SHLINK}  lrsnash.c
 	$(CC) -DGMP -DMA lrsnash.c  lrsnashlib.c -I${INCLUDEDIR} -o $@ -L . -llrs -lgmp
 
+# driver object files
+
+lrs-shared.o: lrs.c
+	$(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ lrs.c
+
+redund-shared.o: redund.c
+	$(CC) ${CFLAGS} -DMA ${BITS} -L${LIBDIR} -c -o $@ redund.c
+
 # build object files for the shared library
 
 lrslib1-shr.o: lrslib.c lrslib.h
