diff --git a/c3s/sources.mk b/c3s/sources.mk
index 5718d01..277d225 100644
--- a/c3s/sources.mk
+++ b/c3s/sources.mk
@@ -1,2 +1,8 @@
# sources.mk generated by update_sources
-SOURCES = buf_readline.c c3s.c
+HEADERS = \
+ "buf_readline.h" \
+
+SOURCES = \
+ "buf_readline.c" \
+ "c3s.c" \
+
diff --git a/c3s/sources.sh b/c3s/sources.sh
index 4fd7530..2a679e8 100644
--- a/c3s/sources.sh
+++ b/c3s/sources.sh
@@ -1,2 +1,3 @@
# sources.sh generated by update_sources
+HEADERS='buf_readline.h '
SOURCES='buf_readline.c c3s.c '
diff --git a/c3s/update_sources b/c3s/update_sources
index ef08ee3..bf0c47f 100755
--- a/c3s/update_sources
+++ b/c3s/update_sources
@@ -13,13 +13,16 @@
. ../config.subr
+echo "$PWD/update_sources"
+
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
+HEADERS="$(ls *.h | grep -v '^config.h$')"
+sources HEADERS "$HEADERS"
+
SOURCES="$(ls *.c)"
-SOURCES="$(echo "$SOURCES" | tr '\n' ' ')"
-echo "SOURCES = $SOURCES" >> ${SOURCES_MK}
-echo "SOURCES='$SOURCES'" >> ${SOURCES_SH}
+sources SOURCES "$SOURCES"
update_sources_mk
update_sources_sh
diff --git a/ic3/sources.mk b/ic3/sources.mk
index 6a40647..37807f2 100644
--- a/ic3/sources.mk
+++ b/ic3/sources.mk
@@ -1,4 +1,8 @@
# sources.mk generated by update_sources
+HEADERS = \
+ "buf_linenoise.h" \
+ "buf_wineditline.h" \
+
SOURCES = \
"ic3.c" \
diff --git a/ic3/sources.sh b/ic3/sources.sh
index 2d72ec5..060370e 100644
--- a/ic3/sources.sh
+++ b/ic3/sources.sh
@@ -1,4 +1,5 @@
# sources.sh generated by update_sources
+HEADERS='buf_linenoise.h buf_wineditline.h '
SOURCES='ic3.c '
SOURCES_LINENOISE='buf_linenoise.c linenoise.c '
SOURCES_WINEDITLINE='buf_wineditline.c '
diff --git a/ic3/update_sources b/ic3/update_sources
index 3db8dbc..4d3edca 100755
--- a/ic3/update_sources
+++ b/ic3/update_sources
@@ -13,9 +13,14 @@
. ../config.subr
+echo "$PWD/update_sources"
+
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
+HEADERS="$(ls *.h | grep -v '^config.h$')"
+sources HEADERS "$HEADERS"
+
SOURCES="$(ls *.c | grep -v -e linenoise -e wineditline)"
sources SOURCES "$SOURCES"
diff --git a/libc3/sources.mk b/libc3/sources.mk
index be8fc2c..0aa2cbc 100644
--- a/libc3/sources.mk
+++ b/libc3/sources.mk
@@ -83,7 +83,6 @@ HEADERS = \
"character.h" \
"compare.h" \
"complex.h" \
- "config.h" \
"cow.h" \
"data.h" \
"env.h" \
diff --git a/libc3/sources.sh b/libc3/sources.sh
index db4eb2e..d2a2fab 100644
--- a/libc3/sources.sh
+++ b/libc3/sources.sh
@@ -1,4 +1,4 @@
# sources.sh generated by update_sources
-HEADERS='abs.h alloc.h arg.h array.h assert.h binding.h block.h bool.h buf.h buf_file.h buf_getc.h buf_getchar.h buf_inspect.h buf_inspect_s16.h buf_inspect_s16_binary.h buf_inspect_s16_decimal.h buf_inspect_s16_hexadecimal.h buf_inspect_s16_octal.h buf_inspect_s32.h buf_inspect_s32_binary.h buf_inspect_s32_decimal.h buf_inspect_s32_hexadecimal.h buf_inspect_s32_octal.h buf_inspect_s64.h buf_inspect_s64_binary.h buf_inspect_s64_decimal.h buf_inspect_s64_hexadecimal.h buf_inspect_s64_octal.h buf_inspect_s8.h buf_inspect_s8_binary.h buf_inspect_s8_decimal.h buf_inspect_s8_hexadecimal.h buf_inspect_s8_octal.h buf_inspect_sw.h buf_inspect_sw_binary.h buf_inspect_sw_decimal.h buf_inspect_sw_hexadecimal.h buf_inspect_sw_octal.h buf_inspect_u16.h buf_inspect_u16_binary.h buf_inspect_u16_decimal.h buf_inspect_u16_hexadecimal.h buf_inspect_u16_octal.h buf_inspect_u32.h buf_inspect_u32_binary.h buf_inspect_u32_decimal.h buf_inspect_u32_hexadecimal.h buf_inspect_u32_octal.h buf_inspect_u64.h buf_inspect_u64_binary.h buf_inspect_u64_decimal.h buf_inspect_u64_hexadecimal.h buf_inspect_u64_octal.h buf_inspect_u8.h buf_inspect_u8_binary.h buf_inspect_u8_decimal.h buf_inspect_u8_hexadecimal.h buf_inspect_u8_octal.h buf_inspect_uw.h buf_inspect_uw_binary.h buf_inspect_uw_decimal.h buf_inspect_uw_hexadecimal.h buf_inspect_uw_octal.h buf_parse.h buf_parse_s16.h buf_parse_s32.h buf_parse_s64.h buf_parse_s8.h buf_parse_sw.h buf_parse_u16.h buf_parse_u32.h buf_parse_u64.h buf_parse_u8.h buf_parse_uw.h buf_save.h c3.h c3_main.h call.h ceiling.h cfn.h character.h compare.h complex.h config.h cow.h data.h env.h error.h error_handler.h eval.h f128.h f32.h f64.h fact.h fact_action.h fact_list.h facts.h facts_cursor.h facts_spec.h facts_spec_cursor.h facts_transaction.h facts_with.h facts_with_cursor.h file.h float.h fn.h fn_clause.h frame.h hash.h ident.h integer.h io.h list.h list_init.h log.h map.h module.h operator.h pcomplex.h pcow.h ptag.h ptr.h ptr_free.h queue.h quote.h ratio.h s16.h s32.h s64.h s8.h sequence.h set__fact.h set__tag.h set_cursor__fact.h set_cursor__tag.h set_item__fact.h set_item__tag.h sha1.h sign.h skiplist__fact.h skiplist_node__fact.h special_operator.h str.h struct.h struct_type.h sw.h sym.h tag.h tag_init.h tag_type.h time.h tuple.h types.h u16.h u32.h u64.h u8.h ucd.h unquote.h uw.h var.h void.h '
+HEADERS='abs.h alloc.h arg.h array.h assert.h binding.h block.h bool.h buf.h buf_file.h buf_getc.h buf_getchar.h buf_inspect.h buf_inspect_s16.h buf_inspect_s16_binary.h buf_inspect_s16_decimal.h buf_inspect_s16_hexadecimal.h buf_inspect_s16_octal.h buf_inspect_s32.h buf_inspect_s32_binary.h buf_inspect_s32_decimal.h buf_inspect_s32_hexadecimal.h buf_inspect_s32_octal.h buf_inspect_s64.h buf_inspect_s64_binary.h buf_inspect_s64_decimal.h buf_inspect_s64_hexadecimal.h buf_inspect_s64_octal.h buf_inspect_s8.h buf_inspect_s8_binary.h buf_inspect_s8_decimal.h buf_inspect_s8_hexadecimal.h buf_inspect_s8_octal.h buf_inspect_sw.h buf_inspect_sw_binary.h buf_inspect_sw_decimal.h buf_inspect_sw_hexadecimal.h buf_inspect_sw_octal.h buf_inspect_u16.h buf_inspect_u16_binary.h buf_inspect_u16_decimal.h buf_inspect_u16_hexadecimal.h buf_inspect_u16_octal.h buf_inspect_u32.h buf_inspect_u32_binary.h buf_inspect_u32_decimal.h buf_inspect_u32_hexadecimal.h buf_inspect_u32_octal.h buf_inspect_u64.h buf_inspect_u64_binary.h buf_inspect_u64_decimal.h buf_inspect_u64_hexadecimal.h buf_inspect_u64_octal.h buf_inspect_u8.h buf_inspect_u8_binary.h buf_inspect_u8_decimal.h buf_inspect_u8_hexadecimal.h buf_inspect_u8_octal.h buf_inspect_uw.h buf_inspect_uw_binary.h buf_inspect_uw_decimal.h buf_inspect_uw_hexadecimal.h buf_inspect_uw_octal.h buf_parse.h buf_parse_s16.h buf_parse_s32.h buf_parse_s64.h buf_parse_s8.h buf_parse_sw.h buf_parse_u16.h buf_parse_u32.h buf_parse_u64.h buf_parse_u8.h buf_parse_uw.h buf_save.h c3.h c3_main.h call.h ceiling.h cfn.h character.h compare.h complex.h cow.h data.h env.h error.h error_handler.h eval.h f128.h f32.h f64.h fact.h fact_action.h fact_list.h facts.h facts_cursor.h facts_spec.h facts_spec_cursor.h facts_transaction.h facts_with.h facts_with_cursor.h file.h float.h fn.h fn_clause.h frame.h hash.h ident.h integer.h io.h list.h list_init.h log.h map.h module.h operator.h pcomplex.h pcow.h ptag.h ptr.h ptr_free.h queue.h quote.h ratio.h s16.h s32.h s64.h s8.h sequence.h set__fact.h set__tag.h set_cursor__fact.h set_cursor__tag.h set_item__fact.h set_item__tag.h sha1.h sign.h skiplist__fact.h skiplist_node__fact.h special_operator.h str.h struct.h struct_type.h sw.h sym.h tag.h tag_init.h tag_type.h time.h tuple.h types.h u16.h u32.h u64.h u8.h ucd.h unquote.h uw.h var.h void.h '
SOURCES='abs.c alloc.c arg.c array.c binding.c block.c bool.c buf.c buf_file.c buf_getc.c buf_getchar.c buf_inspect.c buf_inspect_s16.c buf_inspect_s16_binary.c buf_inspect_s16_decimal.c buf_inspect_s16_hexadecimal.c buf_inspect_s16_octal.c buf_inspect_s32.c buf_inspect_s32_binary.c buf_inspect_s32_decimal.c buf_inspect_s32_hexadecimal.c buf_inspect_s32_octal.c buf_inspect_s64.c buf_inspect_s64_binary.c buf_inspect_s64_decimal.c buf_inspect_s64_hexadecimal.c buf_inspect_s64_octal.c buf_inspect_s8.c buf_inspect_s8_binary.c buf_inspect_s8_decimal.c buf_inspect_s8_hexadecimal.c buf_inspect_s8_octal.c buf_inspect_sw.c buf_inspect_sw_binary.c buf_inspect_sw_decimal.c buf_inspect_sw_hexadecimal.c buf_inspect_sw_octal.c buf_inspect_u16.c buf_inspect_u16_binary.c buf_inspect_u16_decimal.c buf_inspect_u16_hexadecimal.c buf_inspect_u16_octal.c buf_inspect_u32.c buf_inspect_u32_binary.c buf_inspect_u32_decimal.c buf_inspect_u32_hexadecimal.c buf_inspect_u32_octal.c buf_inspect_u64.c buf_inspect_u64_binary.c buf_inspect_u64_decimal.c buf_inspect_u64_hexadecimal.c buf_inspect_u64_octal.c buf_inspect_u8.c buf_inspect_u8_binary.c buf_inspect_u8_decimal.c buf_inspect_u8_hexadecimal.c buf_inspect_u8_octal.c buf_inspect_uw.c buf_inspect_uw_binary.c buf_inspect_uw_decimal.c buf_inspect_uw_hexadecimal.c buf_inspect_uw_octal.c buf_parse.c buf_parse_s16.c buf_parse_s32.c buf_parse_s64.c buf_parse_s8.c buf_parse_sw.c buf_parse_u16.c buf_parse_u32.c buf_parse_u64.c buf_parse_u8.c buf_parse_uw.c buf_save.c c3.c call.c ceiling.c cfn.c character.c compare.c complex.c cow.c data.c env.c error.c error_handler.c eval.c f128.c f32.c f64.c fact.c fact_action.c fact_list.c facts.c facts_cursor.c facts_spec.c facts_spec_cursor.c facts_transaction.c facts_with.c facts_with_cursor.c file.c fn.c fn_clause.c frame.c hash.c ident.c integer.c io.c license.c list.c list_init.c log.c map.c module.c operator.c pcomplex.c pcow.c ptag.c ptr.c ptr_free.c queue.c quote.c ratio.c s16.c s32.c s64.c s8.c sequence.c set__fact.c set__tag.c set_cursor__fact.c set_cursor__tag.c set_item__fact.c set_item__tag.c sign.c skiplist__fact.c skiplist_node__fact.c special_operator.c str.c struct.c struct_type.c sw.c sym.c tag.c tag_add.c tag_addi.c tag_band.c tag_bnot.c tag_bor.c tag_bxor.c tag_div.c tag_init.c tag_mod.c tag_mul.c tag_neg.c tag_shift_left.c tag_shift_right.c tag_sqrt.c tag_sub.c tag_type.c time.c tuple.c u16.c u32.c u64.c u8.c ucd.c unquote.c uw.c var.c void.c '
LO_SOURCES=' ../libtommath/bn_cutoffs.c ../libtommath/bn_mp_2expt.c ../libtommath/bn_mp_abs.c ../libtommath/bn_mp_add.c ../libtommath/bn_mp_add_d.c ../libtommath/bn_mp_and.c ../libtommath/bn_mp_clamp.c ../libtommath/bn_mp_clear.c ../libtommath/bn_mp_clear_multi.c ../libtommath/bn_mp_cmp.c ../libtommath/bn_mp_cmp_d.c ../libtommath/bn_mp_cmp_mag.c ../libtommath/bn_mp_cnt_lsb.c ../libtommath/bn_mp_complement.c ../libtommath/bn_mp_copy.c ../libtommath/bn_mp_count_bits.c ../libtommath/bn_mp_div.c ../libtommath/bn_mp_div_2.c ../libtommath/bn_mp_div_2d.c ../libtommath/bn_mp_div_3.c ../libtommath/bn_mp_div_d.c ../libtommath/bn_mp_dr_is_modulus.c ../libtommath/bn_mp_dr_reduce.c ../libtommath/bn_mp_dr_setup.c ../libtommath/bn_mp_error_to_string.c ../libtommath/bn_mp_exch.c ../libtommath/bn_mp_exptmod.c ../libtommath/bn_mp_gcd.c ../libtommath/bn_mp_get_double.c ../libtommath/bn_mp_get_i32.c ../libtommath/bn_mp_get_i64.c ../libtommath/bn_mp_get_mag_u32.c ../libtommath/bn_mp_get_mag_u64.c ../libtommath/bn_mp_grow.c ../libtommath/bn_mp_init.c ../libtommath/bn_mp_init_copy.c ../libtommath/bn_mp_init_multi.c ../libtommath/bn_mp_init_size.c ../libtommath/bn_mp_invmod.c ../libtommath/bn_mp_lcm.c ../libtommath/bn_mp_lshd.c ../libtommath/bn_mp_mod.c ../libtommath/bn_mp_mod_2d.c ../libtommath/bn_mp_montgomery_calc_normalization.c ../libtommath/bn_mp_montgomery_reduce.c ../libtommath/bn_mp_montgomery_setup.c ../libtommath/bn_mp_mul.c ../libtommath/bn_mp_mul_2.c ../libtommath/bn_mp_mul_2d.c ../libtommath/bn_mp_mul_d.c ../libtommath/bn_mp_mulmod.c ../libtommath/bn_mp_neg.c ../libtommath/bn_mp_or.c ../libtommath/bn_mp_radix_size.c ../libtommath/bn_mp_reduce.c ../libtommath/bn_mp_reduce_2k.c ../libtommath/bn_mp_reduce_2k_l.c ../libtommath/bn_mp_reduce_2k_setup.c ../libtommath/bn_mp_reduce_2k_setup_l.c ../libtommath/bn_mp_reduce_is_2k.c ../libtommath/bn_mp_reduce_is_2k_l.c ../libtommath/bn_mp_reduce_setup.c ../libtommath/bn_mp_rshd.c ../libtommath/bn_mp_set.c ../libtommath/bn_mp_set_double.c ../libtommath/bn_mp_set_i32.c ../libtommath/bn_mp_set_i64.c ../libtommath/bn_mp_set_l.c ../libtommath/bn_mp_set_u32.c ../libtommath/bn_mp_set_u64.c ../libtommath/bn_mp_set_ul.c ../libtommath/bn_mp_sqr.c ../libtommath/bn_mp_sqrt.c ../libtommath/bn_mp_sub.c ../libtommath/bn_mp_sub_d.c ../libtommath/bn_mp_xor.c ../libtommath/bn_mp_zero.c ../libtommath/bn_s_mp_add.c ../libtommath/bn_s_mp_balance_mul.c ../libtommath/bn_s_mp_exptmod.c ../libtommath/bn_s_mp_exptmod_fast.c ../libtommath/bn_s_mp_invmod_fast.c ../libtommath/bn_s_mp_invmod_slow.c ../libtommath/bn_s_mp_karatsuba_mul.c ../libtommath/bn_s_mp_karatsuba_sqr.c ../libtommath/bn_s_mp_montgomery_reduce_fast.c ../libtommath/bn_s_mp_mul_digs.c ../libtommath/bn_s_mp_mul_digs_fast.c ../libtommath/bn_s_mp_mul_high_digs.c ../libtommath/bn_s_mp_mul_high_digs_fast.c ../libtommath/bn_s_mp_rand_platform.c ../libtommath/bn_s_mp_sqr.c ../libtommath/bn_s_mp_sqr_fast.c ../libtommath/bn_s_mp_sub.c ../libtommath/bn_s_mp_toom_mul.c ../libtommath/bn_s_mp_toom_sqr.c abs.c alloc.c arg.c array.c binding.c block.c bool.c buf.c buf_file.c buf_getc.c buf_getchar.c buf_inspect.c buf_inspect_s16.c buf_inspect_s16_binary.c buf_inspect_s16_decimal.c buf_inspect_s16_hexadecimal.c buf_inspect_s16_octal.c buf_inspect_s32.c buf_inspect_s32_binary.c buf_inspect_s32_decimal.c buf_inspect_s32_hexadecimal.c buf_inspect_s32_octal.c buf_inspect_s64.c buf_inspect_s64_binary.c buf_inspect_s64_decimal.c buf_inspect_s64_hexadecimal.c buf_inspect_s64_octal.c buf_inspect_s8.c buf_inspect_s8_binary.c buf_inspect_s8_decimal.c buf_inspect_s8_hexadecimal.c buf_inspect_s8_octal.c buf_inspect_sw.c buf_inspect_sw_binary.c buf_inspect_sw_decimal.c buf_inspect_sw_hexadecimal.c buf_inspect_sw_octal.c buf_inspect_u16.c buf_inspect_u16_binary.c buf_inspect_u16_decimal.c buf_inspect_u16_hexadecimal.c buf_inspect_u16_octal.c buf_inspect_u32.c buf_inspect_u32_binary.c buf_inspect_u32_decimal.c buf_inspect_u32_hexadecimal.c buf_inspect_u32_octal.c buf_inspect_u64.c buf_inspect_u64_binary.c buf_inspect_u64_decimal.c buf_inspect_u64_hexadecimal.c buf_inspect_u64_octal.c buf_inspect_u8.c buf_inspect_u8_binary.c buf_inspect_u8_decimal.c buf_inspect_u8_hexadecimal.c buf_inspect_u8_octal.c buf_inspect_uw.c buf_inspect_uw_binary.c buf_inspect_uw_decimal.c buf_inspect_uw_hexadecimal.c buf_inspect_uw_octal.c buf_parse.c buf_parse_s16.c buf_parse_s32.c buf_parse_s64.c buf_parse_s8.c buf_parse_sw.c buf_parse_u16.c buf_parse_u32.c buf_parse_u64.c buf_parse_u8.c buf_parse_uw.c buf_save.c c3.c call.c ceiling.c cfn.c character.c compare.c complex.c cow.c data.c env.c error.c error_handler.c eval.c f128.c f32.c f64.c fact.c fact_action.c fact_list.c facts.c facts_cursor.c facts_spec.c facts_spec_cursor.c facts_transaction.c facts_with.c facts_with_cursor.c file.c fn.c fn_clause.c frame.c hash.c ident.c integer.c io.c license.c list.c list_init.c log.c map.c module.c operator.c pcomplex.c pcow.c ptag.c ptr.c ptr_free.c queue.c quote.c ratio.c s16.c s32.c s64.c s8.c sequence.c set__fact.c set__tag.c set_cursor__fact.c set_cursor__tag.c set_item__fact.c set_item__tag.c sign.c skiplist__fact.c skiplist_node__fact.c special_operator.c str.c struct.c struct_type.c sw.c sym.c tag.c tag_add.c tag_addi.c tag_band.c tag_bnot.c tag_bor.c tag_bxor.c tag_div.c tag_init.c tag_mod.c tag_mul.c tag_neg.c tag_shift_left.c tag_shift_right.c tag_sqrt.c tag_sub.c tag_type.c time.c tuple.c u16.c u32.c u64.c u8.c ucd.c unquote.c uw.c var.c void.c '
diff --git a/libc3/update_sources b/libc3/update_sources
index 8bbe5ec..5689d2a 100755
--- a/libc3/update_sources
+++ b/libc3/update_sources
@@ -18,10 +18,10 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
LO_SOURCES="$SOURCES
diff --git a/libc3_web/update_sources b/libc3_web/update_sources
index e93ed93..bf0c47f 100755
--- a/libc3_web/update_sources
+++ b/libc3_web/update_sources
@@ -18,10 +18,10 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/cairo/demo/update_sources b/libc3_window/cairo/demo/update_sources
index 2994a6e..47f228d 100755
--- a/libc3_window/cairo/demo/update_sources
+++ b/libc3_window/cairo/demo/update_sources
@@ -18,10 +18,10 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/cairo/quartz/demo/sources.mk b/libc3_window/cairo/quartz/demo/sources.mk
index c6be882..27c1b5e 100644
--- a/libc3_window/cairo/quartz/demo/sources.mk
+++ b/libc3_window/cairo/quartz/demo/sources.mk
@@ -1,4 +1,7 @@
# sources.mk generated by update_sources
+HEADERS = \
+ "" \
+
SOURCES = \
"window_cairo_quartz_demo.c" \
diff --git a/libc3_window/cairo/quartz/demo/sources.sh b/libc3_window/cairo/quartz/demo/sources.sh
index e65d11e..26d1842 100644
--- a/libc3_window/cairo/quartz/demo/sources.sh
+++ b/libc3_window/cairo/quartz/demo/sources.sh
@@ -1,2 +1,3 @@
# sources.sh generated by update_sources
+HEADERS=' '
SOURCES='window_cairo_quartz_demo.c '
diff --git a/libc3_window/cairo/quartz/demo/update_sources b/libc3_window/cairo/quartz/demo/update_sources
index e079a07..4be44dd 100755
--- a/libc3_window/cairo/quartz/demo/update_sources
+++ b/libc3_window/cairo/quartz/demo/update_sources
@@ -18,7 +18,11 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-SOURCES="$(ls *.c | sort)"
+#HEADERS="$(ls *.h | grep -v '^config.h$')"
+HEADERS=
+sources HEADERS "$HEADERS"
+
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/cairo/quartz/update_sources b/libc3_window/cairo/quartz/update_sources
index 0081685..de74110 100755
--- a/libc3_window/cairo/quartz/update_sources
+++ b/libc3_window/cairo/quartz/update_sources
@@ -18,13 +18,13 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
-OBJC_SOURCES="$(ls *.m | sort)"
+OBJC_SOURCES="$(ls *.m)"
sources OBJC_SOURCES "$OBJC_SOURCES"
update_sources_mk
diff --git a/libc3_window/cairo/update_sources b/libc3_window/cairo/update_sources
index 5ba8560..2fc43a3 100755
--- a/libc3_window/cairo/update_sources
+++ b/libc3_window/cairo/update_sources
@@ -18,10 +18,10 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/cairo/win32/demo/update_sources b/libc3_window/cairo/win32/demo/update_sources
index 44c0c37..4be44dd 100755
--- a/libc3_window/cairo/win32/demo/update_sources
+++ b/libc3_window/cairo/win32/demo/update_sources
@@ -18,11 +18,11 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
+#HEADERS="$(ls *.h | grep -v '^config.h$')"
HEADERS=
-#HEADERS="$(ls *.h | sort)"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/cairo/win32/update_sources b/libc3_window/cairo/win32/update_sources
index 89263d9..ace9dc3 100755
--- a/libc3_window/cairo/win32/update_sources
+++ b/libc3_window/cairo/win32/update_sources
@@ -18,10 +18,10 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/cairo/xcb/demo/update_sources b/libc3_window/cairo/xcb/demo/update_sources
index 44c0c37..f975572 100755
--- a/libc3_window/cairo/xcb/demo/update_sources
+++ b/libc3_window/cairo/xcb/demo/update_sources
@@ -19,10 +19,10 @@ echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
HEADERS=
-#HEADERS="$(ls *.h | sort)"
+#HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/cairo/xcb/sources.mk b/libc3_window/cairo/xcb/sources.mk
index 696ef79..aa817cf 100644
--- a/libc3_window/cairo/xcb/sources.mk
+++ b/libc3_window/cairo/xcb/sources.mk
@@ -1,6 +1,5 @@
# sources.mk generated by update_sources
HEADERS = \
- "config.h" \
"window_cairo_xcb.h" \
SOURCES = \
diff --git a/libc3_window/cairo/xcb/sources.sh b/libc3_window/cairo/xcb/sources.sh
index 3bb21bc..7890149 100644
--- a/libc3_window/cairo/xcb/sources.sh
+++ b/libc3_window/cairo/xcb/sources.sh
@@ -1,3 +1,3 @@
# sources.sh generated by update_sources
-HEADERS='config.h window_cairo_xcb.h '
+HEADERS='window_cairo_xcb.h '
SOURCES='window_cairo_xcb.c '
diff --git a/libc3_window/cairo/xcb/update_sources b/libc3_window/cairo/xcb/update_sources
index 89263d9..ace9dc3 100755
--- a/libc3_window/cairo/xcb/update_sources
+++ b/libc3_window/cairo/xcb/update_sources
@@ -18,10 +18,10 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/sdl2/demo/update_sources b/libc3_window/sdl2/demo/update_sources
index 2994a6e..47f228d 100755
--- a/libc3_window/sdl2/demo/update_sources
+++ b/libc3_window/sdl2/demo/update_sources
@@ -18,10 +18,10 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/sdl2/update_sources b/libc3_window/sdl2/update_sources
index 2c1b4c7..bd30044 100755
--- a/libc3_window/sdl2/update_sources
+++ b/libc3_window/sdl2/update_sources
@@ -18,10 +18,10 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libc3_window/update_sources b/libc3_window/update_sources
index 42d3019..534ad20 100755
--- a/libc3_window/update_sources
+++ b/libc3_window/update_sources
@@ -18,10 +18,10 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h | sort)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
-SOURCES="$(ls *.c | sort)"
+SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"
update_sources_mk
diff --git a/libtommath b/libtommath
index f513129..9ac774f 160000
--- a/libtommath
+++ b/libtommath
@@ -1 +1 @@
-Subproject commit f5131299e29f85ea3610c07c80e5ea3195e45e77
+Subproject commit 9ac774f7ed217fd2412fd25dbead5b0e5f05b147
diff --git a/math/update_sources b/math/update_sources
index 8abe9b4..fb6bb79 100755
--- a/math/update_sources
+++ b/math/update_sources
@@ -13,10 +13,12 @@
. ../config.subr
+echo "$PWD/update_sources"
+
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-HEADERS="$(ls *.h)"
+HEADERS="$(ls *.h | grep -v '^config.h$')"
sources HEADERS "$HEADERS"
SOURCES="$(ls *.c)"
diff --git a/test/sources.mk b/test/sources.mk
index 6846362..86cbc63 100644
--- a/test/sources.mk
+++ b/test/sources.mk
@@ -1,4 +1,12 @@
# sources.mk generated by update_sources
+HEADERS = \
+ "buf_parse_test.h" \
+ "buf_parse_test_su.h" \
+ "compare_test.h" \
+ "fact_test.h" \
+ "tag_test.h" \
+ "test.h" \
+
SOURCES = \
"array_test.c" \
"bool_test.c" \
diff --git a/test/sources.sh b/test/sources.sh
index 3e0ad79..56a6080 100644
--- a/test/sources.sh
+++ b/test/sources.sh
@@ -1,2 +1,3 @@
# sources.sh generated by update_sources
+HEADERS='buf_parse_test.h buf_parse_test_su.h compare_test.h fact_test.h tag_test.h test.h '
SOURCES='array_test.c bool_test.c buf_file_test.c buf_inspect_test.c buf_parse_test.c buf_parse_test_s16.c buf_parse_test_s32.c buf_parse_test_s64.c buf_parse_test_s8.c buf_parse_test_u16.c buf_parse_test_u32.c buf_parse_test_u64.c buf_parse_test_u8.c buf_test.c call_test.c cfn_test.c character_test.c compare_test.c env_test.c fact_test.c facts_cursor_test.c facts_test.c facts_with_test.c fn_test.c hash_test.c ident_test.c libc3_test.c list_test.c ratio_test.c set__fact_test.c set__tag_test.c skiplist__fact_test.c str_test.c sym_test.c tag_test.c test.c tuple_test.c types_test.c '
diff --git a/test/update_sources b/test/update_sources
index 606f885..b650135 100755
--- a/test/update_sources
+++ b/test/update_sources
@@ -16,6 +16,9 @@
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
+HEADERS="$(ls *.h | grep -v '^config.h$')"
+sources HEADERS "$HEADERS"
+
SOURCES="$(ls *.c)"
sources SOURCES "$SOURCES"