diff --git a/src/sbbs3/install/sbbsinst.c b/src/sbbs3/install/sbbsinst.c
index 8cee2438053a0e2e1873dc5dc3ef22e7a2a46742..4a4c545b7806fd1404d70e3d89994128c586da41 100644
--- a/src/sbbs3/install/sbbsinst.c
+++ b/src/sbbs3/install/sbbsinst.c
@@ -76,13 +76,14 @@ struct server_ent_t {
 	char	addr[256];
 };
 
-struct dist_t {
+typdef struct {
 	char					version[78];
 	char					tag[20];
 	struct server_ent_t		**servers;
 	char					**files;
 	int						type;
-};
+	char					make_opts[128];
+} dist_t;
 
 enum {
 	 CVS_SERVER
@@ -131,8 +132,8 @@ char *ftp_pass="new@synchro.net";
 /**************/
 /* Prototypes */
 /**************/
-void install_sbbs(struct dist_t *, struct server_ent_t *);
-struct dist_t **get_distlist(void);
+void install_sbbs(dist_t *, struct server_ent_t *);
+dist_t **get_distlist(void);
 int choose_dist(char **opts);
 int choose_server(char **opts);
 
@@ -160,7 +161,7 @@ int main(int argc, char **argv)
 	int		main_dflt=0;
 	char 	str[129];
 	BOOL    door_mode=FALSE;
-	struct dist_t 	**distlist;
+	dist_t 	**distlist;
 	int		dist=0;
 	int		server=0;
 
@@ -415,7 +416,7 @@ int main(int argc, char **argv)
  *		Actually, it looks like you don't NEED to login if the password is blank... huh.
  */
 
-void install_sbbs(struct dist_t *dist,struct server_ent_t *server)  {
+void install_sbbs(dist_t *dist,struct server_ent_t *server)  {
 	char	cmd[MAX_PATH+1];
 	char	str[1024];
 	char	fname[MAX_PATH+1];
@@ -464,7 +465,8 @@ void install_sbbs(struct dist_t *dist,struct server_ent_t *server)  {
 				printf("Could not checkout install makefile.\n");
 				exit(EXIT_FAILURE);
 			}
-			if(system(params.make_cmdline))  {
+			sprintf(cmd,"%s %s",params.make_cmdline,dist->make_opts);
+			if(system(cmd))  {
 				printf(MAKE_ERROR);
 				exit(EXIT_FAILURE);
 			}
@@ -521,7 +523,8 @@ void install_sbbs(struct dist_t *dist,struct server_ent_t *server)  {
 				}
 				unlink(dstfname);
 			}
-			if(system(params.make_cmdline))  {
+			sprintf(cmd,"%s %s",params.make_cmdline,dist->make_opts);
+			if(system(cmd))  {
 				printf(MAKE_ERROR);
 				exit(EXIT_FAILURE);
 			}
@@ -535,7 +538,8 @@ void install_sbbs(struct dist_t *dist,struct server_ent_t *server)  {
 					exit(EXIT_FAILURE);
 				}
 			}
-			if(system(params.make_cmdline))  {
+			sprintf(cmd,"%s %s",params.make_cmdline,dist->make_opts);
+			if(system(cmd))  {
 				printf(MAKE_ERROR);
 				exit(EXIT_FAILURE);
 			}
@@ -544,13 +548,13 @@ void install_sbbs(struct dist_t *dist,struct server_ent_t *server)  {
 	}
 }
 
-struct dist_t **
+dist_t **
 get_distlist(void)
 {
 	int ret1,ret2,ret3,ret4;
 	int i;
 	char	in_line[256];
-	struct dist_t	**dist;
+	dist_t	**dist;
 	char	**file=NULL;
 	struct server_ent_t	**server=NULL;
 	int		r=0;
@@ -562,11 +566,11 @@ get_distlist(void)
 	char	sep[2]={'\t',0};
 	char	str[1024];
 
-	if((dist=(struct dist_t **)MALLOC(sizeof(void *)*MAX_DISTRIBUTIONS))==NULL)
+	if((dist=(dist_t **)MALLOC(sizeof(void *)*MAX_DISTRIBUTIONS))==NULL)
 		allocfail(sizeof(void *)*MAX_DISTRIBUTIONS);
 	for(i=0;i<MAX_DISTRIBUTIONS;i++)
-		if((dist[i]=(void *)MALLOC(sizeof(struct dist_t)))==NULL)
-			allocfail(sizeof(struct dist_t));
+		if((dist[i]=(void *)MALLOC(sizeof(dist_t)))==NULL)
+			allocfail(sizeof(dist_t));
 
 	sprintf(str,DEFAULT_LIBFILE,params.sys_desc);
 	if(!fexistcase(str))	/* use lib-linux.tgz if lib-linux-i686.tgz doesn't exist */
@@ -583,7 +587,7 @@ get_distlist(void)
 		f=0;
 		s=0;
 
-		memset(dist[r],0,sizeof(struct dist_t));
+		memset(dist[r],0,sizeof(dist_t));
 		sprintf(dist[r]->version,"%s (Local)",VERSION);
 		dist[r]->type=LOCAL_FILE;
 		dist[r]->servers=server;
@@ -643,7 +647,7 @@ get_distlist(void)
 				f=0;
 				s=0;
 
-				memset(dist[r],0,sizeof(struct dist_t));
+				memset(dist[r],0,sizeof(dist_t));
 				strcpy(dist[r]->version,in_line+2);
 				dist[r]->type=CVS_SERVER;
 				dist[r]->servers=server;
@@ -669,7 +673,7 @@ get_distlist(void)
 				f=0;
 				s=0;
 
-				memset(dist[r],0,sizeof(struct dist_t));
+				memset(dist[r],0,sizeof(dist_t));
 				strcpy(dist[r]->version,in_line+2);
 				dist[r]->type=DIST_SET;
 				dist[r]->servers=server;
@@ -682,6 +686,9 @@ get_distlist(void)
 			case 't':
 				SAFECOPY(dist[r-1]->tag,in_line+2);
 				break;
+			case 'm':
+				SAFECOPY(dist[r-1]->make_opts,in_line+2);
+				break;
 			case 's':
 				p=in_line+2;
 				tp=p;
@@ -695,7 +702,7 @@ get_distlist(void)
 				break;
 		}
 	}
-	memset(dist[r],0,sizeof(struct dist_t));
+	memset(dist[r],0,sizeof(dist_t));
 	uifc.pop(NULL);
 	return(dist);
 }