Fix warnings and errors revealed by release.sh
diff --git a/Makefile.in b/Makefile.in
index d3deb87..4cc653b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -156,8 +156,8 @@
 CC = %%CC%%
 HOSTCC = %%HOSTCC%%
 
-BC_LIB_C_ARGS = bc_lib bc.h bc_lib_name $(BC_ENABLED_NAME) 1
-BC_LIB2_C_ARGS = bc_lib2 bc.h bc_lib2_name "$(BC_ENABLED_NAME) && $(BC_ENABLE_EXTRA_MATH_NAME)" 1
+BC_LIB_C_ARGS = bc_lib bc_lib_name $(BC_ENABLED_NAME) 1
+BC_LIB2_C_ARGS = bc_lib2 bc_lib2_name "$(BC_ENABLED_NAME) && $(BC_ENABLE_EXTRA_MATH_NAME)" 1
 
 OBJS = $(BC_HELP_O) $(DC_HELP_O) $(BC_LIB_O) $(BC_LIB2_O) $(OBJ)
 OBJ_TARGETS = $(DC_HELP_O) $(BC_HELP_O) $(BC_LIB_O) $(BC_LIB2_O) $(OBJ)
@@ -184,10 +184,10 @@
 	$(GEN_EMU) $(GEN_EXEC) $(BC_LIB2) $(BC_LIB2_C) $(BC_LIB2_C_ARGS)
 
 $(BC_HELP_C): $(GEN_EXEC) $(BC_HELP)
-	$(GEN_EMU) $(GEN_EXEC) $(BC_HELP) $(BC_HELP_C) bc_help bc.h "" $(BC_ENABLED_NAME)
+	$(GEN_EMU) $(GEN_EXEC) $(BC_HELP) $(BC_HELP_C) bc_help "" $(BC_ENABLED_NAME)
 
 $(DC_HELP_C): $(GEN_EXEC) $(DC_HELP)
-	$(GEN_EMU) $(GEN_EXEC) $(DC_HELP) $(DC_HELP_C) dc_help dc.h "" $(DC_ENABLED_NAME)
+	$(GEN_EMU) $(GEN_EXEC) $(DC_HELP) $(DC_HELP_C) dc_help "" $(DC_ENABLED_NAME)
 
 make_bin:
 	$(MKDIR) -p $(BIN)
diff --git a/configure.sh b/configure.sh
index 53e3485..b41bee4 100755
--- a/configure.sh
+++ b/configure.sh
@@ -941,22 +941,24 @@
 fi
 
 if [ "$bc" -eq 0 ]; then
-	unneeded="$unneeded bc/bc.c bc/lex.c bc/parse.c"
+	unneeded="$unneeded bc.c bc_lex.c bc_parse.c"
 fi
 
 if [ "$dc" -eq 0 ]; then
-	unneeded="$unneeded dc/dc.c dc/lex.c dc/parse.c"
+	unneeded="$unneeded dc.c dc_lex.c dc_parse.c"
 fi
 
 if [ "$extra_math" -eq 0 ]; then
 	unneeded="$unneeded rand.c"
 fi
 
-if [ "$library" -eq 1 ]; then
+if [ "$library" -ne 0 ]; then
 	unneeded="$unneeded args.c opt.c read.c file.c main.c"
 	unneeded="$unneeded lang.c lex.c parse.c program.c"
 	unneeded="$unneeded bc.c bc_lex.c bc_parse.c"
 	unneeded="$unneeded dc.c dc_lex.c dc_parse.c"
+else
+	unneeded="$unneeded library.c"
 fi
 
 # Print out the values; this is for debugging.
diff --git a/gen/strgen.c b/gen/strgen.c
index 96b23a7..0b23061 100644
--- a/gen/strgen.c
+++ b/gen/strgen.c
@@ -63,7 +63,7 @@
 int main(int argc, char *argv[]) {
 
 	FILE *in, *out;
-	char *label, *define, *name, *include;
+	char *label, *define, *name;
 	int c, count, slashes, err = IO_ERR;
 	bool has_label, has_define, remove_tabs;
 
@@ -73,15 +73,14 @@
 	}
 
 	name = argv[3];
-	include = argv[4];
 
-	has_label = (argc > 5 && strcmp("", argv[5]) != 0);
-	label = has_label ? argv[5] : "";
+	has_label = (argc > 4 && strcmp("", argv[4]) != 0);
+	label = has_label ? argv[4] : "";
 
-	has_define = (argc > 6 && strcmp("", argv[6]) != 0);
-	define = has_define ? argv[6] : "";
+	has_define = (argc > 5 && strcmp("", argv[5]) != 0);
+	define = has_define ? argv[5] : "";
 
-	remove_tabs = (argc > 7);
+	remove_tabs = (argc > 6);
 
 	in = fopen(argv[1], "r");
 	if (!in) return INVALID_INPUT_FILE;
diff --git a/include/status.h b/include/status.h
index d7bc76f..762ff3e 100644
--- a/include/status.h
+++ b/include/status.h
@@ -165,11 +165,11 @@
 #define BC_MUST_RETURN
 #endif // __STDC_VERSION__
 
-#ifdef __clang__
+#if defined(__clang__) || defined(__GNUC__)
 #define BC_FALLTHROUGH __attribute__((fallthrough));
-#else // __clang__
+#else // defined(__clang__) || defined(__GNUC__)
 #define BC_FALLTHROUGH
-#endif // __clang__
+#endif //defined(__clang__) || defined(__GNUC__)
 
 // Workarounds for AIX's POSIX incompatibility.
 #ifndef SIZE_MAX
diff --git a/src/library.c b/src/library.c
index bebee8d..8a9edf5 100644
--- a/src/library.c
+++ b/src/library.c
@@ -430,7 +430,7 @@
 
 	assert(num != NULL && num->num != NULL);
 
-	BC_NUM_NEG_VAL(num, neg);
+	num->rdx = BC_NUM_NEG_VAL(num, neg);
 }
 
 size_t bcl_num_scale(BclNumber n) {
@@ -853,7 +853,7 @@
 
 	BC_SIG_UNLOCK;
 
-	bc_num_parse(&n, val, ctxt->ibase);
+	bc_num_parse(&n, val, (BcBigDig) ctxt->ibase);
 
 	n.rdx = BC_NUM_NEG_VAL_NP(n, neg);
 
@@ -887,7 +887,7 @@
 
 	bc_vec_npop(&vm.out, vm.out.len);
 
-	bc_num_print(nptr, ctxt->obase, false);
+	bc_num_print(nptr, (BcBigDig) ctxt->obase, false);
 	bc_vec_pushByte(&vm.out, '\0');
 
 	BC_SIG_LOCK;
@@ -956,7 +956,7 @@
 	ten.num[0] = 10;
 	ten.len = 1;
 
-	bc_num_bigdig2num(&exp, (unsigned long) places);
+	bc_num_bigdig2num(&exp, (BcBigDig) places);
 
 	bc_num_clear(&pow);