--- makefile.orig	2001-03-23 11:44:58.000000000 +0100
+++ makefile	2010-03-18 16:58:27.000000000 +0100
@@ -79,7 +79,8 @@
 	@echo "where <system> can be:"
 	@echo "	386bsd, 3b1, 3b1_asm, aix370, aix386, amix-68k-gcc, apollo,"
 	@echo "	apollo-gcc, atari,aux(*), aux-gcc, bsd, bsdgcc, convexos,"
-	@echo "	dgux, djgpp, encore, freebsd, hpux-68k(*), hpux-68k-ansi,"
+	@echo "	dgux, djgpp, encore, hpux-68k(*), hpux-68k-ansi,"
+	@echo "	freebsd-{alpha,i386,sparc64,ia64,amd64,powerpc},"
 	@echo "	hpux-68k-gcc, hpux-pa(*), hpux-pa-ansi, hpux-pa-gcc, hpux9-pa-ansi,"
 	@echo "	irix, irix_asm, isc, isc_asm, linux, linux-aout, linux-68k,"
 	@echo "	machten, mach_386, mips-ultrix, netbsd, netbsd_68k, newsasm,"
@@ -175,9 +176,32 @@
 	$(MAKE) all CC=gcc LD=gcc \
 	CFLAGS="$(RSAINCDIR) -O2 -DHIGHFIRST -DUNIX -DPORTABLE -DIDEA32"
 
-freebsd:
+freebsd-i386:
 	$(MAKE) all LD="$(CC) -s" OBJS_EXT="_80386.o _zmatch.o" \
-	CFLAGS="$(RSAINCDIR) -O2 -fno-strength-reduce -DUNIX -DIDEA32 -DASM \
+	CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DUNIX -DIDEA32 -DASM \
+	-DMAX_NAMELEN=255"
+
+freebsd-alpha:
+	$(MAKE) all LD="$(CC) -s" \
+	CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \
+	-DMAX_NAMELEN=255"
+
+freebsd-sparc64:
+	$(MAKE) all LD="$(CC) -s" \
+	CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \
+	-DHIGHFIRST -DMERRITT -DMAX_NAMELEN=255"
+
+freebsd-ia64:
+	$(MAKE) all LD="$(CC) -s" \
+	CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \
+	-DMAX_NAMELEN=255"
+freebsd-amd64:
+	$(MAKE) all LD="$(CC) -s" \
+	CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \
+	-DMAX_NAMELEN=255"
+freebsd-powerpc:
+	$(MAKE) all LD="$(CC) -s" \
+	CFLAGS="$(RSAINCDIR) $(OS_CFLAGS) -DPORTABLE -DUNIX -DIDEA32 \
 	-DMAX_NAMELEN=255"
 
 386bsd:
