summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgumi <git@gumi.ca>2019-04-12 12:12:38 -0400
committergumi <git@gumi.ca>2019-04-15 11:58:44 -0400
commit1886d63ef5986a3e613b4880dc7ae00636435e0a (patch)
tree33da7b7c6e40eda3150da361038c668b546986d2
parent74b9c2b7a055be043e449b3907059e5d2e5b49ed (diff)
downloadtmwa-1886d63ef5986a3e613b4880dc7ae00636435e0a.tar.gz
tmwa-1886d63ef5986a3e613b4880dc7ae00636435e0a.tar.bz2
tmwa-1886d63ef5986a3e613b4880dc7ae00636435e0a.tar.xz
tmwa-1886d63ef5986a3e613b4880dc7ae00636435e0a.zip
add gm automod tool
-rw-r--r--out5612
-rw-r--r--src/map/clif.cpp89
-rw-r--r--src/map/clif.hpp1
-rw-r--r--src/map/map.hpp11
-rw-r--r--src/map/pc.cpp33
-rw-r--r--src/map/script-fun.cpp4
-rw-r--r--src/mmo/clif.t.hpp1
7 files changed, 5750 insertions, 1 deletions
diff --git a/out b/out
new file mode 100644
index 0000000..2e3fd42
--- /dev/null
+++ b/out
@@ -0,0 +1,5612 @@
+
+Welcome to the One Makefile
+Copyright 2012-2014 Ben Longbons
+
+One Makefile to build them all,
+One Makefile to find them,
+One Makefile to bring them all
+and in the darkness link them.
+
+rm -f stamp/generated.stamp
+mkdir -p ./src/proto2
+cd . && protocol.py
+touch stamp/generate-proto2.stamp
+rm -f stamp/generated.stamp
+mkdir -p ./src/debug-debug
+rm -f ./src/debug-debug/test.cpp
+debug-debug-scripts ./src/debug-debug/ src/compat/borrow.py src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/map/map.py src/map/mapflag.py src/map/script-parse.py src/map/script-persist.py src/mmo/ids.py src/mmo/strs.py src/net/ip.py src/net/timer.py src/sexpr/parser.py src/sexpr/variant.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py
+touch stamp/generate-debug-debug.stamp
+rm -f stamp/generated.stamp
+cd . && config.py
+touch stamp/generate-config.stamp
+touch stamp/generated.stamp
+Makefile:330: obj/admin/admin_conf.d: No such file or directory
+Makefile:330: obj/admin/globals.d: No such file or directory
+Makefile:330: obj/admin/ladmin.d: No such file or directory
+Makefile:330: obj/admin/main.d: No such file or directory
+Makefile:330: obj/ast/item.d: No such file or directory
+Makefile:330: obj/ast/item_test.d: No such file or directory
+Makefile:330: obj/ast/npc.d: No such file or directory
+Makefile:330: obj/ast/npc_test.d: No such file or directory
+Makefile:330: obj/ast/quest.d: No such file or directory
+Makefile:330: obj/ast/script.d: No such file or directory
+Makefile:330: obj/char/char.d: No such file or directory
+Makefile:330: obj/char/char_conf.d: No such file or directory
+Makefile:330: obj/char/char_lan_conf.d: No such file or directory
+Makefile:330: obj/char/globals.d: No such file or directory
+Makefile:330: obj/char/inter.d: No such file or directory
+Makefile:330: obj/char/inter_conf.d: No such file or directory
+Makefile:330: obj/char/int_party.d: No such file or directory
+Makefile:330: obj/char/int_storage.d: No such file or directory
+Makefile:330: obj/char/main.d: No such file or directory
+Makefile:330: obj/compat/iter_test.d: No such file or directory
+Makefile:330: obj/compat/nullpo.d: No such file or directory
+Makefile:330: obj/compat/option_test.d: No such file or directory
+Makefile:330: obj/compat/result_test.d: No such file or directory
+Makefile:330: obj/debug-debug/compat-borrow.d: No such file or directory
+Makefile:330: obj/debug-debug/compat-option.d: No such file or directory
+Makefile:330: obj/debug-debug/generic-dumb_ptr.d: No such file or directory
+Makefile:330: obj/debug-debug/ints-wrap.d: No such file or directory
+Makefile:330: obj/debug-debug/map-map.d: No such file or directory
+Makefile:330: obj/debug-debug/map-mapflag.d: No such file or directory
+Makefile:330: obj/debug-debug/map-script-parse.d: No such file or directory
+Makefile:330: obj/debug-debug/map-script-persist.d: No such file or directory
+Makefile:330: obj/debug-debug/mmo-ids.d: No such file or directory
+Makefile:330: obj/debug-debug/mmo-strs.d: No such file or directory
+Makefile:330: obj/debug-debug/net-ip.d: No such file or directory
+Makefile:330: obj/debug-debug/net-timer.d: No such file or directory
+Makefile:330: obj/debug-debug/sexpr-parser.d: No such file or directory
+Makefile:330: obj/debug-debug/sexpr-variant.d: No such file or directory
+Makefile:330: obj/debug-debug/strings-astring.d: No such file or directory
+Makefile:330: obj/debug-debug/strings-literal.d: No such file or directory
+Makefile:330: obj/debug-debug/strings-rstring.d: No such file or directory
+Makefile:330: obj/debug-debug/strings-vstring.d: No such file or directory
+Makefile:330: obj/debug-debug/strings-xstring.d: No such file or directory
+Makefile:330: obj/debug-debug/strings-zstring.d: No such file or directory
+Makefile:330: obj/generic/array_test.d: No such file or directory
+Makefile:330: obj/generic/intern-pool_test.d: No such file or directory
+Makefile:330: obj/generic/md5.d: No such file or directory
+Makefile:330: obj/generic/md5_test.d: No such file or directory
+Makefile:330: obj/generic/oops.d: No such file or directory
+Makefile:330: obj/generic/oops_test.d: No such file or directory
+Makefile:330: obj/generic/random.d: No such file or directory
+Makefile:330: obj/high/core.d: No such file or directory
+Makefile:330: obj/high/extract_mmo.d: No such file or directory
+Makefile:330: obj/high/md5more.d: No such file or directory
+Makefile:330: obj/high/utils.d: No such file or directory
+Makefile:330: obj/ints/cmp_test.d: No such file or directory
+Makefile:330: obj/ints/udl_test.d: No such file or directory
+Makefile:330: obj/io/dir.d: No such file or directory
+Makefile:330: obj/io/extract.d: No such file or directory
+Makefile:330: obj/io/extract_test.d: No such file or directory
+Makefile:330: obj/io/fd.d: No such file or directory
+Makefile:330: obj/io/line.d: No such file or directory
+Makefile:330: obj/io/line_test.d: No such file or directory
+Makefile:330: obj/io/lock.d: No such file or directory
+Makefile:330: obj/io/read.d: No such file or directory
+Makefile:330: obj/io/read_test.d: No such file or directory
+Makefile:330: obj/io/span.d: No such file or directory
+Makefile:330: obj/io/write.d: No such file or directory
+Makefile:330: obj/io/write_test.d: No such file or directory
+Makefile:330: obj/login/globals.d: No such file or directory
+Makefile:330: obj/login/login.d: No such file or directory
+Makefile:330: obj/login/login_conf.d: No such file or directory
+Makefile:330: obj/login/login_lan_conf.d: No such file or directory
+Makefile:330: obj/login/main.d: No such file or directory
+Makefile:330: obj/map/atcommand.d: No such file or directory
+Makefile:330: obj/map/battle.d: No such file or directory
+Makefile:330: obj/map/battle_conf.d: No such file or directory
+Makefile:330: obj/map/chrif.d: No such file or directory
+Makefile:330: obj/map/clif.d: No such file or directory
+Makefile:330: obj/map/globals.d: No such file or directory
+Makefile:330: obj/map/grfio.d: No such file or directory
+Makefile:330: obj/map/intif.d: No such file or directory
+Makefile:330: obj/map/itemdb.d: No such file or directory
+Makefile:330: obj/map/main.d: No such file or directory
+Makefile:330: obj/map/map.d: No such file or directory
+Makefile:330: obj/map/mapflag.d: No such file or directory
+Makefile:330: obj/map/map_conf.d: No such file or directory
+Makefile:330: obj/map/mob.d: No such file or directory
+Makefile:330: obj/map/npc-parse.d: No such file or directory
+Makefile:330: obj/map/npc.d: No such file or directory
+Makefile:330: obj/map/party.d: No such file or directory
+Makefile:330: obj/map/path.d: No such file or directory
+Makefile:330: obj/map/pc.d: No such file or directory
+Makefile:330: obj/map/quest.d: No such file or directory
+Makefile:330: obj/map/script-call.d: No such file or directory
+Makefile:330: obj/map/script-fun.d: No such file or directory
+Makefile:330: obj/map/script-parse.d: No such file or directory
+Makefile:330: obj/map/script-startup.d: No such file or directory
+Makefile:330: obj/map/skill-pools.d: No such file or directory
+Makefile:330: obj/map/skill.d: No such file or directory
+Makefile:330: obj/map/storage.d: No such file or directory
+Makefile:330: obj/map/tmw.d: No such file or directory
+Makefile:330: obj/map/trade.d: No such file or directory
+Makefile:330: obj/mmo/config_parse.d: No such file or directory
+Makefile:330: obj/mmo/config_parse_test.d: No such file or directory
+Makefile:330: obj/mmo/extract_enums.d: No such file or directory
+Makefile:330: obj/mmo/human_time_diff.d: No such file or directory
+Makefile:330: obj/mmo/human_time_diff_test.d: No such file or directory
+Makefile:330: obj/mmo/ids.d: No such file or directory
+Makefile:330: obj/mmo/strs.d: No such file or directory
+Makefile:330: obj/mmo/version.d: No such file or directory
+Makefile:330: obj/net/ip.d: No such file or directory
+Makefile:330: obj/net/ip_test.d: No such file or directory
+Makefile:330: obj/net/socket.d: No such file or directory
+Makefile:330: obj/net/timer.d: No such file or directory
+Makefile:330: obj/net/timestamp-utils.d: No such file or directory
+Makefile:330: obj/range/slice_test.d: No such file or directory
+Makefile:330: obj/sexpr/lexer.d: No such file or directory
+Makefile:330: obj/sexpr/lexer_test.d: No such file or directory
+Makefile:330: obj/sexpr/parser.d: No such file or directory
+Makefile:330: obj/sexpr/parser_test.d: No such file or directory
+Makefile:330: obj/sexpr/union_test.d: No such file or directory
+Makefile:330: obj/sexpr/variant_test.d: No such file or directory
+Makefile:330: obj/shared/lib.d: No such file or directory
+Makefile:330: obj/strings/astring.d: No such file or directory
+Makefile:330: obj/strings/base_test.d: No such file or directory
+Makefile:330: obj/strings/literal.d: No such file or directory
+Makefile:330: obj/strings/mstring.d: No such file or directory
+Makefile:330: obj/strings/rstring.d: No such file or directory
+Makefile:330: obj/strings/sstring.d: No such file or directory
+Makefile:330: obj/strings/strings2_test.d: No such file or directory
+Makefile:330: obj/strings/strings_test.d: No such file or directory
+Makefile:330: obj/strings/tstring.d: No such file or directory
+Makefile:330: obj/strings/xstring.d: No such file or directory
+Makefile:330: obj/strings/zstring.d: No such file or directory
+Makefile:330: obj/wire/packets.d: No such file or directory
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/zstring := ' \
+ -MF obj/strings/zstring.d src/strings/zstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/strings_test := ' \
+ -MF obj/strings/strings_test.d src/strings/strings_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/rstring := ' \
+ -MF obj/strings/rstring.d src/strings/rstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'shared/lib := ' \
+ -MF obj/shared/lib.d src/shared/lib.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'sexpr/lexer := ' \
+ -MF obj/sexpr/lexer.d src/sexpr/lexer.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/sstring := ' \
+ -MF obj/strings/sstring.d src/strings/sstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'wire/packets := ' \
+ -MF obj/wire/packets.d src/wire/packets.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'sexpr/parser_test := ' \
+ -MF obj/sexpr/parser_test.d src/sexpr/parser_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'sexpr/union_test := ' \
+ -MF obj/sexpr/union_test.d src/sexpr/union_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/strings2_test := ' \
+ -MF obj/strings/strings2_test.d src/strings/strings2_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/base_test := ' \
+ -MF obj/strings/base_test.d src/strings/base_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'sexpr/variant_test := ' \
+ -MF obj/sexpr/variant_test.d src/sexpr/variant_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'sexpr/lexer_test := ' \
+ -MF obj/sexpr/lexer_test.d src/sexpr/lexer_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/mstring := ' \
+ -MF obj/strings/mstring.d src/strings/mstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/xstring := ' \
+ -MF obj/strings/xstring.d src/strings/xstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'sexpr/parser := ' \
+ -MF obj/sexpr/parser.d src/sexpr/parser.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/astring := ' \
+ -MF obj/strings/astring.d src/strings/astring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/literal := ' \
+ -MF obj/strings/literal.d src/strings/literal.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'strings/tstring := ' \
+ -MF obj/strings/tstring.d src/strings/tstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'range/slice_test := ' \
+ -MF obj/range/slice_test.d src/range/slice_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'net/timer := ' \
+ -MF obj/net/timer.d src/net/timer.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'net/ip_test := ' \
+ -MF obj/net/ip_test.d src/net/ip_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'net/timestamp-utils := ' \
+ -MF obj/net/timestamp-utils.d src/net/timestamp-utils.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'net/socket := ' \
+ -MF obj/net/socket.d src/net/socket.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'mmo/strs := ' \
+ -MF obj/mmo/strs.d src/mmo/strs.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'mmo/version := ' \
+ -MF obj/mmo/version.d src/mmo/version.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'net/ip := ' \
+ -MF obj/net/ip.d src/net/ip.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'mmo/ids := ' \
+ -MF obj/mmo/ids.d src/mmo/ids.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'mmo/human_time_diff_test := ' \
+ -MF obj/mmo/human_time_diff_test.d src/mmo/human_time_diff_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'mmo/human_time_diff := ' \
+ -MF obj/mmo/human_time_diff.d src/mmo/human_time_diff.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'mmo/extract_enums := ' \
+ -MF obj/mmo/extract_enums.d src/mmo/extract_enums.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'mmo/config_parse_test := ' \
+ -MF obj/mmo/config_parse_test.d src/mmo/config_parse_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'mmo/config_parse := ' \
+ -MF obj/mmo/config_parse.d src/mmo/config_parse.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/trade := ' \
+ -MF obj/map/trade.d src/map/trade.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/tmw := ' \
+ -MF obj/map/tmw.d src/map/tmw.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/storage := ' \
+ -MF obj/map/storage.d src/map/storage.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/skill := ' \
+ -MF obj/map/skill.d src/map/skill.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/skill-pools := ' \
+ -MF obj/map/skill-pools.d src/map/skill-pools.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/script-startup := ' \
+ -MF obj/map/script-startup.d src/map/script-startup.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/script-parse := ' \
+ -MF obj/map/script-parse.d src/map/script-parse.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/script-fun := ' \
+ -MF obj/map/script-fun.d src/map/script-fun.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/script-call := ' \
+ -MF obj/map/script-call.d src/map/script-call.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/quest := ' \
+ -MF obj/map/quest.d src/map/quest.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/pc := ' \
+ -MF obj/map/pc.d src/map/pc.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/path := ' \
+ -MF obj/map/path.d src/map/path.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/party := ' \
+ -MF obj/map/party.d src/map/party.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/npc := ' \
+ -MF obj/map/npc.d src/map/npc.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/npc-parse := ' \
+ -MF obj/map/npc-parse.d src/map/npc-parse.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/mob := ' \
+ -MF obj/map/mob.d src/map/mob.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/map_conf := ' \
+ -MF obj/map/map_conf.d src/map/map_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/mapflag := ' \
+ -MF obj/map/mapflag.d src/map/mapflag.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/map := ' \
+ -MF obj/map/map.d src/map/map.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/main := ' \
+ -MF obj/map/main.d src/map/main.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/itemdb := ' \
+ -MF obj/map/itemdb.d src/map/itemdb.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/grfio := ' \
+ -MF obj/map/grfio.d src/map/grfio.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/intif := ' \
+ -MF obj/map/intif.d src/map/intif.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/globals := ' \
+ -MF obj/map/globals.d src/map/globals.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/clif := ' \
+ -MF obj/map/clif.d src/map/clif.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/chrif := ' \
+ -MF obj/map/chrif.d src/map/chrif.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/battle_conf := ' \
+ -MF obj/map/battle_conf.d src/map/battle_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/battle := ' \
+ -MF obj/map/battle.d src/map/battle.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'map/atcommand := ' \
+ -MF obj/map/atcommand.d src/map/atcommand.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'login/main := ' \
+ -MF obj/login/main.d src/login/main.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'login/login_lan_conf := ' \
+ -MF obj/login/login_lan_conf.d src/login/login_lan_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'login/login_conf := ' \
+ -MF obj/login/login_conf.d src/login/login_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'login/login := ' \
+ -MF obj/login/login.d src/login/login.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'login/globals := ' \
+ -MF obj/login/globals.d src/login/globals.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/write_test := ' \
+ -MF obj/io/write_test.d src/io/write_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/write := ' \
+ -MF obj/io/write.d src/io/write.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/span := ' \
+ -MF obj/io/span.d src/io/span.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/read_test := ' \
+ -MF obj/io/read_test.d src/io/read_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/read := ' \
+ -MF obj/io/read.d src/io/read.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/lock := ' \
+ -MF obj/io/lock.d src/io/lock.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/line_test := ' \
+ -MF obj/io/line_test.d src/io/line_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/fd := ' \
+ -MF obj/io/fd.d src/io/fd.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/line := ' \
+ -MF obj/io/line.d src/io/line.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/extract_test := ' \
+ -MF obj/io/extract_test.d src/io/extract_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/extract := ' \
+ -MF obj/io/extract.d src/io/extract.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'io/dir := ' \
+ -MF obj/io/dir.d src/io/dir.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'ints/udl_test := ' \
+ -MF obj/ints/udl_test.d src/ints/udl_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'ints/cmp_test := ' \
+ -MF obj/ints/cmp_test.d src/ints/cmp_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'high/utils := ' \
+ -MF obj/high/utils.d src/high/utils.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'high/md5more := ' \
+ -MF obj/high/md5more.d src/high/md5more.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'high/extract_mmo := ' \
+ -MF obj/high/extract_mmo.d src/high/extract_mmo.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'high/core := ' \
+ -MF obj/high/core.d src/high/core.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'generic/random := ' \
+ -MF obj/generic/random.d src/generic/random.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'generic/oops_test := ' \
+ -MF obj/generic/oops_test.d src/generic/oops_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'generic/oops := ' \
+ -MF obj/generic/oops.d src/generic/oops.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'generic/md5_test := ' \
+ -MF obj/generic/md5_test.d src/generic/md5_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'generic/md5 := ' \
+ -MF obj/generic/md5.d src/generic/md5.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'generic/intern-pool_test := ' \
+ -MF obj/generic/intern-pool_test.d src/generic/intern-pool_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'generic/array_test := ' \
+ -MF obj/generic/array_test.d src/generic/array_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/strings-zstring := ' \
+ -MF obj/debug-debug/strings-zstring.d src/debug-debug/strings-zstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/strings-xstring := ' \
+ -MF obj/debug-debug/strings-xstring.d src/debug-debug/strings-xstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/strings-vstring := ' \
+ -MF obj/debug-debug/strings-vstring.d src/debug-debug/strings-vstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/strings-rstring := ' \
+ -MF obj/debug-debug/strings-rstring.d src/debug-debug/strings-rstring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/strings-literal := ' \
+ -MF obj/debug-debug/strings-literal.d src/debug-debug/strings-literal.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/strings-astring := ' \
+ -MF obj/debug-debug/strings-astring.d src/debug-debug/strings-astring.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/sexpr-variant := ' \
+ -MF obj/debug-debug/sexpr-variant.d src/debug-debug/sexpr-variant.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/sexpr-parser := ' \
+ -MF obj/debug-debug/sexpr-parser.d src/debug-debug/sexpr-parser.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/net-timer := ' \
+ -MF obj/debug-debug/net-timer.d src/debug-debug/net-timer.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/net-ip := ' \
+ -MF obj/debug-debug/net-ip.d src/debug-debug/net-ip.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/mmo-strs := ' \
+ -MF obj/debug-debug/mmo-strs.d src/debug-debug/mmo-strs.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/mmo-ids := ' \
+ -MF obj/debug-debug/mmo-ids.d src/debug-debug/mmo-ids.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/map-script-persist := ' \
+ -MF obj/debug-debug/map-script-persist.d src/debug-debug/map-script-persist.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/map-script-parse := ' \
+ -MF obj/debug-debug/map-script-parse.d src/debug-debug/map-script-parse.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/map-mapflag := ' \
+ -MF obj/debug-debug/map-mapflag.d src/debug-debug/map-mapflag.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/map-map := ' \
+ -MF obj/debug-debug/map-map.d src/debug-debug/map-map.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/ints-wrap := ' \
+ -MF obj/debug-debug/ints-wrap.d src/debug-debug/ints-wrap.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/generic-dumb_ptr := ' \
+ -MF obj/debug-debug/generic-dumb_ptr.d src/debug-debug/generic-dumb_ptr.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/compat-option := ' \
+ -MF obj/debug-debug/compat-option.d src/debug-debug/compat-option.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'debug-debug/compat-borrow := ' \
+ -MF obj/debug-debug/compat-borrow.d src/debug-debug/compat-borrow.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'compat/result_test := ' \
+ -MF obj/compat/result_test.d src/compat/result_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'compat/option_test := ' \
+ -MF obj/compat/option_test.d src/compat/option_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'compat/nullpo := ' \
+ -MF obj/compat/nullpo.d src/compat/nullpo.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'compat/iter_test := ' \
+ -MF obj/compat/iter_test.d src/compat/iter_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'char/main := ' \
+ -MF obj/char/main.d src/char/main.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'char/int_storage := ' \
+ -MF obj/char/int_storage.d src/char/int_storage.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'char/int_party := ' \
+ -MF obj/char/int_party.d src/char/int_party.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'char/inter_conf := ' \
+ -MF obj/char/inter_conf.d src/char/inter_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'char/inter := ' \
+ -MF obj/char/inter.d src/char/inter.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'char/globals := ' \
+ -MF obj/char/globals.d src/char/globals.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'char/char_lan_conf := ' \
+ -MF obj/char/char_lan_conf.d src/char/char_lan_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'char/char_conf := ' \
+ -MF obj/char/char_conf.d src/char/char_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'char/char := ' \
+ -MF obj/char/char.d src/char/char.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'ast/script := ' \
+ -MF obj/ast/script.d src/ast/script.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'ast/quest := ' \
+ -MF obj/ast/quest.d src/ast/quest.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'ast/npc_test := ' \
+ -MF obj/ast/npc_test.d src/ast/npc_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'ast/npc := ' \
+ -MF obj/ast/npc.d src/ast/npc.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'ast/item_test := ' \
+ -MF obj/ast/item_test.d src/ast/item_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'ast/item := ' \
+ -MF obj/ast/item.d src/ast/item.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'admin/main := ' \
+ -MF obj/admin/main.d src/admin/main.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'admin/ladmin := ' \
+ -MF obj/admin/ladmin.d src/admin/ladmin.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'admin/globals := ' \
+ -MF obj/admin/globals.d src/admin/globals.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'admin/admin_conf := ' \
+ -MF obj/admin/admin_conf.d src/admin/admin_conf.cpp
+The Road goes ever on and on ...
+make: 'stamp/generated.stamp' is up to date.
+cmp: conf-raw/int-VENDOR_POINT.h: No such file or directory
+cmp: conf-raw/int-VERSION_MINOR.h: No such file or directory
+cmp: conf-raw/str-VENDOR_NAME.hcmp: conf-raw/str-PACKAGELOCALSTATEDIR.h: No such file or directory
+: No such file or directory
+cmp: conf-raw/int-VERSION_MAJOR.hcmp: conf-raw/str-VENDOR_SOURCE.h: No such file or directory
+: No such file or directory
+cmp: conf-raw/str-PACKAGESYSCONFDIR.h: No such file or directory
+cmp: conf-raw/int-VERSION_DEVEL.h: No such file or directory
+cmp: conf-raw/str-VERSION_HASH.h: No such file or directory
+cmp: conf-raw/str-VERSION_STRING.h: No such file or directory
+cmp: conf-raw/int-VERSION_PATCH.h: No such file or directory
+cmp: conf-raw/str-VERSION_FULL.h: No such file or directory
+cmp: conf-raw/str-PACKAGEDATADIR.h: No such file or directory
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/mmo/ids.py src/mmo/strs.py src/net/ip.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/net/timer.py \
+ src/main-gdb-tail.py \
+ > bin/tmwa-admin-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/dir.pdc.o src/io/dir.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/read.pdc.o src/io/read.cpp
+ln -sf tmwa-admin-gdb.py bin/tmwa-admin.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/span.pdc.o src/io/span.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/admin/admin_conf.pdc.o src/admin/admin_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/write.pdc.o src/io/write.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/admin/ladmin.pdc.o src/admin/ladmin.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/mmo/version.pdc.o src/mmo/version.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/mmo/config_parse.pdc.o src/mmo/config_parse.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/high/core.pdc.o src/high/core.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/admin/main.pdc.o src/admin/main.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/fd.pdc.o src/io/fd.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/extract.pdc.o src/io/extract.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/mmo/strs.pdc.o src/mmo/strs.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/generic/oops.pdc.o src/generic/oops.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/mmo/human_time_diff.pdc.o src/mmo/human_time_diff.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/net/ip.pdc.o src/net/ip.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/high/utils.pdc.o src/high/utils.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/mmo/ids.pdc.o src/mmo/ids.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/admin/globals.pdc.o src/admin/globals.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/net/socket.pdc.o src/net/socket.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/net/timestamp-utils.pdc.o src/net/timestamp-utils.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/astring.pdc.o src/strings/astring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/literal.pdc.o src/strings/literal.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/mstring.pdc.o src/strings/mstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/rstring.pdc.o src/strings/rstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/tstring.pdc.o src/strings/tstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/sstring.pdc.o src/strings/sstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/xstring.pdc.o src/strings/xstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/zstring.pdc.o src/strings/zstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/wire/packets.pdc.o src/wire/packets.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/high/extract_mmo.pdc.o src/high/extract_mmo.cpp
+cat ./src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ ./src/main-gdb-tail.py \
+ > lib/libtmwa-shared.so.0.18.12.30.6.0-gdb.py
+In file included from src/admin/ladmin.cpp:37:
+src/admin/../io/cxxstdio.hpp: In instantiation of ‘static int tmwa::cxxstdio::PrintFormatter<Format>::print(T&&, A&& ...) [with T = tmwa::strings::AString&; A = {}; Format = tmwa::do_init(tmwa::Slice<tmwa::strings::ZString>)::format_impl]’:
+src/admin/ladmin.cpp:2550:5: required from here
+src/admin/../io/cxxstdio.hpp:79:28: warning: zero-length gnu_printf format string [-Wformat-zero-length]
+ return do_print(std::forward<T>(t), print_format,
+ ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ decay_for_printf(convert_for_printf(std::forward<A>(a)))...);
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/mmo/extract_enums.pdc.o src/mmo/extract_enums.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/line.pdc.o src/io/line.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/net/timer.pdc.o src/net/timer.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/shared/lib.pic.o src/shared/lib.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/io/dir.pic.o src/io/dir.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/io/fd.pic.o src/io/fd.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/io/write.pic.o src/io/write.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/io/read.pic.o src/io/read.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/strings/astring.pic.o src/strings/astring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/strings/literal.pic.o src/strings/literal.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/strings/mstring.pic.o src/strings/mstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/strings/rstring.pic.o src/strings/rstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/strings/sstring.pic.o src/strings/sstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/strings/tstring.pic.o src/strings/tstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/strings/xstring.pic.o src/strings/xstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -fPIC -c -o obj/strings/zstring.pic.o src/strings/zstring.cpp
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/mmo/ids.py src/mmo/strs.py src/net/ip.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/net/timer.py \
+ src/main-gdb-tail.py \
+ > bin/tmwa-char-gdb.py
+ln -sf tmwa-char-gdb.py bin/tmwa-char.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/char/char.pdc.o src/char/char.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/char/main.pdc.o src/char/main.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/char/char_lan_conf.pdc.o src/char/char_lan_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/char/char_conf.pdc.o src/char/char_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/char/globals.pdc.o src/char/globals.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/char/int_party.pdc.o src/char/int_party.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/char/int_storage.pdc.o src/char/int_storage.cpp
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/mmo/ids.py src/mmo/strs.py src/net/ip.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/net/timer.py \
+ src/main-gdb-tail.py \
+ > bin/tmwa-login-gdb.py
+ln -sf tmwa-login-gdb.py bin/tmwa-login.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/char/inter_conf.pdc.o src/char/inter_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/char/inter.pdc.o src/char/inter.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/lock.pdc.o src/io/lock.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/login/main.pdc.o src/login/main.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/login/login.pdc.o src/login/login.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/generic/md5.pdc.o src/generic/md5.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/generic/random.pdc.o src/generic/random.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/high/md5more.pdc.o src/high/md5more.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/login/globals.pdc.o src/login/globals.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/login/login_conf.pdc.o src/login/login_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/login/login_lan_conf.pdc.o src/login/login_lan_conf.cpp
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/map/map.py src/map/mapflag.py src/map/script-persist.py src/mmo/ids.py src/mmo/strs.py src/net/ip.py src/sexpr/variant.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/net/timer.py src/map/script-parse.py \
+ src/main-gdb-tail.py \
+ > bin/tmwa-map-gdb.py
+g++-8 -std=c++0x -shared -Wl,-soname=libtmwa-shared.so.0 -fuse-ld=gold obj/shared/lib.pic.o obj/io/dir.pic.o obj/io/fd.pic.o obj/io/read.pic.o obj/io/write.pic.o obj/strings/astring.pic.o obj/strings/literal.pic.o obj/strings/mstring.pic.o obj/strings/rstring.pic.o obj/strings/sstring.pic.o obj/strings/tstring.pic.o obj/strings/xstring.pic.o obj/strings/zstring.pic.o -o lib/libtmwa-shared.so.0.18.12.30.6.0
+ln -sf tmwa-map-gdb.py bin/tmwa-map.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/main.pdc.o src/map/main.cpp
+ln -sfT libtmwa-shared.so.0.18.12.30.6.0 lib/libtmwa-shared.so.0
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/map.pdc.o src/map/map.cpp
+ln -sfT libtmwa-shared.so.0 lib/libtmwa-shared.so
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/mapflag.pdc.o src/map/mapflag.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/compat/nullpo.pdc.o src/compat/nullpo.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/atcommand.pdc.o src/map/atcommand.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/battle.pdc.o src/map/battle.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/battle_conf.pdc.o src/map/battle_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/chrif.pdc.o src/map/chrif.cpp
+src/char/char.cpp: In function ‘int tmwa::char_::set_account_reg2(tmwa::AccountId, tmwa::Slice<tmwa::GlobalReg>)’:
+src/char/char.cpp:1035:49: warning: ‘T& tmwa::Slice<T>::operator[](size_t) [with T = tmwa::GlobalReg; size_t = long unsigned int]’ is deprecated: use iterators instead [-Wdeprecated-declarations]
+ cd.data->account_reg2[i] = reg[i];
+ ^
+In file included from src/char/../high/../range/slice.hpp:74,
+ from src/char/../high/core.hpp:25,
+ from src/char/char.cpp:76:
+src/char/../high/../range/slice.tcc:158:4: note: declared here
+ T& Slice<T>::operator[](size_t o)
+ ^~~~~~~~
+src/char/char.cpp: In function ‘void tmwa::char_::parse_tologin(tmwa::Session*)’:
+src/char/char.cpp:1383:59: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::AString; O = tmwa::strings::AString; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AString message = repeat.to_print().lstrip();
+ ^
+In file included from src/char/../high/../proto2/../mmo/../strings/base.hpp:201,
+ from src/char/../high/../proto2/../mmo/../strings/vstring.hpp:25,
+ from src/char/../high/../proto2/../mmo/strs.hpp:25,
+ from src/char/../high/../proto2/../mmo/consts.hpp:28,
+ from src/char/../high/../proto2/../mmo/clif.t.hpp:33,
+ from src/char/../high/../proto2/net-CharData.hpp:24,
+ from src/char/../high/mmo.hpp:28,
+ from src/char/char.hpp:31,
+ from src/char/char.cpp:1:
+src/char/../high/../proto2/../mmo/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/clif.pdc.o src/map/clif.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/globals.pdc.o src/map/globals.cpp
+src/login/login.cpp: In function ‘void tmwa::login::parse_fromchar(tmwa::Session*)’:
+src/login/login.cpp:942:98: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<39>; O = tmwa::strings::VString<39>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountEmail actual_email = stringish<AccountEmail>(fixed.old_email.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+In file included from src/char/char.cpp:52:
+src/char/../io/cxxstdio.hpp: In instantiation of ‘static int tmwa::cxxstdio::PrintFormatter<Format>::print(T&&, A&& ...) [with T = tmwa::strings::AString&; A = {}; Format = tmwa::do_init(tmwa::Slice<tmwa::strings::ZString>)::format_impl]’:
+src/char/char.cpp:2894:5: required from here
+src/char/../io/cxxstdio.hpp:79:28: warning: zero-length gnu_printf format string [-Wformat-zero-length]
+ return do_print(std::forward<T>(t), print_format,
+ ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ decay_for_printf(convert_for_printf(std::forward<A>(a)))...);
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1208:94: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountPass actual_pass = stringish<AccountPass>(fixed.old_pass.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1209:91: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountPass new_pass = stringish<AccountPass>(fixed.new_pass.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp: In function ‘void tmwa::login::parse_admin(tmwa::Session*)’:
+src/login/login.cpp:1448:84: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ ma.userid = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1449:80: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ ma.passwd = stringish<AccountPass>(fixed.password.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1506:95: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1553:95: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1584:99: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1586:127: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<19>; O = tmwa::strings::VString<19>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ timestamp_seconds_buffer error_message = stringish<timestamp_seconds_buffer>(fixed.error_message.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1674:95: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+In file included from src/login/login.cpp:47:
+src/login/login.cpp:1690:59: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ ad->userid, pass.to_print(), ip);
+ ^
+src/login/../io/cxxstdio.hpp:91:62: note: in definition of macro ‘XPRINTF’
+ cxxstdio::PrintFormatter<format_impl>::print(out, ## __VA_ARGS__); \
+ ^~~~~~~~~~~
+src/login/../io/cxxstdio.hpp:102:9: note: in expansion of macro ‘SPRINTF’
+ SPRINTF(_out_impl, fmt, ## __VA_ARGS__); \
+ ^~~~~~~
+src/login/login.cpp:146:28: note: in expansion of macro ‘STRPRINTF’
+ tmwa::login::login_log(STRPRINTF(fmt, ## __VA_ARGS__))
+ ^~~~~~~~~
+src/login/login.cpp:1689:25: note: in expansion of macro ‘LOGIN_LOG’
+ LOGIN_LOG("'ladmin': Failure of password check (account: %s, proposed pass: %s, ip: %s)\n"_fmt,
+ ^~~~~~~~~
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1712:95: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1771:95: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1893:95: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/grfio.pdc.o src/map/grfio.cpp
+src/login/login.cpp:1934:94: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(head.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1949:50: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<254>; O = tmwa::strings::VString<254>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ ad->memo = ad->memo.to_print();
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:1973:95: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:2032:99: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:2089:99: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:2228:95: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountName account_name = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/itemdb.pdc.o src/map/itemdb.cpp
+src/login/login.cpp: In function ‘void tmwa::login::parse_login(tmwa::Session*)’:
+src/login/login.cpp:2601:89: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ account.userid = stringish<AccountName>(fixed.account_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:2602:89: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ account.passwd = stringish<AccountPass>(fixed.account_pass.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:2604:95: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<19>; O = tmwa::strings::VString<19>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ ServerName server_name = stringish<ServerName>(fixed.server_name.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+src/login/login.cpp:2725:99: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::VString<23>; O = tmwa::strings::VString<23>; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ AccountPass password = stringish<AccountPass>(fixed.account_pass.to_print());
+ ^
+In file included from src/login/../strings/base.hpp:201,
+ from src/login/../strings/vstring.hpp:25,
+ from src/login/login.hpp:23,
+ from src/login/login.cpp:1:
+src/login/../strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/map_conf.pdc.o src/map/map_conf.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/mob.pdc.o src/map/mob.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/npc-parse.pdc.o src/map/npc-parse.cpp
+In file included from src/login/login.cpp:47:
+src/login/../io/cxxstdio.hpp: In instantiation of ‘static int tmwa::cxxstdio::PrintFormatter<Format>::print(T&&, A&& ...) [with T = tmwa::strings::AString&; A = {}; Format = tmwa::login::save_config_in_log()::format_impl]’:
+src/login/login.cpp:2889:5: required from here
+src/login/../io/cxxstdio.hpp:79:28: warning: zero-length gnu_printf format string [-Wformat-zero-length]
+ return do_print(std::forward<T>(t), print_format,
+ ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ decay_for_printf(convert_for_printf(std::forward<A>(a)))...);
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/npc.pdc.o src/map/npc.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/party.pdc.o src/map/party.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/pc.pdc.o src/map/pc.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/quest.pdc.o src/map/quest.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/script-startup.pdc.o src/map/script-startup.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/skill-pools.pdc.o src/map/skill-pools.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/skill.pdc.o src/map/skill.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/storage.pdc.o src/map/storage.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/trade.pdc.o src/map/trade.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/ast/npc.pdc.o src/ast/npc.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/ast/script.pdc.o src/ast/script.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/intif.pdc.o src/map/intif.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/script-call.pdc.o src/map/script-call.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/tmw.pdc.o src/map/tmw.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/script-fun.pdc.o src/map/script-fun.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/script-parse.pdc.o src/map/script-parse.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/map/path.pdc.o src/map/path.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/ast/item.pdc.o src/ast/item.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/ast/quest.pdc.o src/ast/quest.cpp
+g++-8 -std=c++0x -fuse-ld=gold obj/admin/main.pdc.o obj/admin/ladmin.pdc.o obj/high/core.pdc.o obj/admin/admin_conf.pdc.o obj/admin/globals.pdc.o obj/generic/oops.pdc.o obj/high/utils.pdc.o obj/io/dir.pdc.o obj/io/extract.pdc.o obj/io/fd.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/io/write.pdc.o obj/mmo/config_parse.pdc.o obj/mmo/human_time_diff.pdc.o obj/mmo/ids.pdc.o obj/mmo/strs.pdc.o obj/mmo/version.pdc.o obj/net/ip.pdc.o obj/net/socket.pdc.o obj/net/timestamp-utils.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/wire/packets.pdc.o obj/high/extract_mmo.pdc.o obj/mmo/extract_enums.pdc.o obj/io/line.pdc.o obj/net/timer.pdc.o lib/libtmwa-shared.so.0.18.12.30.6.0 -o bin/tmwa-admin.elf
+src/map/script-call.cpp: In function ‘tmwa::map::script_data tmwa::map::get_val2(tmwa::map::ScriptState*, tmwa::map::SIR)’:
+src/map/script-call.cpp:206:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &dat);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:206:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &dat);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp: In function ‘tmwa::strings::RString tmwa::map::conv_str(tmwa::map::ScriptState*, tmwa::map::script_data*)’:
+src/map/script-call.cpp:311:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:311:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp: In function ‘int tmwa::map::conv_num(tmwa::map::ScriptState*, tmwa::map::script_data*)’:
+src/map/script-call.cpp:328:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:328:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp: In function ‘tmwa::Borrowed<const tmwa::map::ScriptBuffer> tmwa::map::conv_script(tmwa::map::ScriptState*, tmwa::map::script_data*)’:
+src/map/script-call.cpp:357:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:357:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp: In function ‘int tmwa::map::pop_val(tmwa::map::ScriptState*)’:
+src/map/script-call.cpp:424:22: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &back);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:424:22: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &back);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp: In function ‘void tmwa::map::op_add(tmwa::map::ScriptState*)’:
+src/map/script-call.cpp:445:47: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &st->stack->stack_datav.back());
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:445:47: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &st->stack->stack_datav.back());
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:450:23: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &back1);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:450:23: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &back1);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp: In function ‘void tmwa::map::op_2(tmwa::map::ScriptState*, tmwa::map::ByteCode)’:
+src/map/script-call.cpp:578:20: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &d2);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:578:20: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &d2);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:581:20: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &d1);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp:581:20: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, &d1);
+ ^
+src/map/script-call.cpp:162:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data)
+ ^~~~~~~
+src/map/script-call.cpp: In function ‘int tmwa::map::run_script_l(tmwa::map::ScriptPointer, tmwa::BlockId, tmwa::BlockId, tmwa::Slice<tmwa::map::argrec_t>)’:
+src/map/script-call.cpp:984:19: warning: ‘T& tmwa::Slice<T>::operator[](size_t) [with T = tmwa::map::argrec_t; size_t = long unsigned int]’ is deprecated: use iterators instead [-Wdeprecated-declarations]
+ if (args[i].name.back() == '$')
+ ^
+In file included from src/map/../high/../range/slice.hpp:74,
+ from src/map/../high/core.hpp:25,
+ from src/map/script-call.cpp:31:
+src/map/../high/../range/slice.tcc:158:4: note: declared here
+ T& Slice<T>::operator[](size_t o)
+ ^~~~~~~~
+src/map/script-call.cpp:985:68: warning: ‘T& tmwa::Slice<T>::operator[](size_t) [with T = tmwa::map::argrec_t; size_t = long unsigned int]’ is deprecated: use iterators instead [-Wdeprecated-declarations]
+ pc_setregstr(sd, SIR::from(variable_names.intern(args[i].name)), args[i].v.s);
+ ^
+In file included from src/map/../high/../range/slice.hpp:74,
+ from src/map/../high/core.hpp:25,
+ from src/map/script-call.cpp:31:
+src/map/../high/../range/slice.tcc:158:4: note: declared here
+ T& Slice<T>::operator[](size_t o)
+ ^~~~~~~~
+src/map/script-call.cpp:985:84: warning: ‘T& tmwa::Slice<T>::operator[](size_t) [with T = tmwa::map::argrec_t; size_t = long unsigned int]’ is deprecated: use iterators instead [-Wdeprecated-declarations]
+ pc_setregstr(sd, SIR::from(variable_names.intern(args[i].name)), args[i].v.s);
+ ^
+In file included from src/map/../high/../range/slice.hpp:74,
+ from src/map/../high/core.hpp:25,
+ from src/map/script-call.cpp:31:
+src/map/../high/../range/slice.tcc:158:4: note: declared here
+ T& Slice<T>::operator[](size_t o)
+ ^~~~~~~~
+src/map/script-call.cpp:987:65: warning: ‘T& tmwa::Slice<T>::operator[](size_t) [with T = tmwa::map::argrec_t; size_t = long unsigned int]’ is deprecated: use iterators instead [-Wdeprecated-declarations]
+ pc_setreg(sd, SIR::from(variable_names.intern(args[i].name)), args[i].v.i);
+ ^
+In file included from src/map/../high/../range/slice.hpp:74,
+ from src/map/../high/core.hpp:25,
+ from src/map/script-call.cpp:31:
+src/map/../high/../range/slice.tcc:158:4: note: declared here
+ T& Slice<T>::operator[](size_t o)
+ ^~~~~~~~
+src/map/script-call.cpp:987:81: warning: ‘T& tmwa::Slice<T>::operator[](size_t) [with T = tmwa::map::argrec_t; size_t = long unsigned int]’ is deprecated: use iterators instead [-Wdeprecated-declarations]
+ pc_setreg(sd, SIR::from(variable_names.intern(args[i].name)), args[i].v.i);
+ ^
+In file included from src/map/../high/../range/slice.hpp:74,
+ from src/map/../high/core.hpp:25,
+ from src/map/script-call.cpp:31:
+src/map/../high/../range/slice.tcc:158:4: note: declared here
+ T& Slice<T>::operator[](size_t o)
+ ^~~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_call(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:169:22: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:169:22: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_set(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:1292:30: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:1292:30: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:1342:30: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:1342:30: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_setarray(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:1472:26: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:1472:26: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_countitem(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:1742:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:1742:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_checkweight(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:1789:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:1789:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_getitem(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:1838:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:1838:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_makeitem(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:1894:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:1894:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_delitem(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:1942:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:1942:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_getareadropitem(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:3144:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:3144:21: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, data);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_misceffect(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:3822:26: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:3822:26: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_get(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:3894:26: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:3894:26: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:3937:22: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:3937:22: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp: In function ‘void tmwa::map::builtin_strnpcinfo(tmwa::map::ScriptState*)’:
+src/map/script-fun.cpp:4656:26: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+src/map/script-fun.cpp:4656:26: warning: ‘void tmwa::map::get_val(tmwa::map::ScriptState*, tmwa::map::script_data*)’ is deprecated [-Wdeprecated-declarations]
+ get_val(st, sdata);
+ ^
+In file included from src/map/script-fun.cpp:57:
+src/map/script-call-internal.hpp:86:6: note: declared here
+ void get_val(ScriptState *st, struct script_data *data);
+ ^~~~~~~
+g++-8 -std=c++0x -fuse-ld=gold obj/login/main.pdc.o obj/generic/oops.pdc.o obj/high/core.pdc.o obj/login/login.pdc.o obj/mmo/ids.pdc.o obj/mmo/strs.pdc.o obj/net/ip.pdc.o obj/net/timestamp-utils.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/io/fd.pdc.o obj/net/socket.pdc.o obj/net/timer.pdc.o obj/wire/packets.pdc.o obj/io/dir.pdc.o obj/io/write.pdc.o obj/generic/md5.pdc.o obj/generic/random.pdc.o obj/high/extract_mmo.pdc.o obj/high/md5more.pdc.o obj/high/utils.pdc.o obj/io/extract.pdc.o obj/io/lock.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/login/globals.pdc.o obj/login/login_conf.pdc.o obj/login/login_lan_conf.pdc.o obj/mmo/config_parse.pdc.o obj/mmo/human_time_diff.pdc.o obj/mmo/version.pdc.o obj/mmo/extract_enums.pdc.o obj/io/line.pdc.o lib/libtmwa-shared.so.0.18.12.30.6.0 -o bin/tmwa-login.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/char/main.pdc.o obj/char/char.pdc.o obj/generic/oops.pdc.o obj/high/core.pdc.o obj/mmo/ids.pdc.o obj/mmo/strs.pdc.o obj/net/ip.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/char/char_conf.pdc.o obj/char/char_lan_conf.pdc.o obj/char/globals.pdc.o obj/char/int_party.pdc.o obj/char/int_storage.pdc.o obj/char/inter.pdc.o obj/char/inter_conf.pdc.o obj/high/extract_mmo.pdc.o obj/high/utils.pdc.o obj/io/dir.pdc.o obj/io/extract.pdc.o obj/io/fd.pdc.o obj/io/lock.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/io/write.pdc.o obj/mmo/config_parse.pdc.o obj/mmo/extract_enums.pdc.o obj/mmo/human_time_diff.pdc.o obj/mmo/version.pdc.o obj/net/socket.pdc.o obj/net/timer.pdc.o obj/net/timestamp-utils.pdc.o obj/wire/packets.pdc.o obj/io/line.pdc.o lib/libtmwa-shared.so.0.18.12.30.6.0 -o bin/tmwa-char.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/map/main.pdc.o obj/generic/oops.pdc.o obj/high/core.pdc.o obj/io/fd.pdc.o obj/map/map.pdc.o obj/map/mapflag.pdc.o obj/mmo/ids.pdc.o obj/mmo/strs.pdc.o obj/net/ip.pdc.o obj/net/socket.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/net/timer.pdc.o obj/compat/nullpo.pdc.o obj/generic/random.pdc.o obj/io/dir.pdc.o obj/io/extract.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/io/write.pdc.o obj/map/atcommand.pdc.o obj/map/battle.pdc.o obj/map/battle_conf.pdc.o obj/map/chrif.pdc.o obj/map/clif.pdc.o obj/map/globals.pdc.o obj/map/grfio.pdc.o obj/map/itemdb.pdc.o obj/map/map_conf.pdc.o obj/map/mob.pdc.o obj/map/npc-parse.pdc.o obj/map/npc.pdc.o obj/map/party.pdc.o obj/map/pc.pdc.o obj/map/quest.pdc.o obj/map/script-startup.pdc.o obj/map/skill-pools.pdc.o obj/map/skill.pdc.o obj/map/storage.pdc.o obj/map/trade.pdc.o obj/mmo/config_parse.pdc.o obj/mmo/version.pdc.o obj/net/timestamp-utils.pdc.o obj/ast/npc.pdc.o obj/ast/script.pdc.o obj/high/extract_mmo.pdc.o obj/high/utils.pdc.o obj/map/intif.pdc.o obj/map/script-call.pdc.o obj/map/tmw.pdc.o obj/mmo/extract_enums.pdc.o obj/mmo/human_time_diff.pdc.o obj/io/line.pdc.o obj/wire/packets.pdc.o obj/map/script-fun.pdc.o obj/map/script-parse.pdc.o obj/map/path.pdc.o obj/generic/md5.pdc.o obj/high/md5more.pdc.o obj/ast/item.pdc.o obj/ast/quest.pdc.o obj/io/lock.pdc.o lib/libtmwa-shared.so.0.18.12.30.6.0 -o bin/tmwa-map.elf
+
+Welcome to the One Makefile
+Copyright 2012-2014 Ben Longbons
+
+One Makefile to build them all,
+One Makefile to find them,
+One Makefile to bring them all
+and in the darkness link them.
+
+make: 'stamp/generated.stamp' is up to date.
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'shared/lib := ' \
+ -MF obj/shared/lib.d src/shared/lib.cpp
+g++-8 -std=c++0x -I . -I ./include -DGENERATING_DEPENDENCIES -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -MG -MM \
+ -MT 'mmo/version := ' \
+ -MF obj/mmo/version.d src/mmo/version.cpp
+The Road goes ever on and on ...
+make: 'stamp/generated.stamp' is up to date.
+cat src/main-gdb-head.py \
+ src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/mmo/ids.py src/mmo/strs.py src/sexpr/variant.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/compat/borrow.py src/net/ip.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-ast--npc-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-generic--intern-pool-gdb.py
+cat src/main-gdb-head.py \
+ \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-generic--array-gdb.py
+ln -sf gtest-ast--npc-gdb.py bin/tests/gtest-ast--npc.elf-gdb.py
+ln -sfT ../lib bin/lib
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/compat/option_test.pdc.o src/compat/option_test.cpp
+cat src/main-gdb-head.py \
+ src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/mmo/ids.py src/mmo/strs.py src/sexpr/variant.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-ast--item-gdb.py
+cat src/main-gdb-head.py \
+ src/compat/option.py src/strings/literal.py src/strings/rstring.py src/strings/astring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-compat--result-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/generic/intern-pool_test.pdc.o src/generic/intern-pool_test.cpp
+ln -sf gtest-generic--intern-pool-gdb.py bin/tests/gtest-generic--intern-pool.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/ast/item_test.pdc.o src/ast/item_test.cpp
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py src/strings/literal.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-compat--option-gdb.py
+cat src/main-gdb-head.py \
+ \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-compat--iter-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-generic--md5-gdb.py
+cat src/main-gdb-head.py \
+ \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-generic--oops-gdb.py
+ln -sf gtest-ast--item-gdb.py bin/tests/gtest-ast--item.elf-gdb.py
+touch stamp/symlink-test-lib-dir.stamp
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/ast/npc_test.pdc.o src/ast/npc_test.cpp
+ln -sf gtest-compat--result-gdb.py bin/tests/gtest-compat--result.elf-gdb.py
+ln -sf gtest-generic--array-gdb.py bin/tests/gtest-generic--array.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/generic/array_test.pdc.o src/generic/array_test.cpp
+ln -sf gtest-compat--iter-gdb.py bin/tests/gtest-compat--iter.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/compat/iter_test.pdc.o src/compat/iter_test.cpp
+ln -sf gtest-compat--option-gdb.py bin/tests/gtest-compat--option.elf-gdb.py
+ln -sf gtest-generic--oops-gdb.py bin/tests/gtest-generic--oops.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/gtest-all.pdc.o /usr/src/gtest/src/gtest-all.cc
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/gtest_main.pdc.o /usr/src/gtest/src/gtest_main.cc
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/generic/md5_test.pdc.o src/generic/md5_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/compat/result_test.pdc.o src/compat/result_test.cpp
+ln -sf gtest-generic--md5-gdb.py bin/tests/gtest-generic--md5.elf-gdb.py
+cat src/main-gdb-head.py \
+ \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-ints--cmp-gdb.py
+cat src/main-gdb-head.py \
+ \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-ints--udl-gdb.py
+cat src/main-gdb-head.py \
+ src/generic/dumb_ptr.py src/ints/wrap.py src/mmo/strs.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/compat/borrow.py src/compat/option.py src/mmo/ids.py src/net/ip.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-io--extract-gdb.py
+ln -sf gtest-ints--cmp-gdb.py bin/tests/gtest-ints--cmp.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-io--line-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/generic/oops_test.pdc.o src/generic/oops_test.cpp
+ln -sf gtest-ints--udl-gdb.py bin/tests/gtest-ints--udl.elf-gdb.py
+ln -sf gtest-io--extract-gdb.py bin/tests/gtest-io--extract.elf-gdb.py
+ln -sf gtest-io--line-gdb.py bin/tests/gtest-io--line.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-io--read-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/ints/cmp_test.pdc.o src/ints/cmp_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/ints/udl_test.pdc.o src/ints/udl_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/extract_test.pdc.o src/io/extract_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/line_test.pdc.o src/io/line_test.cpp
+ln -sf gtest-io--read-gdb.py bin/tests/gtest-io--read.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-io--write-gdb.py
+ln -sf gtest-io--write-gdb.py bin/tests/gtest-io--write.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/compat/borrow.py src/compat/option.py src/ints/wrap.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-mmo--config_parse-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/read_test.pdc.o src/io/read_test.cpp
+ln -sf gtest-mmo--config_parse-gdb.py bin/tests/gtest-mmo--config_parse.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/io/write_test.pdc.o src/io/write_test.cpp
+cat src/main-gdb-head.py \
+ src/ints/wrap.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-mmo--human_time_diff-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/mmo/config_parse_test.pdc.o src/mmo/config_parse_test.cpp
+ln -sf gtest-mmo--human_time_diff-gdb.py bin/tests/gtest-mmo--human_time_diff.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/mmo/human_time_diff_test.pdc.o src/mmo/human_time_diff_test.cpp
+cat src/main-gdb-head.py \
+ src/ints/wrap.py src/net/ip.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-net--ip-gdb.py
+ln -sf gtest-net--ip-gdb.py bin/tests/gtest-net--ip.elf-gdb.py
+cat src/main-gdb-head.py \
+ \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-range--slice-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/net/ip_test.pdc.o src/net/ip_test.cpp
+ln -sf gtest-range--slice-gdb.py bin/tests/gtest-range--slice.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-sexpr--lexer-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/range/slice_test.pdc.o src/range/slice_test.cpp
+ln -sf gtest-sexpr--lexer-gdb.py bin/tests/gtest-sexpr--lexer.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/sexpr/parser.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-sexpr--parser-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/sexpr/lexer_test.pdc.o src/sexpr/lexer_test.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/sexpr/lexer.pdc.o src/sexpr/lexer.cpp
+ln -sf gtest-sexpr--parser-gdb.py bin/tests/gtest-sexpr--parser.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/sexpr/parser_test.pdc.o src/sexpr/parser_test.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/sexpr/parser.pdc.o src/sexpr/parser.cpp
+cat src/main-gdb-head.py \
+ \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-sexpr--union-gdb.py
+ln -sf gtest-sexpr--union-gdb.py bin/tests/gtest-sexpr--union.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/sexpr/variant.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-sexpr--variant-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/sexpr/union_test.pdc.o src/sexpr/union_test.cpp
+ln -sf gtest-sexpr--variant-gdb.py bin/tests/gtest-sexpr--variant.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/sexpr/variant_test.pdc.o src/sexpr/variant_test.cpp
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-strings--base-gdb.py
+ln -sf gtest-strings--base-gdb.py bin/tests/gtest-strings--base.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-strings--strings2-gdb.py
+ln -sf gtest-strings--strings2-gdb.py bin/tests/gtest-strings--strings2.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/base_test.pdc.o src/strings/base_test.cpp
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/strings2_test.pdc.o src/strings/strings2_test.cpp
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/gtest-strings--strings-gdb.py
+ln -sf gtest-strings--strings-gdb.py bin/tests/gtest-strings--strings.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-compat-borrow-gdb.py
+g++-8 -std=c++0x -I . -I ./include -DGTEST_HAS_PTHREAD=0 -I/usr/src/gtest -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -c -o obj/strings/strings_test.pdc.o src/strings/strings_test.cpp
+ln -sf dtest-compat-borrow-gdb.py bin/tests/dtest-compat-borrow.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-compat-option-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/compat-borrow.pdc.o src/debug-debug/compat-borrow.cpp
+ln -sf dtest-compat-option-gdb.py bin/tests/dtest-compat-option.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/generic/dumb_ptr.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-generic-dumb_ptr-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/compat-option.pdc.o src/debug-debug/compat-option.cpp
+ln -sf dtest-generic-dumb_ptr-gdb.py bin/tests/dtest-generic-dumb_ptr.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/ints/wrap.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-ints-wrap-gdb.py
+ln -sf dtest-ints-wrap-gdb.py bin/tests/dtest-ints-wrap.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/generic-dumb_ptr.pdc.o src/debug-debug/generic-dumb_ptr.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/ints-wrap.pdc.o src/debug-debug/ints-wrap.cpp
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/map/map.py src/map/mapflag.py src/map/script-persist.py src/mmo/ids.py src/mmo/strs.py src/net/ip.py src/sexpr/variant.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/net/timer.py src/map/script-parse.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-map-map-gdb.py
+cat src/main-gdb-head.py \
+ src/map/mapflag.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-map-mapflag-gdb.py
+ln -sf dtest-map-mapflag-gdb.py bin/tests/dtest-map-mapflag.elf-gdb.py
+ln -sf dtest-map-map-gdb.py bin/tests/dtest-map-map.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/map/script-parse.py src/mmo/ids.py src/mmo/strs.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/net/ip.py src/map/map.py src/map/mapflag.py src/map/script-persist.py src/sexpr/variant.py src/net/timer.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-map-script-parse-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/map-map.pdc.o src/debug-debug/map-map.cpp
+cat src/main-gdb-head.py \
+ src/compat/borrow.py src/compat/option.py src/generic/dumb_ptr.py src/ints/wrap.py src/map/script-parse.py src/map/script-persist.py src/mmo/ids.py src/mmo/strs.py src/sexpr/variant.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py src/net/ip.py src/map/map.py src/map/mapflag.py src/net/timer.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-map-script-persist-gdb.py
+ln -sf dtest-map-script-parse-gdb.py bin/tests/dtest-map-script-parse.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/map-mapflag.pdc.o src/debug-debug/map-mapflag.cpp
+ln -sf dtest-map-script-persist-gdb.py bin/tests/dtest-map-script-persist.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/map-script-parse.pdc.o src/debug-debug/map-script-parse.cpp
+cat src/main-gdb-head.py \
+ src/ints/wrap.py src/mmo/ids.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-mmo-ids-gdb.py
+ln -sf dtest-mmo-ids-gdb.py bin/tests/dtest-mmo-ids.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/map-script-persist.pdc.o src/debug-debug/map-script-persist.cpp
+cat src/main-gdb-head.py \
+ src/mmo/strs.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-mmo-strs-gdb.py
+In file included from /usr/include/gtest/gtest.h:1874,
+ from src/strings/strings2_test.cpp:20:
+src/strings/strings2_test.cpp: In member function ‘virtual void tmwa::StringTests_traits2_Test::TestBody()’:
+src/strings/strings2_test.cpp:40:42: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::ZString; O = tmwa::strings::AString; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ EXPECT_EQ("__"_s, print_non.to_print());
+ ^
+In file included from src/strings/base.hpp:201,
+ from src/strings/all.hpp:23,
+ from src/strings/strings2_test.cpp:22:
+src/strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+In file included from /usr/include/gtest/gtest.h:1874,
+ from src/strings/strings2_test.cpp:20:
+src/strings/strings2_test.cpp:41:42: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::ZString; O = tmwa::strings::AString; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ EXPECT_EQ("n_"_s, print_mix.to_print());
+ ^
+In file included from src/strings/base.hpp:201,
+ from src/strings/all.hpp:23,
+ from src/strings/strings2_test.cpp:22:
+src/strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+In file included from /usr/include/gtest/gtest.h:1874,
+ from src/strings/strings2_test.cpp:20:
+src/strings/strings2_test.cpp:42:42: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::RString; O = tmwa::strings::RString; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ EXPECT_EQ("n "_s, print_all.to_print());
+ ^
+In file included from src/strings/base.hpp:201,
+ from src/strings/all.hpp:23,
+ from src/strings/strings2_test.cpp:22:
+src/strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+In file included from /usr/include/gtest/gtest.h:1874,
+ from src/strings/strings2_test.cpp:20:
+src/strings/strings2_test.cpp:43:53: warning: ‘O tmwa::strings::_crtp_string<T, O, P>::to_print() const [with T = tmwa::strings::RString; O = tmwa::strings::RString; P = tmwa::strings::ZPair]’ is deprecated [-Wdeprecated-declarations]
+ EXPECT_EQ(print_all.begin(), print_all.to_print().begin());
+ ^
+In file included from src/strings/base.hpp:201,
+ from src/strings/all.hpp:23,
+ from src/strings/strings2_test.cpp:22:
+src/strings/base.tcc:280:7: note: declared here
+ O _crtp_string<T, O, P>::to_print() const
+ ^~~~~~~~~~~~~~~~~~~~~
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/mmo-ids.pdc.o src/debug-debug/mmo-ids.cpp
+ln -sf dtest-mmo-strs-gdb.py bin/tests/dtest-mmo-strs.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/net/ip.py src/ints/wrap.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-net-ip-gdb.py
+ln -sf dtest-net-ip-gdb.py bin/tests/dtest-net-ip.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/mmo-strs.pdc.o src/debug-debug/mmo-strs.cpp
+cat src/main-gdb-head.py \
+ src/generic/dumb_ptr.py src/net/timer.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-net-timer-gdb.py
+ln -sf dtest-net-timer-gdb.py bin/tests/dtest-net-timer.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/net-ip.pdc.o src/debug-debug/net-ip.cpp
+cat src/main-gdb-head.py \
+ src/sexpr/parser.py src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-sexpr-parser-gdb.py
+ln -sf dtest-sexpr-parser-gdb.py bin/tests/dtest-sexpr-parser.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/net-timer.pdc.o src/debug-debug/net-timer.cpp
+cat src/main-gdb-head.py \
+ src/sexpr/variant.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-sexpr-variant-gdb.py
+ln -sf dtest-sexpr-variant-gdb.py bin/tests/dtest-sexpr-variant.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/sexpr-parser.pdc.o src/debug-debug/sexpr-parser.cpp
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-strings-astring-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/sexpr-variant.pdc.o src/debug-debug/sexpr-variant.cpp
+ln -sf dtest-strings-astring-gdb.py bin/tests/dtest-strings-astring.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/literal.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-strings-literal-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/strings-astring.pdc.o src/debug-debug/strings-astring.cpp
+ln -sf dtest-strings-literal-gdb.py bin/tests/dtest-strings-literal.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-strings-rstring-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/strings-literal.pdc.o src/debug-debug/strings-literal.cpp
+ln -sf dtest-strings-rstring-gdb.py bin/tests/dtest-strings-rstring.elf-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-strings-vstring-gdb.py
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-strings-xstring-gdb.py
+ln -sf dtest-strings-vstring-gdb.py bin/tests/dtest-strings-vstring.elf-gdb.py
+ln -sf dtest-strings-xstring-gdb.py bin/tests/dtest-strings-xstring.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/strings-rstring.pdc.o src/debug-debug/strings-rstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/strings-vstring.pdc.o src/debug-debug/strings-vstring.cpp
+cat src/main-gdb-head.py \
+ src/strings/astring.py src/strings/literal.py src/strings/rstring.py src/strings/vstring.py src/strings/xstring.py src/strings/zstring.py \
+ src/main-gdb-tail.py \
+ > bin/tests/dtest-strings-zstring-gdb.py
+ln -sf dtest-strings-zstring-gdb.py bin/tests/dtest-strings-zstring.elf-gdb.py
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/strings-xstring.pdc.o src/debug-debug/strings-xstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/admin/admin_conf.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/admin/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -g -O0 -gdwarf-3 -c -o obj/debug-debug/strings-zstring.pdc.o src/debug-debug/strings-zstring.cpp
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/admin/globals.hpp"'
+touch stamp/admin/fwd.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/admin/ladmin.hpp"'
+touch stamp/admin/globals.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ast/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ast/item.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ast/npc.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ast/quest.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ast/script.hpp"'
+touch stamp/admin/ladmin.hpp.check
+touch stamp/ast/fwd.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/char.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/char_conf.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/char_lan_conf.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/consts.hpp"'
+touch stamp/char/consts.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/globals.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/inter.hpp"'
+touch stamp/char/fwd.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/inter_conf.hpp"'
+touch stamp/char/char_lan_conf.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/int_party.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/char/int_storage.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/attr.hpp"'
+touch stamp/admin/admin_conf.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/borrow.hpp"'
+touch stamp/char/int_party.hpp.check
+touch stamp/char/int_storage.hpp.check
+touch stamp/compat/attr.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/cast.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/fun.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/fwd.hpp"'
+touch stamp/ast/script.hpp.check
+touch stamp/compat/cast.hpp.check
+touch stamp/ast/item.hpp.check
+touch stamp/compat/fwd.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/iter.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/memory.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/nullpo.hpp"'
+touch stamp/char/globals.hpp.check
+touch stamp/ast/quest.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/operators.hpp"'
+touch stamp/ast/npc.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/option.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/rawmem.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/result.hpp"'
+touch stamp/compat/nullpo.hpp.check
+touch stamp/compat/operators.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/compat/time_t.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/conf/install.hpp"'
+touch stamp/compat/option.hpp.check
+touch stamp/compat/rawmem.hpp.check
+touch stamp/char/inter_conf.hpp.check
+touch stamp/char/char.hpp.check
+touch stamp/char/char_conf.hpp.check
+touch stamp/conf/install.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/conf/version.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/diagnostics.hpp"'
+touch stamp/compat/borrow.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/array.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/db.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/dumb_ptr.hpp"'
+touch stamp/char/inter.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/enum.hpp"'
+touch stamp/compat/fun.hpp.check
+touch stamp/conf/version.hpp.check
+touch stamp/diagnostics.hpp.check
+touch stamp/compat/time_t.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/intern-pool.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/matrix.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/md5.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/oops.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/random.hpp"'
+touch stamp/generic/fwd.hpp.check
+touch stamp/compat/iter.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/random.t.hpp"'
+touch stamp/compat/memory.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/generic/random2.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/high/core.hpp"'
+touch stamp/generic/dumb_ptr.hpp.check
+touch stamp/generic/random.t.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/high/extract_mmo.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/high/fwd.hpp"'
+touch stamp/compat/result.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/high/md5more.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/high/mmo.hpp"'
+touch stamp/generic/array.hpp.check
+touch stamp/high/extract_mmo.hpp.check
+touch stamp/high/core.hpp.check
+touch stamp/high/fwd.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/high/utils.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ints/cmp.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ints/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ints/little.hpp"'
+touch stamp/generic/oops.hpp.check
+touch stamp/generic/enum.hpp.check
+touch stamp/ints/fwd.hpp.check
+touch stamp/ints/cmp.hpp.check
+touch stamp/generic/matrix.hpp.check
+touch stamp/high/utils.hpp.check
+touch stamp/generic/db.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ints/udl.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/ints/wrap.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/cxxstdio.hpp"'
+touch stamp/ints/little.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/extract.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/dir.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/fd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/line.hpp"'
+touch stamp/generic/md5.hpp.check
+touch stamp/generic/random.hpp.check
+touch stamp/ints/udl.hpp.check
+touch stamp/io/fwd.hpp.check
+touch stamp/ints/wrap.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/lock.hpp"'
+touch stamp/generic/intern-pool.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/read.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/span.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/tty.hpp"'
+touch stamp/io/cxxstdio.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/io/write.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/login/consts.hpp"'
+touch stamp/io/fd.hpp.check
+touch stamp/io/dir.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/login/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/login/globals.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/login/login.hpp"'
+touch stamp/io/tty.hpp.check
+touch stamp/generic/random2.hpp.check
+touch stamp/login/consts.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/login/login.t.hpp"'
+touch stamp/login/fwd.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/login/login_conf.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/login/login_lan_conf.hpp"'
+touch stamp/high/md5more.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/atcommand.hpp"'
+touch stamp/io/write.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/battle.hpp"'
+touch stamp/login/login.t.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/battle.t.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/battle_conf.hpp"'
+touch stamp/map/atcommand.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/chrif.hpp"'
+touch stamp/high/mmo.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/clif.hpp"'
+touch stamp/io/extract.hpp.check
+touch stamp/map/chrif.hpp.check
+touch stamp/io/line.hpp.check
+touch stamp/login/login_lan_conf.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/consts.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/globals.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/grfio.hpp"'
+touch stamp/io/lock.hpp.check
+touch stamp/io/read.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/intif.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/itemdb.hpp"'
+touch stamp/login/globals.hpp.check
+touch stamp/map/fwd.hpp.check
+touch stamp/io/span.hpp.check
+touch stamp/map/consts.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/map.hpp"'
+touch stamp/map/grfio.hpp.check
+touch stamp/map/battle.t.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/map.t.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/mapflag.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/map_conf.hpp"'
+touch stamp/map/intif.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/mob.t.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/mob.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/npc-internal.hpp"'
+touch stamp/login/login_conf.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/npc-parse.hpp"'
+touch stamp/map/mapflag.hpp.check
+touch stamp/login/login.hpp.check
+touch stamp/map/mob.t.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/npc.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/party.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/path.hpp"'
+touch stamp/map/npc-parse.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/pc.hpp"'
+touch stamp/map/path.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/pc.t.hpp"'
+touch stamp/map/battle.hpp.check
+touch stamp/map/pc.t.hpp.check
+touch stamp/map/globals.hpp.check
+touch stamp/map/clif.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/quest.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-buffer.hpp"'
+touch stamp/map/battle_conf.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-call-internal.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-call.hpp"'
+touch stamp/map/party.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-call.t.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-fun.hpp"'
+touch stamp/map/itemdb.hpp.check
+touch stamp/map/map.t.hpp.check
+touch stamp/map/map.hpp.check
+touch stamp/map/mob.hpp.check
+touch stamp/map/npc-internal.hpp.check
+touch stamp/map/map_conf.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-parse-internal.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-parse.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-persist.hpp"'
+touch stamp/map/npc.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-startup.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/script-startup-internal.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/skill.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/skill-pools.hpp"'
+touch stamp/map/pc.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/storage.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/tmw.hpp"'
+touch stamp/map/script-buffer.hpp.check
+touch stamp/map/script-startup.hpp.check
+touch stamp/map/skill-pools.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/map/trade.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/clif.t.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/config_parse.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/consts.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/cxxstdio_enums.hpp"'
+touch stamp/map/tmw.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/enums.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/extract_enums.hpp"'
+touch stamp/mmo/config_parse.hpp.check
+touch stamp/map/script-call.t.hpp.check
+touch stamp/map/script-fun.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/human_time_diff.hpp"'
+touch stamp/map/script-call.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/ids.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/skill.t.hpp"'
+touch stamp/mmo/fwd.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/strs.hpp"'
+touch stamp/mmo/ids.hpp.check
+touch stamp/map/script-parse.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/mmo/version.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/net/fwd.hpp"'
+touch stamp/map/script-call-internal.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/net/ip.hpp"'
+touch stamp/mmo/version.hpp.check
+touch stamp/net/fwd.hpp.check
+touch stamp/map/quest.hpp.check
+touch stamp/map/script-parse-internal.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/net/socket.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/net/timer.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/net/timer.t.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/net/timestamp-utils.hpp"'
+touch stamp/mmo/cxxstdio_enums.hpp.check
+touch stamp/map/script-persist.hpp.check
+touch stamp/map/storage.hpp.check
+touch stamp/mmo/enums.hpp.check
+touch stamp/map/script-startup-internal.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/poison.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto-base/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto-base/net-array.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto-base/net-neutral.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto-base/net-skewed-length.hpp"'
+touch stamp/net/ip.hpp.check
+touch stamp/map/trade.hpp.check
+touch stamp/mmo/consts.hpp.check
+touch stamp/poison.hpp.check
+touch stamp/mmo/clif.t.hpp.check
+touch stamp/mmo/skill.t.hpp.check
+touch stamp/mmo/human_time_diff.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto-base/net-string.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/any-user.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/char-map.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/char-user.hpp"'
+touch stamp/proto-base/net-skewed-length.hpp.check
+touch stamp/proto-base/fwd.hpp.check
+touch stamp/mmo/extract_enums.hpp.check
+touch stamp/proto-base/net-neutral.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/login-admin.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/login-char.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/map-user.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/login-user.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-AccountId.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-BeingRemoveWhy.hpp"'
+touch stamp/proto2/any-user.hpp.check
+touch stamp/mmo/strs.hpp.check
+touch stamp/proto2/fwd.hpp.check
+touch stamp/map/skill.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-BlockId.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-CharData.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-CharId.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-CharKey.hpp"'
+touch stamp/proto2/net-AccountId.hpp.check
+touch stamp/net/timer.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-CharSelect.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-ClientVersion.hpp"'
+touch stamp/proto2/net-BlockId.hpp.check
+touch stamp/net/timer.t.hpp.check
+touch stamp/net/timestamp-utils.hpp.check
+touch stamp/proto2/net-CharId.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-DamageType.hpp"'
+touch stamp/proto-base/net-array.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-DIR.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-EPOS.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-GlobalReg.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-HumanTimeDiff.hpp"'
+touch stamp/proto2/net-ClientVersion.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Item.hpp"'
+touch stamp/net/socket.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-ItemLook.hpp"'
+touch stamp/proto-base/net-string.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-ItemNameId.hpp"'
+touch stamp/proto2/login-char.hpp.check
+touch stamp/proto2/char-user.hpp.check
+touch stamp/proto2/login-admin.hpp.check
+touch stamp/proto2/net-ItemNameId.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-ItemType.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-LOOK.hpp"'
+touch stamp/proto2/login-user.hpp.check
+touch stamp/proto2/char-map.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Opt0.hpp"'
+touch stamp/proto2/net-BeingRemoveWhy.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Opt1.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Opt2.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Opt3.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-PartyId.hpp"'
+touch stamp/proto2/net-CharKey.hpp.check
+touch stamp/proto2/net-CharSelect.hpp.check
+touch stamp/proto2/net-EPOS.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-PartyMember.hpp"'
+touch stamp/proto2/net-CharData.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-PartyMost.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-PickupFail.hpp"'
+touch stamp/proto2/map-user.hpp.check
+touch stamp/proto2/net-HumanTimeDiff.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Point.hpp"'
+touch stamp/proto2/net-DamageType.hpp.check
+touch stamp/proto2/net-GlobalReg.hpp.check
+touch stamp/proto2/net-Item.hpp.check
+touch stamp/proto2/net-PartyId.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-SEX.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-SkillFlags.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-SkillID.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-SkillInfo.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-SkillValue.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-SP.hpp"'
+touch stamp/proto2/net-DIR.hpp.check
+touch stamp/proto2/net-ItemLook.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Species.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Stats6.hpp"'
+touch stamp/proto2/net-Stats6.hpp.check
+touch stamp/proto2/net-Species.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-StatusChange.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Storage.hpp"'
+touch stamp/proto2/net-Opt0.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/proto2/net-Version.hpp"'
+touch stamp/proto2/net-LOOK.hpp.check
+touch stamp/proto2/net-ItemType.hpp.check
+touch stamp/proto2/net-Opt1.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/range/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/range/slice.hpp"'
+touch stamp/proto2/net-Opt2.hpp.check
+touch stamp/proto2/net-Opt3.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/sanity.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/sexpr/bind.hpp"'
+touch stamp/range/fwd.hpp.check
+touch stamp/proto2/net-Version.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/sexpr/fwd.hpp"'
+touch stamp/sanity.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/sexpr/lexer.hpp"'
+touch stamp/proto2/net-Point.hpp.check
+touch stamp/proto2/net-PartyMember.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/sexpr/parser.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/sexpr/union.hpp"'
+touch stamp/proto2/net-SkillInfo.hpp.check
+touch stamp/proto2/net-SkillValue.hpp.check
+touch stamp/proto2/net-SEX.hpp.check
+touch stamp/range/slice.hpp.check
+touch stamp/proto2/net-PickupFail.hpp.check
+touch stamp/sexpr/bind.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/sexpr/variant.hpp"'
+touch stamp/proto2/net-SkillFlags.hpp.check
+touch stamp/proto2/net-PartyMost.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/sexpr/void.hpp"'
+touch stamp/sexpr/fwd.hpp.check
+touch stamp/proto2/net-SkillID.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/all.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/astring.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/literal.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/mstring.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/base.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/rstring.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/pair.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/sstring.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/fwd.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/tstring.hpp"'
+touch stamp/proto2/net-SP.hpp.check
+touch stamp/sexpr/union.hpp.check
+touch stamp/sexpr/variant.hpp.check
+touch stamp/sexpr/void.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/vstring.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/xstring.hpp"'
+touch stamp/proto2/net-StatusChange.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/strings/zstring.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/tests/fdhack.hpp"'
+touch stamp/strings/pair.hpp.check
+touch stamp/strings/fwd.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/tests/fwd.hpp"'
+touch stamp/proto2/net-Storage.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/warnings.hpp"'
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/wire/fwd.hpp"'
+touch stamp/strings/mstring.hpp.check
+g++-8 -std=c++0x -I . -I ./include -O2 -g -fstack-protector -fno-strict-aliasing -fvisibility=hidden -x c++ -fsyntax-only - <<< '#include "src/wire/packets.hpp"'
+In file included from <stdin>:1:
+src/warnings.hpp:130:1: warning: unknown option after ‘#pragma GCC diagnostic’ kind [-Wpragmas]
+ DIAG_W(noexcept);
+ ^~~~~~~~~~~~~
+touch stamp/warnings.hpp.check
+includes=$(grep '#include.*".*/.*"' src/admin/admin_conf.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/admin/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp || { echo src/admin/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/tests/fwd.hpp.check
+includes=$(grep '#include.*".*/.*"' src/admin/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/admin/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp || { echo src/admin/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/admin/fwd.hpp
+touch stamp/wire/fwd.hpp.check
+includes=$(grep '#include.*".*/.*"' src/admin/globals.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/admin/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp || { echo src/admin/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../net/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../io/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/admin/fwd.hpp
+touch stamp/admin/admin_conf.hpp.rank
+touch stamp/admin/globals.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/admin/ladmin.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/admin/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp || { echo src/admin/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/admin/fwd.hpp
+touch stamp/admin/ladmin.hpp.rank
+fgrep -q ../strings/fwd.hpp src/admin/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/ast/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ast/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp || { echo src/ast/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/ast/item.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ast/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp || { echo src/ast/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../wire/fwd.hpp src/admin/fwd.hpp
+touch stamp/admin/fwd.hpp.rank
+fgrep -q ../compat/fwd.hpp src/ast/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/ast/npc.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ast/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp || { echo src/ast/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../high/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../io/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../io/fwd.hpp src/ast/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/ast/quest.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ast/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp || { echo src/ast/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/ast/fwd.hpp
+touch stamp/sexpr/parser.hpp.check
+fgrep -q ../io/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../sexpr/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../net/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/ast/fwd.hpp
+touch stamp/ast/item.hpp.rank
+fgrep -q ../sexpr/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../net/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../io/fwd.hpp src/ast/fwd.hpp
+touch stamp/sexpr/lexer.hpp.check
+touch stamp/ast/fwd.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/ast/script.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ast/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp || { echo src/ast/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../sexpr/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/ast/fwd.hpp
+touch stamp/ast/npc.hpp.rank
+fgrep -q ../sexpr/fwd.hpp src/ast/fwd.hpp
+touch stamp/strings/base.hpp.check
+includes=$(grep '#include.*".*/.*"' src/char/char.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/astring.hpp.check
+fgrep -q ../compat/fwd.hpp src/ast/fwd.hpp
+touch stamp/ast/quest.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/char/char_conf.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/char/char_lan_conf.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/literal.hpp.check
+touch stamp/strings/rstring.hpp.check
+fgrep -q ../io/fwd.hpp src/ast/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/char/consts.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/all.hpp.check
+touch stamp/strings/sstring.hpp.check
+fgrep -q ../generic/fwd.hpp src/char/fwd.hpp
+touch stamp/strings/tstring.hpp.check
+includes=$(grep '#include.*".*/.*"' src/char/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/ast/script.hpp.rank
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/char/inter.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+touch stamp/strings/vstring.hpp.check
+includes=$(grep '#include.*".*/.*"' src/char/globals.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/xstring.hpp.check
+includes=$(grep '#include.*".*/.*"' src/char/inter_conf.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/char/fwd.hpp
+touch stamp/strings/zstring.hpp.check
+fgrep -q ../ints/fwd.hpp src/char/fwd.hpp
+touch stamp/char/consts.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/char/int_storage.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/char/fwd.hpp
+touch stamp/tests/fdhack.hpp.check
+touch stamp/char/char_lan_conf.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/compat/attr.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/char/int_party.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/compat/memory.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/compat/cast.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/compat/fun.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/compat/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/compat/iter.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/char/int_storage.hpp.rank
+fgrep -q ../compat/fwd.hpp src/char/fwd.hpp
+touch stamp/char/int_party.hpp.rank
+fgrep -q ../generic/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/compat/borrow.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/compat/cast.hpp.rank
+fgrep -q ../ints/fwd.hpp src/compat/fwd.hpp
+touch stamp/char/globals.hpp.rank
+fgrep -q ../generic/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/compat/nullpo.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/char/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/compat/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/char/fwd.hpp
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+touch stamp/compat/attr.hpp.rank
+fgrep -q ../proto2/fwd.hpp src/char/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/char/fwd.hpp
+touch stamp/compat/nullpo.hpp.rank
+touch stamp/compat/memory.hpp.rank
+touch stamp/compat/borrow.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+touch stamp/wire/packets.hpp.check
+includes=$(grep '#include.*".*/.*"' src/compat/operators.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/compat/fwd.hpp.rank
+touch stamp/char/inter.hpp.rank
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+touch stamp/compat/fun.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/compat/rawmem.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/compat/option.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/compat/result.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/conf/install.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/conf/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/conf/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/conf/fwd.hpp || { echo src/conf/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/compat/time_t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/diagnostics.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/fwd.hpp || { echo src/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/char/inter_conf.hpp.rank
+fgrep -q ../net/fwd.hpp src/char/fwd.hpp
+fgrep -q ../net/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/conf/version.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/conf/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/conf/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/conf/fwd.hpp || { echo src/conf/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/generic/db.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/generic/enum.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/generic/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/generic/array.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/char/fwd.hpp
+touch stamp/compat/operators.hpp.rank
+fgrep -q ../proto2/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/generic/intern-pool.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto2/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/generic/dumb_ptr.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/generic/fwd.hpp
+touch stamp/generic/array.hpp.rank
+fgrep -q ../strings/fwd.hpp src/compat/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/char/fwd.hpp
+touch stamp/compat/option.hpp.rank
+fgrep -q ../strings/fwd.hpp src/generic/fwd.hpp
+touch stamp/compat/rawmem.hpp.rank
+touch stamp/char/char.hpp.rank
+fgrep -q ../strings/fwd.hpp src/char/fwd.hpp
+touch stamp/diagnostics.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/generic/md5.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/generic/fwd.hpp
+touch stamp/generic/fwd.hpp.rank
+touch stamp/char/char_conf.hpp.rank
+touch stamp/conf/version.hpp.rank
+touch stamp/generic/db.hpp.rank
+touch stamp/conf/install.hpp.rank
+fgrep -q ../wire/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/generic/random.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/generic/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/high/extract_mmo.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/generic/matrix.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/generic/random.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/char/fwd.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/high/core.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/compat/iter.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/high/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/generic/oops.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/generic/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/generic/fwd.hpp
+touch stamp/generic/random.hpp.rank
+fgrep -q ../strings/fwd.hpp src/generic/fwd.hpp
+touch stamp/generic/random.t.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/generic/random2.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/generic/enum.hpp.rank
+touch stamp/generic/dumb_ptr.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/high/md5more.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/generic/matrix.hpp.rank
+touch stamp/generic/intern-pool.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/ints/cmp.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ints/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp || { echo src/ints/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/high/utils.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../range/fwd.hpp src/high/fwd.hpp
+touch stamp/generic/md5.hpp.rank
+fgrep -q ../compat/fwd.hpp src/generic/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/ints/little.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ints/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp || { echo src/ints/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/high/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/ints/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ints/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp || { echo src/ints/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/generic/oops.hpp.rank
+touch stamp/high/core.hpp.rank
+touch stamp/high/md5more.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/high/mmo.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/high/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/io/dir.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/ints/fwd.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/io/cxxstdio.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/io/fd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/io/extract.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/high/extract_mmo.hpp.rank
+touch stamp/compat/result.hpp.rank
+touch stamp/high/utils.hpp.rank
+touch stamp/generic/random2.hpp.rank
+fgrep -q ../ints/fwd.hpp src/compat/fwd.hpp
+touch stamp/ints/cmp.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/io/line.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/ints/udl.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ints/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp || { echo src/ints/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/io/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/io/fd.hpp.rank
+touch stamp/compat/time_t.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/io/tty.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/login/consts.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/io/lock.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/io/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/high/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/io/read.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/io/fwd.hpp
+touch stamp/io/cxxstdio.hpp.rank
+touch stamp/io/dir.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/io/write.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto2/fwd.hpp src/high/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/io/fwd.hpp
+touch stamp/io/tty.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/ints/wrap.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ints/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ints/fwd.hpp || { echo src/ints/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/login/consts.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/io/span.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/high/fwd.hpp
+touch stamp/high/mmo.hpp.rank
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/login/login.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/login/login.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/high/fwd.hpp
+touch stamp/io/write.hpp.rank
+touch stamp/ints/little.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/login/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/login/globals.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/io/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/high/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/login/login_conf.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/ints/udl.hpp.rank
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../net/fwd.hpp src/high/fwd.hpp
+touch stamp/io/line.hpp.rank
+fgrep -q ../proto2/fwd.hpp src/high/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/login/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/login/fwd.hpp
+touch stamp/ints/wrap.hpp.rank
+touch stamp/io/span.hpp.rank
+fgrep -q ../net/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/login/login_lan_conf.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/atcommand.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/login/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/battle.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/login/globals.hpp.rank
+fgrep -q ../range/fwd.hpp src/high/fwd.hpp
+fgrep -q ../high/fwd.hpp src/login/fwd.hpp
+fgrep -q ../io/fwd.hpp src/login/fwd.hpp
+touch stamp/login/login.t.hpp.rank
+touch stamp/map/atcommand.hpp.rank
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/battle.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/io/extract.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/globals.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/chrif.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/login/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/high/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/clif.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/io/read.hpp.rank
+touch stamp/map/chrif.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/login/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/intif.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/battle_conf.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/login/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/io/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../ast/fwd.hpp src/map/fwd.hpp
+touch stamp/high/fwd.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/itemdb.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+touch stamp/io/lock.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/grfio.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/consts.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/battle.t.hpp.rank
+fgrep -q ../net/fwd.hpp src/login/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/login/fwd.hpp
+touch stamp/map/intif.hpp.rank
+fgrep -q ../net/fwd.hpp src/login/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/map.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/login/fwd.hpp
+touch stamp/map/battle.hpp.rank
+fgrep -q ../strings/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/map.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/io/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+touch stamp/map/grfio.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/login/login_conf.hpp.rank
+fgrep -q ../ints/fwd.hpp src/io/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/login/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/map_conf.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+touch stamp/login/login_lan_conf.hpp.rank
+fgrep -q ../net/fwd.hpp src/login/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/mapflag.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/itemdb.hpp.rank
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/map/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/login/fwd.hpp
+touch stamp/io/fwd.hpp.rank
+touch stamp/login/login.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/npc-parse.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+touch stamp/map/clif.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/mob.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/mob.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/map/fwd.hpp
+touch stamp/map/battle_conf.hpp.rank
+fgrep -q ../strings/fwd.hpp src/login/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/npc.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/globals.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/party.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../wire/fwd.hpp src/login/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/npc-internal.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/path.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/map/map.t.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/quest.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/mob.t.hpp.rank
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/login/fwd.hpp.rank
+touch stamp/map/npc-internal.hpp.rank
+touch stamp/map/consts.hpp.rank
+touch stamp/map/path.hpp.rank
+fgrep -q ../proto2/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/pc.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/map/npc-parse.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/script-buffer.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/pc.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+touch stamp/map/mapflag.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/script-call.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/script-fun.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../range/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+touch stamp/map/map.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/map/map_conf.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/script-call-internal.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../range/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/script-parse-internal.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/party.hpp.rank
+touch stamp/map/mob.hpp.rank
+touch stamp/map/pc.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/script-persist.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../sexpr/fwd.hpp src/map/fwd.hpp
+touch stamp/map/script-call-internal.tcc.rank
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/script-call.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+touch stamp/map/pc.t.hpp.rank
+touch stamp/map/script-call.t.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/script-startup-internal.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/skill.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/script-call-internal.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../wire/fwd.hpp src/map/fwd.hpp
+touch stamp/map/script-buffer.hpp.rank
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/script-parse.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/fwd.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/tmw.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+touch stamp/map/npc.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/storage.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/script-startup.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/map/quest.hpp.rank
+touch stamp/map/script-startup-internal.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/skill-pools.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/trade.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/mmo/clif.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/mmo/config_parse.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/script-fun.hpp.rank
+touch stamp/map/script-parse.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/mmo/enums.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/script-startup.hpp.rank
+touch stamp/map/tmw.hpp.rank
+fgrep -q ../sexpr/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/mmo/cxxstdio_enums.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/mmo/fwd.hpp
+touch stamp/map/script-call.hpp.rank
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+touch stamp/map/script-parse-internal.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/mmo/extract_enums.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/trade.hpp.rank
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/mmo/consts.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/mmo/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/mmo/config_parse.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/mmo/ids.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto2/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/mmo/strs.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/mmo/human_time_diff.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/mmo/fwd.hpp
+touch stamp/map/script-persist.hpp.rank
+touch stamp/map/script-call-internal.hpp.rank
+fgrep -q ../generic/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../io/fwd.hpp src/mmo/fwd.hpp
+touch stamp/map/storage.hpp.rank
+fgrep -q ../generic/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/mmo/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/mmo/skill.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/mmo/enums.hpp.rank
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/net/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/skill-pools.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/net/ip.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/mmo/extract_enums.hpp.rank
+touch stamp/map/skill.hpp.rank
+fgrep -q ../generic/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/mmo/fwd.hpp
+touch stamp/mmo/cxxstdio_enums.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/net/timer.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/net/socket.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/mmo/version.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/net/timer.t.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/mmo/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/net/timestamp-utils.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/mmo/clif.t.hpp.rank
+fgrep -q ../generic/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/net/fwd.hpp
+touch stamp/mmo/consts.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/proto-base/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto-base/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp || { echo src/proto-base/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto-base/net-array.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto-base/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp || { echo src/proto-base/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/mmo/fwd.hpp
+touch stamp/mmo/human_time_diff.hpp.rank
+fgrep -q ../ints/fwd.hpp src/mmo/fwd.hpp
+touch stamp/net/timer.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/proto-base/net-neutral.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto-base/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp || { echo src/proto-base/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/mmo/strs.hpp.rank
+touch stamp/mmo/version.hpp.rank
+fgrep -q ../io/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/net/fwd.hpp
+touch stamp/mmo/ids.hpp.rank
+touch stamp/net/ip.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/proto-base/net-skewed-length.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto-base/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp || { echo src/proto-base/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto-base/net-string.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto-base/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto-base/fwd.hpp || { echo src/proto-base/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/net/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/proto-base/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/login-admin.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/poison.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/fwd.hpp || { echo src/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/char-map.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/net/timestamp-utils.hpp.rank
+fgrep -q ../compat/fwd.hpp src/net/fwd.hpp
+touch stamp/mmo/fwd.hpp.rank
+fgrep -q ../generic/fwd.hpp src/proto-base/fwd.hpp
+touch stamp/mmo/skill.t.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/proto-base/fwd.hpp
+touch stamp/proto-base/net-array.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/proto-base/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/net/fwd.hpp
+touch stamp/proto-base/net-neutral.hpp.rank
+touch stamp/net/timer.t.hpp.rank
+fgrep -q ../compat/fwd.hpp src/net/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/login-char.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/proto-base/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/proto2/fwd.hpp
+touch stamp/poison.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/proto2/any-user.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/net/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/proto-base/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/net/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/net/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/map-user.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-AccountId.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-BeingRemoveWhy.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/net/socket.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/login-user.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-CharId.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-CharData.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/net/fwd.hpp
+fgrep -q ../net/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-BlockId.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto-base/net-string.hpp.rank
+fgrep -q ../io/fwd.hpp src/net/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/char-user.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/char-map.hpp.rank
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/net/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-CharKey.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-AccountId.hpp.rank
+touch stamp/proto-base/net-skewed-length.hpp.rank
+fgrep -q ../strings/fwd.hpp src/net/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../net/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../wire/fwd.hpp src/net/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-CharSelect.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-ClientVersion.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto-base/fwd.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/proto2/net-DamageType.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../net/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/any-user.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../net/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/login-user.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/proto2/net-DIR.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-CharId.hpp.rank
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/login-char.hpp.rank
+touch stamp/proto2/net-BeingRemoveWhy.hpp.rank
+touch stamp/net/fwd.hpp.rank
+fgrep -q ../strings/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-CharSelect.hpp.rank
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-GlobalReg.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Item.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-BlockId.hpp.rank
+fgrep -q ../strings/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-ItemLook.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../net/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/map-user.hpp.rank
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/login-admin.hpp.rank
+touch stamp/proto2/net-CharKey.hpp.rank
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-CharData.hpp.rank
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-ItemType.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-ClientVersion.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/proto2/net-HumanTimeDiff.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-ItemNameId.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Opt2.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-EPOS.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Opt3.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-LOOK.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Opt1.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Opt0.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-ItemLook.hpp.rank
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-GlobalReg.hpp.rank
+fgrep -q ../net/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-PartyId.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/fwd.hpp.rank
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-DamageType.hpp.rank
+touch stamp/proto2/net-DIR.hpp.rank
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-PickupFail.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-PartyMost.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-Opt1.hpp.rank
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/char-user.hpp.rank
+touch stamp/proto2/net-Opt2.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-SkillFlags.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-SEX.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Point.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-HumanTimeDiff.hpp.rank
+touch stamp/proto2/net-EPOS.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/proto2/net-PartyMember.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-ItemNameId.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-SkillInfo.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-SkillID.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-SkillValue.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Species.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Stats6.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-PartyId.hpp.rank
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-SkillValue.hpp.rank
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-PartyMost.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/proto2/net-StatusChange.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-SEX.hpp.rank
+touch stamp/proto2/net-Opt3.hpp.rank
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-Item.hpp.rank
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-ItemType.hpp.rank
+fgrep -q ../strings/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-LOOK.hpp.rank
+touch stamp/proto2/net-SkillInfo.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-SP.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Version.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/proto2/net-Storage.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/proto2/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/proto2/fwd.hpp || { echo src/proto2/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-PartyMember.hpp.rank
+touch stamp/proto2/net-Species.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/range/slice.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/range/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/range/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/range/fwd.hpp || { echo src/range/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-PickupFail.hpp.rank
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-SkillID.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/sexpr/bind.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-Opt0.hpp.rank
+touch stamp/proto2/net-Point.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/range/slice.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/range/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/range/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/range/fwd.hpp || { echo src/range/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/range/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/range/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/range/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/range/fwd.hpp || { echo src/range/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-Stats6.hpp.rank
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+touch stamp/proto2/net-SkillFlags.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/sanity.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/fwd.hpp || { echo src/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/sexpr/union.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/sexpr/parser.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/sexpr/lexer.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+touch stamp/range/fwd.hpp.rank
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/sexpr/variant.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/range/slice.tcc.rank
+touch stamp/sexpr/bind.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/sexpr/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/sexpr/void.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/proto2/fwd.hpp
+touch stamp/range/slice.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/astring.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/sexpr/variant.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-StatusChange.hpp.rank
+fgrep -q ../io/fwd.hpp src/sexpr/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/proto2/fwd.hpp
+fgrep -q ../io/fwd.hpp src/sexpr/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/sexpr/fwd.hpp
+touch stamp/proto2/net-Version.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/all.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-SP.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/astring.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/sanity.hpp.rank
+fgrep -q ../proto-base/fwd.hpp src/proto2/fwd.hpp
+touch stamp/sexpr/lexer.hpp.rank
+touch stamp/sexpr/union.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/base.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/sexpr/void.hpp.rank
+touch stamp/sexpr/variant.tcc.rank
+includes=$(grep '#include.*".*/.*"' src/strings/mstring.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/base.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/pair.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/sexpr/variant.hpp.rank
+touch stamp/strings/astring.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/rstring.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/literal.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/proto2/net-Storage.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/sstring.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/all.hpp.rank
+touch stamp/strings/astring.tcc.rank
+includes=$(grep '#include.*".*/.*"' src/strings/tstring.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/tstring.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/sstring.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/fwd.hpp.rank
+touch stamp/strings/mstring.hpp.rank
+touch stamp/strings/base.hpp.rank
+touch stamp/strings/pair.hpp.rank
+touch stamp/strings/base.tcc.rank
+includes=$(grep '#include.*".*/.*"' src/strings/vstring.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/sexpr/fwd.hpp
+touch stamp/strings/literal.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/vstring.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/xstring.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/sexpr/fwd.hpp
+touch stamp/strings/tstring.tcc.rank
+includes=$(grep '#include.*".*/.*"' src/strings/rstring.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/rstring.tcc.rank
+touch stamp/strings/sstring.tcc.rank
+includes=$(grep '#include.*".*/.*"' src/strings/zstring.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/sexpr/parser.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/xstring.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/vstring.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/warnings.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/fwd.hpp || { echo src/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/sexpr/fwd.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/tests/fdhack.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/tests/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/tests/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/tests/fwd.hpp || { echo src/tests/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/sstring.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/tests/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/tests/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/tests/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/tests/fwd.hpp || { echo src/tests/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/tstring.hpp.rank
+touch stamp/strings/vstring.tcc.rank
+touch stamp/strings/zstring.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/wire/fwd.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/wire/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/wire/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/wire/fwd.hpp || { echo src/wire/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/zstring.tcc | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/wire/packets.hpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/wire/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/wire/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/wire/fwd.hpp || { echo src/wire/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/admin/globals.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/admin/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp || { echo src/admin/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/admin/admin_conf.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/admin/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp || { echo src/admin/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/tests/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/ast/item.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ast/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp || { echo src/ast/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/tests/fwd.hpp
+touch stamp/strings/rstring.hpp.rank
+fgrep -q ../mmo/fwd.hpp src/admin/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/admin/main.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/admin/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp || { echo src/admin/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/wire/fwd.hpp
+touch stamp/strings/xstring.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/admin/ladmin.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/admin/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/admin/fwd.hpp || { echo src/admin/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/ast/quest.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ast/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp || { echo src/ast/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/warnings.hpp.rank
+fgrep -q ../strings/fwd.hpp src/tests/fwd.hpp
+fgrep -q ../high/fwd.hpp src/admin/fwd.hpp
+touch stamp/strings/xstring.tcc.rank
+fgrep -q ../ints/fwd.hpp src/wire/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/admin/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/ast/script.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ast/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp || { echo src/ast/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/admin/globals.cpp.rank
+fgrep -q ../io/fwd.hpp src/admin/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/char/char.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/char/char_conf.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/char/char_lan_conf.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../io/fwd.hpp src/ast/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/char/globals.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/ast/npc.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/ast/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/ast/fwd.hpp || { echo src/ast/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/tests/fwd.hpp
+fgrep -q ../high/fwd.hpp src/admin/fwd.hpp
+touch stamp/strings/zstring.tcc.rank
+fgrep -q ../mmo/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../io/fwd.hpp src/wire/fwd.hpp
+fgrep -q ../io/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/char/fwd.hpp
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+fgrep -q ../io/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/admin/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/char/inter.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/tests/fdhack.hpp.rank
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+fgrep -q ../net/fwd.hpp src/wire/fwd.hpp
+touch stamp/ast/quest.cpp.rank
+touch stamp/tests/fwd.hpp.rank
+includes=$(grep '#include.*".*/.*"' src/char/inter_conf.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/admin/admin_conf.cpp.rank
+touch stamp/admin/main.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/char/int_party.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/ast/fwd.hpp
+touch stamp/ast/script.cpp.rank
+fgrep -q ../proto2/fwd.hpp src/wire/fwd.hpp
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/char/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/char/fwd.hpp
+fgrep -q ../net/fwd.hpp src/admin/fwd.hpp
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/wire/fwd.hpp
+touch stamp/wire/fwd.hpp.rank
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/debug-debug/compat-borrow.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/compat/nullpo.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/compat/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/compat/fwd.hpp || { echo src/compat/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/ast/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/char/main.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/char/fwd.hpp
+touch stamp/char/char_lan_conf.cpp.rank
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/wire/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/char/fwd.hpp
+fgrep -q ../high/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/char/int_storage.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/char/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/char/fwd.hpp || { echo src/char/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/admin/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/debug-debug/compat-option.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+touch stamp/char/char_conf.cpp.rank
+touch stamp/compat/nullpo.cpp.rank
+touch stamp/ast/item.cpp.rank
+fgrep -q ../net/fwd.hpp src/wire/fwd.hpp
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+fgrep -q ../io/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/char/fwd.hpp
+touch stamp/debug-debug/compat-borrow.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/debug-debug/generic-dumb_ptr.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/debug-debug/ints-wrap.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/ast/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+fgrep -q ../net/fwd.hpp src/char/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/wire/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/char/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/admin/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/debug-debug/map-map.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/char/fwd.hpp
+touch stamp/debug-debug/compat-option.cpp.rank
+touch stamp/char/main.cpp.rank
+fgrep -q ../ints/fwd.hpp src/char/fwd.hpp
+touch stamp/char/inter_conf.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/debug-debug/map-mapflag.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto2/fwd.hpp src/char/fwd.hpp
+touch stamp/wire/packets.hpp.rank
+touch stamp/ast/npc.cpp.rank
+fgrep -q ../high/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/debug-debug/map-script-persist.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+touch stamp/char/globals.cpp.rank
+fgrep -q ../io/fwd.hpp src/char/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/char/fwd.hpp
+touch stamp/debug-debug/map-map.cpp.rank
+fgrep -q ../proto2/fwd.hpp src/char/fwd.hpp
+fgrep -q ../wire/fwd.hpp src/admin/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/debug-debug/mmo-ids.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/debug-debug/map-script-parse.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/debug-debug/mmo-strs.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+touch stamp/debug-debug/ints-wrap.cpp.rank
+touch stamp/admin/ladmin.cpp.rank
+fgrep -q ../proto2/fwd.hpp src/char/fwd.hpp
+touch stamp/debug-debug/generic-dumb_ptr.cpp.rank
+fgrep -q ../mmo/fwd.hpp src/char/fwd.hpp
+fgrep -q ../wire/fwd.hpp src/char/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/char/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/char/fwd.hpp
+touch stamp/debug-debug/map-script-persist.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/debug-debug/strings-astring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/char/inter.cpp.rank
+fgrep -q ../wire/fwd.hpp src/char/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/debug-debug/net-ip.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/debug-debug/strings-rstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/debug-debug/strings-literal.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/debug-debug/net-timer.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/debug-debug/map-script-parse.cpp.rank
+fgrep -q ../strings/fwd.hpp src/char/fwd.hpp
+fgrep -q ../wire/fwd.hpp src/char/fwd.hpp
+touch stamp/debug-debug/mmo-strs.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/debug-debug/strings-zstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/char/char.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/debug-debug/sexpr-variant.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/debug-debug/sexpr-parser.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/debug-debug/strings-xstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/debug-debug/net-ip.cpp.rank
+touch stamp/debug-debug/mmo-ids.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/generic/md5.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/debug-debug/net-timer.cpp.rank
+touch stamp/debug-debug/strings-zstring.cpp.rank
+touch stamp/debug-debug/strings-literal.cpp.rank
+touch stamp/debug-debug/sexpr-variant.cpp.rank
+touch stamp/debug-debug/strings-rstring.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/generic/random.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/debug-debug/strings-vstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/debug-debug/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/debug-debug/fwd.hpp || { echo src/debug-debug/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/high/md5more.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../wire/fwd.hpp src/char/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/generic/oops.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/generic/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/generic/fwd.hpp || { echo src/generic/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/debug-debug/strings-xstring.cpp.rank
+fgrep -q ../compat/fwd.hpp src/generic/fwd.hpp
+touch stamp/char/int_storage.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/high/extract_mmo.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/high/core.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/io/extract.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/generic/fwd.hpp
+touch stamp/generic/random.cpp.rank
+touch stamp/char/int_party.cpp.rank
+touch stamp/generic/md5.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/io/line.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/io/fd.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/high/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/io/lock.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/high/utils.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/high/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/high/fwd.hpp || { echo src/high/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/debug-debug/map-mapflag.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/io/dir.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/io/span.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/io/read.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/debug-debug/sexpr-parser.cpp.rank
+touch stamp/generic/oops.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/io/write.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/io/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/io/fwd.hpp || { echo src/io/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/io/line.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/login/globals.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../io/fwd.hpp src/high/fwd.hpp
+fgrep -q ../io/fwd.hpp src/high/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../io/fwd.hpp src/high/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+touch stamp/debug-debug/strings-vstring.cpp.rank
+fgrep -q ../strings/fwd.hpp src/high/fwd.hpp
+fgrep -q ../net/fwd.hpp src/high/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/high/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/login/fwd.hpp
+touch stamp/high/utils.cpp.rank
+touch stamp/debug-debug/strings-astring.cpp.rank
+fgrep -q ../generic/fwd.hpp src/high/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/login/login_conf.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/io/fwd.hpp
+touch stamp/high/extract_mmo.cpp.rank
+touch stamp/io/lock.cpp.rank
+touch stamp/io/span.cpp.rank
+touch stamp/io/extract.cpp.rank
+touch stamp/io/dir.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/login/login.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/high/fwd.hpp
+touch stamp/io/read.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/login/login_lan_conf.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/atcommand.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/high/fwd.hpp
+fgrep -q ../high/fwd.hpp src/login/fwd.hpp
+touch stamp/login/globals.cpp.rank
+touch stamp/io/write.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/login/main.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/login/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/login/fwd.hpp || { echo src/login/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/battle_conf.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/clif.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/battle.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/globals.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/login/fwd.hpp
+touch stamp/high/md5more.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/intif.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/chrif.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ast/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/login/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/high/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/login/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/grfio.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/itemdb.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/main.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/map.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+touch stamp/high/core.cpp.rank
+touch stamp/login/login_conf.cpp.rank
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/io/fd.cpp.rank
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/login/fwd.hpp
+touch stamp/login/main.cpp.rank
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/mapflag.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/battle_conf.cpp.rank
+fgrep -q ../io/fwd.hpp src/login/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/map_conf.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ast/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/login/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/mob.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../proto2/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+touch stamp/map/globals.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/npc-parse.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/npc.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/login/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/login/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/login/login_lan_conf.cpp.rank
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+touch stamp/map/main.cpp.rank
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/login/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../ints/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/party.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+touch stamp/map/grfio.cpp.rank
+fgrep -q ../proto2/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+touch stamp/map/mapflag.cpp.rank
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/path.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../ast/fwd.hpp src/map/fwd.hpp
+touch stamp/map/map_conf.cpp.rank
+fgrep -q ../proto2/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/login/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../wire/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../wire/fwd.hpp src/login/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/pc.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/script-call.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/map/intif.cpp.rank
+touch stamp/map/itemdb.cpp.rank
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/script-parse.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../wire/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../wire/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/map/battle.cpp.rank
+touch stamp/map/chrif.cpp.rank
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/quest.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/map/mob.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/skill-pools.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+touch stamp/login/login.cpp.rank
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+touch stamp/map/clif.cpp.rank
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/script-fun.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../ast/fwd.hpp src/map/fwd.hpp
+touch stamp/map/map.cpp.rank
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/storage.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/map/skill.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/path.cpp.rank
+fgrep -q ../ast/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/script-startup.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/npc.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/map/trade.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/map/tmw.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/map/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/map/fwd.hpp || { echo src/map/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/mmo/extract_enums.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/mmo/config_parse.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+touch stamp/map/atcommand.cpp.rank
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+touch stamp/map/party.cpp.rank
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/map/script-call.cpp.rank
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/mmo/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/mmo/human_time_diff.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/mmo/ids.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+touch stamp/mmo/extract_enums.cpp.rank
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/net/ip.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/mmo/version.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/npc-parse.cpp.rank
+touch stamp/map/skill-pools.cpp.rank
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+fgrep -q ../compat/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/mmo/fwd.hpp
+touch stamp/map/script-startup.cpp.rank
+fgrep -q ../io/fwd.hpp src/mmo/fwd.hpp
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+touch stamp/mmo/config_parse.cpp.rank
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+touch stamp/map/script-parse.cpp.rank
+fgrep -q ../io/fwd.hpp src/mmo/fwd.hpp
+touch stamp/map/quest.cpp.rank
+fgrep -q ../proto2/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/net/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/mmo/strs.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/mmo/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/mmo/fwd.hpp || { echo src/mmo/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/mmo/ids.cpp.rank
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+touch stamp/map/storage.cpp.rank
+fgrep -q ../mmo/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/net/fwd.hpp
+touch stamp/mmo/human_time_diff.cpp.rank
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/net/socket.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/pc.cpp.rank
+fgrep -q ../io/fwd.hpp src/mmo/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/net/timestamp-utils.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/net/timer.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/net/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/net/fwd.hpp || { echo src/net/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+touch stamp/map/trade.cpp.rank
+touch stamp/net/ip.cpp.rank
+fgrep -q ../generic/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/sexpr/lexer.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/mmo/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/sexpr/parser.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/sexpr/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/sexpr/fwd.hpp || { echo src/sexpr/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/map/fwd.hpp
+fgrep -q ../high/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/strings/mstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/rstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/net/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/strings/sstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/map/skill.cpp.rank
+touch stamp/mmo/strs.cpp.rank
+fgrep -q ../strings/fwd.hpp src/sexpr/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/net/fwd.hpp
+fgrep -q ../io/fwd.hpp src/map/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/shared/lib.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/shared/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/shared/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/shared/fwd.hpp || { echo src/shared/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/net/timer.cpp.rank
+fgrep -q ../io/fwd.hpp src/sexpr/fwd.hpp
+touch stamp/map/tmw.cpp.rank
+fgrep -q ../io/fwd.hpp src/net/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/strings/astring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+includes=$(grep '#include.*".*/.*"' src/strings/literal.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/fwd.hpp src/mmo/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/wire/packets.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/wire/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/wire/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/wire/fwd.hpp || { echo src/wire/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/mmo/version.cpp.rank
+touch stamp/strings/rstring.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/xstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+fgrep -q ../net/fwd.hpp src/map/fwd.hpp
+fgrep -q ../proto2/fwd.hpp src/net/fwd.hpp
+includes=$(grep '#include.*".*/.*"' src/strings/zstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/strings/mstring.cpp.rank
+includes=$(grep '#include.*".*/.*"' src/strings/tstring.cpp | sed 's/^[^"]*"//;s/"[^"]*$//;s:/[^/]*$::' | sort -u | fgrep -vx -e '..' -e 'conf-raw' -e '../conf'); \
+ for inc in $includes; do if ! test -f src/strings/fwd.hpp; then continue; fi; echo fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp; fgrep -q ${inc}/fwd.hpp src/strings/fwd.hpp || { echo src/strings/fwd.hpp:''23: error: No ${inc}/fwd.hpp; exit 1; }; done
+touch stamp/shared/lib.cpp.rank
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/admin/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp || { grep -Hnw $t';$' src/admin/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/fwd.hpp src/net/fwd.hpp
+fgrep -q ../strings/fwd.hpp src/sexpr/fwd.hpp
+touch stamp/strings/sstring.cpp.rank
+fgrep -q ../proto2/fwd.hpp src/map/fwd.hpp
+fgrep -q ../io/fwd.hpp src/net/fwd.hpp
+touch stamp/sexpr/lexer.cpp.rank
+fgrep -q ../wire/fwd.hpp src/net/fwd.hpp
+touch stamp/net/socket.cpp.rank
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/generic/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp || { grep -Hnw $t';$' src/generic/fwd.hpp; exit 1; }; done
+touch stamp/strings/xstring.cpp.rank
+touch stamp/map/script-fun.cpp.rank
+touch stamp/strings/literal.cpp.rank
+fgrep -q ../strings/fwd.hpp src/net/fwd.hpp
+touch stamp/sexpr/parser.cpp.rank
+touch stamp/strings/zstring.cpp.rank
+grep -q AdminConf src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/char/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp || { grep -Hnw $t';$' src/char/fwd.hpp; exit 1; }; done
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/ast/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp || { grep -Hnw $t';$' src/ast/fwd.hpp; exit 1; }; done
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/high/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp || { grep -Hnw $t';$' src/high/fwd.hpp; exit 1; }; done
+touch stamp/strings/astring.cpp.rank
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/compat/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/compat/nullpo.hpp src/compat/iter.hpp src/compat/attr.hpp src/compat/time_t.hpp src/compat/result.hpp src/compat/borrow.hpp src/compat/cast.hpp src/compat/option.hpp src/compat/memory.hpp src/compat/operators.hpp src/compat/fun.hpp src/compat/rawmem.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/compat/nullpo.hpp src/compat/iter.hpp src/compat/attr.hpp src/compat/time_t.hpp src/compat/result.hpp src/compat/borrow.hpp src/compat/cast.hpp src/compat/option.hpp src/compat/memory.hpp src/compat/operators.hpp src/compat/fun.hpp src/compat/rawmem.hpp || { grep -Hnw $t';$' src/compat/fwd.hpp; exit 1; }; done
+touch stamp/net/timestamp-utils.cpp.rank
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/io/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp || { grep -Hnw $t';$' src/io/fwd.hpp; exit 1; }; done
+grep -q dumb_ptr src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/login/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp || { grep -Hnw $t';$' src/login/fwd.hpp; exit 1; }; done
+grep -q Warp src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp
+grep -q Map src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp
+grep -q CharPair src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp
+grep -q DMap src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp
+grep -q ScriptBody src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/ints/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/ints/wrap.hpp src/ints/cmp.hpp src/ints/udl.hpp src/ints/little.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/ints/wrap.hpp src/ints/cmp.hpp src/ints/udl.hpp src/ints/little.hpp || { grep -Hnw $t';$' src/ints/fwd.hpp; exit 1; }; done
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/net/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp || { grep -Hnw $t';$' src/net/fwd.hpp; exit 1; }; done
+grep -q UPMap src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/ast/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp src/ast/npc_test.cpp src/ast/quest.cpp src/ast/item.cpp src/ast/script.cpp src/ast/npc.cpp src/ast/item_test.cpp; fgrep -q $inc src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp src/ast/npc_test.cpp src/ast/quest.cpp src/ast/item.cpp src/ast/script.cpp src/ast/npc.cpp src/ast/item_test.cpp || { grep -Hn $inc src/ast/fwd.hpp; exit 1; }; done
+grep -q CharConf src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp
+grep -q PartyPair src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/mmo/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp || { grep -Hnw $t';$' src/mmo/fwd.hpp; exit 1; }; done
+grep -q InternPool src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/map/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp || { grep -Hnw $t';$' src/map/fwd.hpp; exit 1; }; done
+fgrep -q ../io/fwd.hpp src/wire/fwd.hpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/admin/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp src/admin/admin_conf.cpp src/admin/ladmin.cpp src/admin/globals.cpp src/admin/main.cpp; fgrep -q $inc src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp src/admin/admin_conf.cpp src/admin/ladmin.cpp src/admin/globals.cpp src/admin/main.cpp || { grep -Hn $inc src/admin/fwd.hpp; exit 1; }; done
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/ints/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/ints/wrap.hpp src/ints/cmp.hpp src/ints/udl.hpp src/ints/little.hpp src/ints/cmp_test.cpp src/ints/udl_test.cpp; fgrep -q $inc src/ints/wrap.hpp src/ints/cmp.hpp src/ints/udl.hpp src/ints/little.hpp src/ints/cmp_test.cpp src/ints/udl_test.cpp || { grep -Hn $inc src/ints/fwd.hpp; exit 1; }; done
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/proto-base/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/proto-base/net-array.hpp src/proto-base/net-skewed-length.hpp src/proto-base/net-neutral.hpp src/proto-base/net-string.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/proto-base/net-array.hpp src/proto-base/net-skewed-length.hpp src/proto-base/net-neutral.hpp src/proto-base/net-string.hpp || { grep -Hnw $t';$' src/proto-base/fwd.hpp; exit 1; }; done
+grep -q Session src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp
+grep -q ReadFile src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp
+grep -q LoginConf src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/high/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp; fgrep -q $inc src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp || { grep -Hn $inc src/high/fwd.hpp; exit 1; }; done
+grep -q MapName src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+grep -q IP4Address src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp
+grep -q LoginLanConf src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp
+grep -q WriteFile src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp
+grep -q TimerData src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp
+touch stamp/ints.fwdcheck
+grep -q CharName src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+grep -q CharLanConf src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp
+grep -q AppendFile src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp
+grep -q InterConf src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/proto-base/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/proto-base/net-array.hpp src/proto-base/net-skewed-length.hpp src/proto-base/net-neutral.hpp src/proto-base/net-string.hpp; fgrep -q $inc src/proto-base/net-array.hpp src/proto-base/net-skewed-length.hpp src/proto-base/net-neutral.hpp src/proto-base/net-string.hpp || { grep -Hn $inc src/proto-base/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/ src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp src/ast/npc_test.cpp src/ast/quest.cpp src/ast/item.cpp src/ast/script.cpp src/ast/npc.cpp src/ast/item_test.cpp
+fgrep -q ../range/ src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/range/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/range/slice.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/range/slice.hpp || { grep -Hnw $t';$' src/range/fwd.hpp; exit 1; }; done
+grep -q HumanTimeDiff src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+grep -q AuthFifoEntry src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp
+grep -q mmo_char_server src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/generic/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp src/generic/random.cpp src/generic/oops_test.cpp src/generic/md5_test.cpp src/generic/array_test.cpp src/generic/oops.cpp src/generic/intern-pool_test.cpp src/generic/md5.cpp; fgrep -q $inc src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp src/generic/random.cpp src/generic/oops_test.cpp src/generic/md5_test.cpp src/generic/array_test.cpp src/generic/oops.cpp src/generic/intern-pool_test.cpp src/generic/md5.cpp || { grep -Hn $inc src/generic/fwd.hpp; exit 1; }; done
+fgrep -q ../strings/ src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp src/admin/admin_conf.cpp src/admin/ladmin.cpp src/admin/globals.cpp src/admin/main.cpp
+grep -q LineReader src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp
+grep -q npc_data_script src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp
+grep -q Option src/compat/nullpo.hpp src/compat/iter.hpp src/compat/attr.hpp src/compat/time_t.hpp src/compat/result.hpp src/compat/borrow.hpp src/compat/cast.hpp src/compat/option.hpp src/compat/memory.hpp src/compat/operators.hpp src/compat/fun.hpp src/compat/rawmem.hpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/net/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp src/net/timer.cpp src/net/ip_test.cpp src/net/socket.cpp src/net/timestamp-utils.cpp src/net/ip.cpp; fgrep -q $inc src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp src/net/timer.cpp src/net/ip_test.cpp src/net/socket.cpp src/net/timestamp-utils.cpp src/net/ip.cpp || { grep -Hn $inc src/net/fwd.hpp; exit 1; }; done
+grep -q mmo_map_server src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp
+grep -q npc_data_shop src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp
+touch stamp/strings/tstring.cpp.rank
+fgrep -q ../strings/ src/proto-base/net-array.hpp src/proto-base/net-skewed-length.hpp src/proto-base/net-neutral.hpp src/proto-base/net-string.hpp
+fgrep -q ../io/ src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp src/admin/admin_conf.cpp src/admin/ladmin.cpp src/admin/globals.cpp src/admin/main.cpp
+grep -q Borrowed src/compat/nullpo.hpp src/compat/iter.hpp src/compat/attr.hpp src/compat/time_t.hpp src/compat/result.hpp src/compat/borrow.hpp src/compat/cast.hpp src/compat/option.hpp src/compat/memory.hpp src/compat/operators.hpp src/compat/fun.hpp src/compat/rawmem.hpp
+fgrep -q ../net/ src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp src/admin/admin_conf.cpp src/admin/ladmin.cpp src/admin/globals.cpp src/admin/main.cpp
+grep -q AuthData src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp
+grep -q accreg src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp
+fgrep -q ../strings/ src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp src/generic/random.cpp src/generic/oops_test.cpp src/generic/md5_test.cpp src/generic/array_test.cpp src/generic/oops.cpp src/generic/intern-pool_test.cpp src/generic/md5.cpp
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/proto2/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp || { grep -Hnw $t';$' src/proto2/fwd.hpp; exit 1; }; done
+fgrep -q ../generic/ src/proto-base/net-array.hpp src/proto-base/net-skewed-length.hpp src/proto-base/net-neutral.hpp src/proto-base/net-string.hpp
+grep -q TimeT src/compat/nullpo.hpp src/compat/iter.hpp src/compat/attr.hpp src/compat/time_t.hpp src/compat/result.hpp src/compat/borrow.hpp src/compat/cast.hpp src/compat/option.hpp src/compat/memory.hpp src/compat/operators.hpp src/compat/fun.hpp src/compat/rawmem.hpp
+grep -q npc_data_warp src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp
+fgrep -q ../strings/ src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp
+touch stamp/wire/packets.cpp.rank
+grep -q LineCharReader src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/char/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp; fgrep -q $inc src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp || { grep -Hn $inc src/char/fwd.hpp; exit 1; }; done
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/login/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp; fgrep -q $inc src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp || { grep -Hn $inc src/login/fwd.hpp; exit 1; }; done
+fgrep -q ../io/ src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp src/ast/npc_test.cpp src/ast/quest.cpp src/ast/item.cpp src/ast/script.cpp src/ast/npc.cpp src/ast/item_test.cpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/compat/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/compat/nullpo.hpp src/compat/iter.hpp src/compat/attr.hpp src/compat/time_t.hpp src/compat/result.hpp src/compat/borrow.hpp src/compat/cast.hpp src/compat/option.hpp src/compat/memory.hpp src/compat/operators.hpp src/compat/fun.hpp src/compat/rawmem.hpp src/compat/option_test.cpp src/compat/nullpo.cpp src/compat/iter_test.cpp src/compat/result_test.cpp; fgrep -q $inc src/compat/nullpo.hpp src/compat/iter.hpp src/compat/attr.hpp src/compat/time_t.hpp src/compat/result.hpp src/compat/borrow.hpp src/compat/cast.hpp src/compat/option.hpp src/compat/memory.hpp src/compat/operators.hpp src/compat/fun.hpp src/compat/rawmem.hpp src/compat/option_test.cpp src/compat/nullpo.cpp src/compat/iter_test.cpp src/compat/result_test.cpp || { grep -Hn $inc src/compat/fwd.hpp; exit 1; }; done
+grep -q SIR src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp
+fgrep -q ../mmo/ src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp src/admin/admin_conf.cpp src/admin/ladmin.cpp src/admin/globals.cpp src/admin/main.cpp
+grep -q Line src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp
+fgrep -q ../net/ src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp src/ast/npc_test.cpp src/ast/quest.cpp src/ast/item.cpp src/ast/script.cpp src/ast/npc.cpp src/ast/item_test.cpp
+fgrep -q ../compat/ src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp
+grep -q Species src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../proto2/ src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp src/admin/admin_conf.cpp src/admin/ladmin.cpp src/admin/globals.cpp src/admin/main.cpp
+fgrep -q ../generic/ src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp
+grep -q AccountId src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../ints/ src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp src/net/timer.cpp src/net/ip_test.cpp src/net/socket.cpp src/net/timestamp-utils.cpp src/net/ip.cpp
+fgrep -q ../ints/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/map/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp; fgrep -q $inc src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp || { grep -Hn $inc src/map/fwd.hpp; exit 1; }; done
+fgrep -q ../high/ src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp src/admin/admin_conf.cpp src/admin/ladmin.cpp src/admin/globals.cpp src/admin/main.cpp
+grep -q Slice src/range/slice.hpp
+fgrep -q ../compat/ src/generic/array.hpp src/generic/random.t.hpp src/generic/intern-pool.hpp src/generic/db.hpp src/generic/random2.hpp src/generic/oops.hpp src/generic/dumb_ptr.hpp src/generic/md5.hpp src/generic/random.hpp src/generic/enum.hpp src/generic/matrix.hpp src/generic/random.cpp src/generic/oops_test.cpp src/generic/md5_test.cpp src/generic/array_test.cpp src/generic/oops.cpp src/generic/intern-pool_test.cpp src/generic/md5.cpp
+fgrep -q ../ints/ src/compat/nullpo.hpp src/compat/iter.hpp src/compat/attr.hpp src/compat/time_t.hpp src/compat/result.hpp src/compat/borrow.hpp src/compat/cast.hpp src/compat/option.hpp src/compat/memory.hpp src/compat/operators.hpp src/compat/fun.hpp src/compat/rawmem.hpp src/compat/option_test.cpp src/compat/nullpo.cpp src/compat/iter_test.cpp src/compat/result_test.cpp
+fgrep -q ../ints/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+grep -q LineChar src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp
+grep -q CharId src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../io/ src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp
+fgrep -q ../mmo/ src/proto-base/net-array.hpp src/proto-base/net-skewed-length.hpp src/proto-base/net-neutral.hpp src/proto-base/net-string.hpp
+fgrep -q ../strings/ src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp src/net/timer.cpp src/net/ip_test.cpp src/net/socket.cpp src/net/timestamp-utils.cpp src/net/ip.cpp
+grep -q PartyId src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../strings/ src/compat/nullpo.hpp src/compat/iter.hpp src/compat/attr.hpp src/compat/time_t.hpp src/compat/result.hpp src/compat/borrow.hpp src/compat/cast.hpp src/compat/option.hpp src/compat/memory.hpp src/compat/operators.hpp src/compat/fun.hpp src/compat/rawmem.hpp src/compat/option_test.cpp src/compat/nullpo.cpp src/compat/iter_test.cpp src/compat/result_test.cpp
+fgrep -q ../wire/ src/admin/admin_conf.hpp src/admin/ladmin.hpp src/admin/globals.hpp src/admin/admin_conf.cpp src/admin/ladmin.cpp src/admin/globals.cpp src/admin/main.cpp
+fgrep -q ../strings/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+touch stamp/proto-base.fwdcheck
+grep -q LineSpan src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp
+grep -q Packet_Fixed src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+fgrep -q ../ints/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+fgrep -q ../net/ src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/tests/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/tests/fdhack.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/tests/fdhack.hpp || { grep -Hnw $t';$' src/tests/fwd.hpp; exit 1; }; done
+fgrep -q ../compat/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+fgrep -q ../sexpr/ src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp src/ast/npc_test.cpp src/ast/quest.cpp src/ast/item.cpp src/ast/script.cpp src/ast/npc.cpp src/ast/item_test.cpp
+fgrep -q ../compat/ src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp src/net/timer.cpp src/net/ip_test.cpp src/net/socket.cpp src/net/timestamp-utils.cpp src/net/ip.cpp
+touch stamp/compat.fwdcheck
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/strings/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp || { grep -Hnw $t';$' src/strings/fwd.hpp; exit 1; }; done
+grep -q NetPacket_Fixed src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+grep -q ItemNameId src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../generic/ src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp src/net/timer.cpp src/net/ip_test.cpp src/net/socket.cpp src/net/timestamp-utils.cpp src/net/ip.cpp
+fgrep -q ../strings/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+grep -q Spanned src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp
+grep -q BlockId src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../generic/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+touch stamp/admin.fwdcheck
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/range/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/range/slice.hpp src/range/slice.tcc src/range/slice_test.cpp; fgrep -q $inc src/range/slice.hpp src/range/slice.tcc src/range/slice_test.cpp || { grep -Hn $inc src/range/fwd.hpp; exit 1; }; done
+touch stamp/generic.fwdcheck
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/sexpr/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/sexpr/variant.hpp src/sexpr/lexer.hpp src/sexpr/void.hpp src/sexpr/union.hpp src/sexpr/parser.hpp src/sexpr/bind.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/sexpr/variant.hpp src/sexpr/lexer.hpp src/sexpr/void.hpp src/sexpr/union.hpp src/sexpr/parser.hpp src/sexpr/bind.hpp || { grep -Hnw $t';$' src/sexpr/fwd.hpp; exit 1; }; done
+fgrep -q ../range/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+types=$(grep -o '\(enum \|class \| struct \|union \)\+[A-Za-z_0-9]\+;$' src/wire/fwd.hpp | sed 's/\(;\|enum \|class \|struct \|union \)//g'); \
+ for t in $types; do echo grep -q $t src/wire/packets.hpp; grep -qw '\(enum \|class \|struct \|union \)'$t src/wire/packets.hpp || { grep -Hnw $t';$' src/wire/fwd.hpp; exit 1; }; done
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/tests/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/tests/fdhack.hpp; fgrep -q $inc src/tests/fdhack.hpp || { grep -Hn $inc src/tests/fwd.hpp; exit 1; }; done
+grep -q GmLevel src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../io/ src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp src/net/timer.cpp src/net/ip_test.cpp src/net/socket.cpp src/net/timestamp-utils.cpp src/net/ip.cpp
+fgrep -q ../mmo/ src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp
+grep -q ClientVersion src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+touch stamp/range.fwdcheck
+grep -q AccountName src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../io/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+fgrep -q ../strings/ src/tests/fdhack.hpp
+fgrep -q ../compat/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/io/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp src/io/line.cpp src/io/extract_test.cpp src/io/dir.cpp src/io/read.cpp src/io/line_test.cpp src/io/write_test.cpp src/io/lock.cpp src/io/write.cpp src/io/extract.cpp src/io/read_test.cpp src/io/fd.cpp src/io/span.cpp; fgrep -q $inc src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp src/io/line.cpp src/io/extract_test.cpp src/io/dir.cpp src/io/read.cpp src/io/line_test.cpp src/io/write_test.cpp src/io/lock.cpp src/io/write.cpp src/io/extract.cpp src/io/read_test.cpp src/io/fd.cpp src/io/span.cpp || { grep -Hn $inc src/io/fwd.hpp; exit 1; }; done
+grep -q RecvResult src/wire/packets.hpp
+fgrep -q ../strings/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+grep -q Packet_Payload src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+fgrep -q ../io/ src/tests/fdhack.hpp
+grep -q AccountPass src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../net/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/wire/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/wire/packets.hpp src/wire/packets.cpp; fgrep -q $inc src/wire/packets.hpp src/wire/packets.cpp || { grep -Hn $inc src/wire/fwd.hpp; exit 1; }; done
+grep -q NetPacket_Payload src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+fgrep -q ../proto2/ src/high/utils.hpp src/high/mmo.hpp src/high/core.hpp src/high/extract_mmo.hpp src/high/md5more.hpp src/high/md5more.cpp src/high/utils.cpp src/high/core.cpp src/high/extract_mmo.cpp
+fgrep -q ../compat/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+grep -q AccountCrypt src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+grep -q MString src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp
+grep -q Packet_Head src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+touch stamp/high.fwdcheck
+fgrep -q ../generic/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+grep -q RString src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp
+fgrep -q ../ints/ src/wire/packets.hpp src/wire/packets.cpp
+fgrep -q ../ints/ src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp src/io/line.cpp src/io/extract_test.cpp src/io/dir.cpp src/io/read.cpp src/io/line_test.cpp src/io/write_test.cpp src/io/lock.cpp src/io/write.cpp src/io/extract.cpp src/io/read_test.cpp src/io/fd.cpp src/io/span.cpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/sexpr/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/sexpr/variant.hpp src/sexpr/lexer.hpp src/sexpr/void.hpp src/sexpr/union.hpp src/sexpr/parser.hpp src/sexpr/bind.hpp src/sexpr/variant.tcc src/sexpr/union_test.cpp src/sexpr/parser_test.cpp src/sexpr/variant_test.cpp src/sexpr/lexer.cpp src/sexpr/parser.cpp src/sexpr/lexer_test.cpp; fgrep -q $inc src/sexpr/variant.hpp src/sexpr/lexer.hpp src/sexpr/void.hpp src/sexpr/union.hpp src/sexpr/parser.hpp src/sexpr/bind.hpp src/sexpr/variant.tcc src/sexpr/union_test.cpp src/sexpr/parser_test.cpp src/sexpr/variant_test.cpp src/sexpr/lexer.cpp src/sexpr/parser.cpp src/sexpr/lexer_test.cpp || { grep -Hn $inc src/sexpr/fwd.hpp; exit 1; }; done
+grep -q AString src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp
+g++-8 -std=c++0x -fuse-ld=gold obj/ast/item_test.pdc.o obj/ast/item.pdc.o obj/ast/script.pdc.o obj/generic/oops.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/line.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/mmo/ids.pdc.o obj/mmo/strs.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/io/extract.pdc.o obj/mmo/extract_enums.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-ast--item.elf
+fgrep -q ../mmo/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+grep -q NetPacket_Head src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+fgrep -q ../generic/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+touch stamp/tests.fwdcheck
+fgrep -q ../proto2/ src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp src/net/timer.cpp src/net/ip_test.cpp src/net/socket.cpp src/net/timestamp-utils.cpp src/net/ip.cpp
+grep -q AccountEmail src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../mmo/ src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp src/ast/npc_test.cpp src/ast/quest.cpp src/ast/item.cpp src/ast/script.cpp src/ast/npc.cpp src/ast/item_test.cpp
+grep -q Packet_Repeat src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+g++-8 -std=c++0x -fuse-ld=gold obj/compat/option_test.pdc.o obj/strings/literal.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-compat--option.elf
+fgrep -q ../io/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+grep -q ServerName src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+g++-8 -std=c++0x -fuse-ld=gold obj/compat/iter_test.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-compat--iter.elf
+grep -q NetPacket_Repeat src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+grep -q XString src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp
+fgrep -q ../strings/ src/sexpr/variant.hpp src/sexpr/lexer.hpp src/sexpr/void.hpp src/sexpr/union.hpp src/sexpr/parser.hpp src/sexpr/bind.hpp src/sexpr/variant.tcc src/sexpr/union_test.cpp src/sexpr/parser_test.cpp src/sexpr/variant_test.cpp src/sexpr/lexer.cpp src/sexpr/parser.cpp src/sexpr/lexer_test.cpp
+grep -q PartyName src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../net/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+grep -q Packet_Option src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+g++-8 -std=c++0x -fuse-ld=gold obj/compat/result_test.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/astring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-compat--result.elf
+fgrep -q ../high/ src/ast/quest.hpp src/ast/item.hpp src/ast/script.hpp src/ast/npc.hpp src/ast/npc_test.cpp src/ast/quest.cpp src/ast/item.cpp src/ast/script.cpp src/ast/npc.cpp src/ast/item_test.cpp
+fgrep -q ../io/ src/sexpr/variant.hpp src/sexpr/lexer.hpp src/sexpr/void.hpp src/sexpr/union.hpp src/sexpr/parser.hpp src/sexpr/bind.hpp src/sexpr/variant.tcc src/sexpr/union_test.cpp src/sexpr/parser_test.cpp src/sexpr/variant_test.cpp src/sexpr/lexer.cpp src/sexpr/parser.cpp src/sexpr/lexer_test.cpp
+grep -q QuestId src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../compat/ src/wire/packets.hpp src/wire/packets.cpp
+fgrep -q ../wire/ src/net/timer.hpp src/net/socket.hpp src/net/timestamp-utils.hpp src/net/timer.t.hpp src/net/ip.hpp src/net/timer.cpp src/net/ip_test.cpp src/net/socket.cpp src/net/timestamp-utils.cpp src/net/ip.cpp
+grep -q LString src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp
+fgrep -q ../strings/ src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp src/io/line.cpp src/io/extract_test.cpp src/io/dir.cpp src/io/read.cpp src/io/line_test.cpp src/io/write_test.cpp src/io/lock.cpp src/io/write.cpp src/io/extract.cpp src/io/read_test.cpp src/io/fd.cpp src/io/span.cpp
+fgrep -q ../mmo/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+grep -q NetPacket_Option src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+g++-8 -std=c++0x -fuse-ld=gold obj/ast/npc_test.pdc.o obj/ast/npc.pdc.o obj/ast/script.pdc.o obj/generic/oops.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/line.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/mmo/ids.pdc.o obj/mmo/strs.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/high/extract_mmo.pdc.o obj/io/extract.pdc.o obj/mmo/extract_enums.pdc.o obj/net/ip.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-ast--npc.elf
+touch stamp/ast.fwdcheck
+grep -q VarName src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+touch stamp/net.fwdcheck
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/proto2/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp; fgrep -q $inc src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp || { grep -Hn $inc src/proto2/fwd.hpp; exit 1; }; done
+grep -q FormatString src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp
+fgrep -q ../proto2/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+touch stamp/sexpr.fwdcheck
+grep -q MapName src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+g++-8 -std=c++0x -fuse-ld=gold obj/generic/intern-pool_test.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-generic--intern-pool.elf
+grep -q VString src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp
+g++-8 -std=c++0x -fuse-ld=gold obj/generic/array_test.pdc.o obj/generic/oops.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-generic--array.elf
+grep -q CharName src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp
+fgrep -q ../compat/ src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp src/io/line.cpp src/io/extract_test.cpp src/io/dir.cpp src/io/read.cpp src/io/line_test.cpp src/io/write_test.cpp src/io/lock.cpp src/io/write.cpp src/io/extract.cpp src/io/read_test.cpp src/io/fd.cpp src/io/span.cpp
+fgrep -q ../high/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+fgrep -q ../io/ src/wire/packets.hpp src/wire/packets.cpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/strings/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp src/strings/zstring.tcc src/strings/xstring.tcc src/strings/vstring.tcc src/strings/base.tcc src/strings/tstring.tcc src/strings/sstring.tcc src/strings/rstring.tcc src/strings/astring.tcc src/strings/strings2_test.cpp src/strings/xstring.cpp src/strings/zstring.cpp src/strings/literal.cpp src/strings/tstring.cpp src/strings/base_test.cpp src/strings/sstring.cpp src/strings/rstring.cpp src/strings/astring.cpp src/strings/strings_test.cpp src/strings/mstring.cpp; fgrep -q $inc src/strings/vstring.hpp src/strings/base.hpp src/strings/tstring.hpp src/strings/sstring.hpp src/strings/rstring.hpp src/strings/astring.hpp src/strings/pair.hpp src/strings/all.hpp src/strings/literal.hpp src/strings/mstring.hpp src/strings/zstring.hpp src/strings/xstring.hpp src/strings/zstring.tcc src/strings/xstring.tcc src/strings/vstring.tcc src/strings/base.tcc src/strings/tstring.tcc src/strings/sstring.tcc src/strings/rstring.tcc src/strings/astring.tcc src/strings/strings2_test.cpp src/strings/xstring.cpp src/strings/zstring.cpp src/strings/literal.cpp src/strings/tstring.cpp src/strings/base_test.cpp src/strings/sstring.cpp src/strings/rstring.cpp src/strings/astring.cpp src/strings/strings_test.cpp src/strings/mstring.cpp || { grep -Hn $inc src/strings/fwd.hpp; exit 1; }; done
+fgrep -q ../ints/ src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+includes=$(grep -o '#include.*".*/fwd\.hpp"' src/mmo/fwd.hpp | sed 's:^[^"]*"::;s:/[^/]*"$:/:'); \
+ for inc in $includes; do echo fgrep -q $inc src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp src/mmo/config_parse_test.cpp src/mmo/config_parse.cpp src/mmo/ids.cpp src/mmo/human_time_diff.cpp src/mmo/strs.cpp src/mmo/extract_enums.cpp src/mmo/version.cpp src/mmo/human_time_diff_test.cpp; fgrep -q $inc src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp src/mmo/config_parse_test.cpp src/mmo/config_parse.cpp src/mmo/ids.cpp src/mmo/human_time_diff.cpp src/mmo/strs.cpp src/mmo/extract_enums.cpp src/mmo/version.cpp src/mmo/human_time_diff_test.cpp || { grep -Hn $inc src/mmo/fwd.hpp; exit 1; }; done
+fgrep -q ../io/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+fgrep -q ../generic/ src/io/cxxstdio.hpp src/io/dir.hpp src/io/read.hpp src/io/tty.hpp src/io/write.hpp src/io/lock.hpp src/io/extract.hpp src/io/fd.hpp src/io/span.hpp src/io/line.hpp src/io/line.cpp src/io/extract_test.cpp src/io/dir.cpp src/io/read.cpp src/io/line_test.cpp src/io/write_test.cpp src/io/lock.cpp src/io/write.cpp src/io/extract.cpp src/io/read_test.cpp src/io/fd.cpp src/io/span.cpp
+touch stamp/strings.fwdcheck
+fgrep -q ../strings/ src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+fgrep -q ../wire/ src/char/char_lan_conf.hpp src/char/int_storage.hpp src/char/inter.hpp src/char/inter_conf.hpp src/char/globals.hpp src/char/char.hpp src/char/char_conf.hpp src/char/int_party.hpp src/char/consts.hpp src/char/char_conf.cpp src/char/int_party.cpp src/char/char_lan_conf.cpp src/char/int_storage.cpp src/char/inter.cpp src/char/inter_conf.cpp src/char/globals.cpp src/char/main.cpp src/char/char.cpp
+fgrep -q ../net/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+fgrep -q ../ints/ src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp src/mmo/config_parse_test.cpp src/mmo/config_parse.cpp src/mmo/ids.cpp src/mmo/human_time_diff.cpp src/mmo/strs.cpp src/mmo/extract_enums.cpp src/mmo/version.cpp src/mmo/human_time_diff_test.cpp
+fgrep -q ../compat/ src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+fgrep -q ../net/ src/wire/packets.hpp src/wire/packets.cpp
+touch stamp/io.fwdcheck
+fgrep -q ../net/ src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+fgrep -q ../sexpr/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+fgrep -q ../strings/ src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp src/mmo/config_parse_test.cpp src/mmo/config_parse.cpp src/mmo/ids.cpp src/mmo/human_time_diff.cpp src/mmo/strs.cpp src/mmo/extract_enums.cpp src/mmo/version.cpp src/mmo/human_time_diff_test.cpp
+g++-8 -std=c++0x -fuse-ld=gold obj/ints/cmp_test.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-ints--cmp.elf
+fgrep -q ../proto2/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+fgrep -q ../proto2/ src/wire/packets.hpp src/wire/packets.cpp
+fgrep -q ../mmo/ src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+fgrep -q ../compat/ src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp src/mmo/config_parse_test.cpp src/mmo/config_parse.cpp src/mmo/ids.cpp src/mmo/human_time_diff.cpp src/mmo/strs.cpp src/mmo/extract_enums.cpp src/mmo/version.cpp src/mmo/human_time_diff_test.cpp
+touch stamp/char.fwdcheck
+touch stamp/wire.fwdcheck
+g++-8 -std=c++0x -fuse-ld=gold obj/generic/oops_test.pdc.o obj/generic/oops.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-generic--oops.elf
+fgrep -q ../high/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+fgrep -q ../proto-base/ src/proto2/net-Version.hpp src/proto2/net-SkillID.hpp src/proto2/net-Opt2.hpp src/proto2/net-LOOK.hpp src/proto2/net-CharKey.hpp src/proto2/net-PartyMember.hpp src/proto2/net-Storage.hpp src/proto2/net-Item.hpp src/proto2/login-char.hpp src/proto2/net-ClientVersion.hpp src/proto2/net-CharSelect.hpp src/proto2/net-PartyId.hpp src/proto2/char-user.hpp src/proto2/char-map.hpp src/proto2/net-SkillFlags.hpp src/proto2/net-DIR.hpp src/proto2/net-GlobalReg.hpp src/proto2/net-Opt3.hpp src/proto2/net-HumanTimeDiff.hpp src/proto2/net-SkillInfo.hpp src/proto2/map-user.hpp src/proto2/net-ItemNameId.hpp src/proto2/net-Stats6.hpp src/proto2/net-EPOS.hpp src/proto2/net-CharData.hpp src/proto2/net-DamageType.hpp src/proto2/login-admin.hpp src/proto2/net-ItemType.hpp src/proto2/net-BeingRemoveWhy.hpp src/proto2/net-CharId.hpp src/proto2/net-AccountId.hpp src/proto2/net-StatusChange.hpp src/proto2/net-SEX.hpp src/proto2/net-Opt0.hpp src/proto2/net-PartyMost.hpp src/proto2/net-Point.hpp src/proto2/net-PickupFail.hpp src/proto2/net-BlockId.hpp src/proto2/net-SP.hpp src/proto2/net-Opt1.hpp src/proto2/net-SkillValue.hpp src/proto2/login-user.hpp src/proto2/any-user.hpp src/proto2/net-Species.hpp src/proto2/net-ItemLook.hpp
+fgrep -q ../mmo/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+fgrep -q ../generic/ src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp src/mmo/config_parse_test.cpp src/mmo/config_parse.cpp src/mmo/ids.cpp src/mmo/human_time_diff.cpp src/mmo/strs.cpp src/mmo/extract_enums.cpp src/mmo/version.cpp src/mmo/human_time_diff_test.cpp
+g++-8 -std=c++0x -fuse-ld=gold obj/ints/udl_test.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-ints--udl.elf
+fgrep -q ../wire/ src/login/login.hpp src/login/login_conf.hpp src/login/globals.hpp src/login/login_lan_conf.hpp src/login/login.t.hpp src/login/consts.hpp src/login/login.cpp src/login/login_conf.cpp src/login/main.cpp src/login/globals.cpp src/login/login_lan_conf.cpp
+touch stamp/proto2.fwdcheck
+fgrep -q ../io/ src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp src/mmo/config_parse_test.cpp src/mmo/config_parse.cpp src/mmo/ids.cpp src/mmo/human_time_diff.cpp src/mmo/strs.cpp src/mmo/extract_enums.cpp src/mmo/version.cpp src/mmo/human_time_diff_test.cpp
+fgrep -q ../proto2/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+fgrep -q ../net/ src/mmo/config_parse.hpp src/mmo/ids.hpp src/mmo/enums.hpp src/mmo/clif.t.hpp src/mmo/human_time_diff.hpp src/mmo/strs.hpp src/mmo/extract_enums.hpp src/mmo/version.hpp src/mmo/skill.t.hpp src/mmo/consts.hpp src/mmo/cxxstdio_enums.hpp src/mmo/config_parse_test.cpp src/mmo/config_parse.cpp src/mmo/ids.cpp src/mmo/human_time_diff.cpp src/mmo/strs.cpp src/mmo/extract_enums.cpp src/mmo/version.cpp src/mmo/human_time_diff_test.cpp
+g++-8 -std=c++0x -fuse-ld=gold obj/mmo/config_parse_test.pdc.o obj/io/span.pdc.o obj/mmo/config_parse.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/generic/oops.pdc.o obj/io/dir.pdc.o obj/io/extract.pdc.o obj/io/fd.pdc.o obj/io/line.pdc.o obj/io/read.pdc.o obj/mmo/version.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-mmo--config_parse.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/io/line_test.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/line.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-io--line.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/io/extract_test.pdc.o obj/generic/oops.pdc.o obj/high/extract_mmo.pdc.o obj/io/extract.pdc.o obj/mmo/strs.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/mmo/extract_enums.pdc.o obj/mmo/ids.pdc.o obj/net/ip.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-io--extract.elf
+fgrep -q ../high/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+touch stamp/login.fwdcheck
+g++-8 -std=c++0x -fuse-ld=gold obj/io/read_test.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/read.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-io--read.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/net/ip_test.pdc.o obj/generic/oops.pdc.o obj/io/extract.pdc.o obj/net/ip.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-net--ip.elf
+fgrep -q ../wire/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+g++-8 -std=c++0x -fuse-ld=gold obj/generic/md5_test.pdc.o obj/generic/md5.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-generic--md5.elf
+fgrep -q ../ast/ src/map/script-parse.hpp src/map/map_conf.hpp src/map/storage.hpp src/map/mob.t.hpp src/map/consts.hpp src/map/script-startup.hpp src/map/pc.t.hpp src/map/intif.hpp src/map/skill.hpp src/map/grfio.hpp src/map/map.t.hpp src/map/quest.hpp src/map/battle.hpp src/map/mapflag.hpp src/map/globals.hpp src/map/script-fun.hpp src/map/battle_conf.hpp src/map/script-call.hpp src/map/party.hpp src/map/path.hpp src/map/pc.hpp src/map/itemdb.hpp src/map/script-startup-internal.hpp src/map/battle.t.hpp src/map/script-buffer.hpp src/map/npc-parse.hpp src/map/npc.hpp src/map/atcommand.hpp src/map/chrif.hpp src/map/script-parse-internal.hpp src/map/script-persist.hpp src/map/skill-pools.hpp src/map/tmw.hpp src/map/script-call-internal.hpp src/map/clif.hpp src/map/trade.hpp src/map/npc-internal.hpp src/map/mob.hpp src/map/map.hpp src/map/script-call.t.hpp src/map/script-call-internal.tcc src/map/skill-pools.cpp src/map/clif.cpp src/map/mob.cpp src/map/map.cpp src/map/globals.cpp src/map/trade.cpp src/map/script-startup.cpp src/map/script-call.cpp src/map/intif.cpp src/map/path.cpp src/map/grfio.cpp src/map/quest.cpp src/map/battle.cpp src/map/script-parse.cpp src/map/script-fun.cpp src/map/battle_conf.cpp src/map/map_conf.cpp src/map/pc.cpp src/map/mapflag.cpp src/map/storage.cpp src/map/skill.cpp src/map/itemdb.cpp src/map/npc-parse.cpp src/map/npc.cpp src/map/atcommand.cpp src/map/party.cpp src/map/chrif.cpp src/map/main.cpp src/map/tmw.cpp
+g++-8 -std=c++0x -fuse-ld=gold obj/mmo/human_time_diff_test.pdc.o obj/generic/oops.pdc.o obj/io/extract.pdc.o obj/mmo/human_time_diff.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-mmo--human_time_diff.elf
+touch stamp/mmo.fwdcheck
+g++-8 -std=c++0x -fuse-ld=gold obj/io/write_test.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/write.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-io--write.elf
+touch stamp/map.fwdcheck
+g++-8 -std=c++0x -fuse-ld=gold obj/sexpr/parser_test.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/line.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/sexpr/lexer.pdc.o obj/sexpr/parser.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-sexpr--parser.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/range/slice_test.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-range--slice.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/sexpr/lexer_test.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/line.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/sexpr/lexer.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-sexpr--lexer.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/sexpr/union_test.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-sexpr--union.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/strings/base_test.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-strings--base.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/strings/strings2_test.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-strings--strings2.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/sexpr/variant_test.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-sexpr--variant.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/strings/strings_test.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/gtest_main.pdc.o obj/gtest-all.pdc.o -o bin/tests/gtest-strings--strings.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/ints-wrap.pdc.o -o bin/tests/dtest-ints-wrap.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/map-mapflag.pdc.o obj/map/mapflag.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-map-mapflag.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/map-script-parse.pdc.o obj/ast/script.pdc.o obj/generic/oops.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/line.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/map/script-parse.pdc.o obj/mmo/ids.pdc.o obj/mmo/strs.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/map/globals.pdc.o obj/map/script-call.pdc.o obj/map/script-fun.pdc.o obj/net/ip.pdc.o obj/io/write.pdc.o obj/map/battle_conf.pdc.o obj/map/itemdb.pdc.o obj/map/map.pdc.o obj/map/map_conf.pdc.o obj/map/mapflag.pdc.o obj/map/mob.pdc.o obj/map/npc.pdc.o obj/map/quest.pdc.o obj/map/skill-pools.pdc.o obj/map/skill.pdc.o obj/net/socket.pdc.o obj/high/extract_mmo.pdc.o obj/io/extract.pdc.o obj/mmo/extract_enums.pdc.o obj/ast/item.pdc.o obj/mmo/config_parse.pdc.o obj/mmo/version.pdc.o obj/compat/nullpo.pdc.o obj/generic/random.pdc.o obj/high/core.pdc.o obj/map/atcommand.pdc.o obj/map/battle.pdc.o obj/map/chrif.pdc.o obj/map/clif.pdc.o obj/map/grfio.pdc.o obj/map/npc-parse.pdc.o obj/map/party.pdc.o obj/map/pc.pdc.o obj/map/script-startup.pdc.o obj/map/storage.pdc.o obj/map/trade.pdc.o obj/net/timer.pdc.o obj/net/timestamp-utils.pdc.o obj/ast/npc.pdc.o obj/high/utils.pdc.o obj/map/intif.pdc.o obj/map/tmw.pdc.o obj/mmo/human_time_diff.pdc.o obj/wire/packets.pdc.o obj/map/path.pdc.o obj/generic/md5.pdc.o obj/high/md5more.pdc.o obj/io/lock.pdc.o obj/ast/quest.pdc.o lib/libtmwa-shared.so.0.18.12.30.6.0 -o bin/tests/dtest-map-script-parse.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/mmo-strs.pdc.o obj/mmo/strs.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-mmo-strs.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-ast--item.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/compat-option.pdc.o -o bin/tests/dtest-compat-option.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/generic-dumb_ptr.pdc.o -o bin/tests/dtest-generic-dumb_ptr.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/sexpr-parser.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/line.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/sexpr/lexer.pdc.o obj/sexpr/parser.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-sexpr-parser.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-ast--npc.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/strings-literal.pdc.o obj/strings/literal.pdc.o -o bin/tests/dtest-strings-literal.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/mmo-ids.pdc.o obj/mmo/ids.pdc.o obj/generic/oops.pdc.o obj/io/extract.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-mmo-ids.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/compat-borrow.pdc.o -o bin/tests/dtest-compat-borrow.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/strings-xstring.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-strings-xstring.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/map-map.pdc.o obj/generic/oops.pdc.o obj/io/fd.pdc.o obj/map/map.pdc.o obj/map/mapflag.pdc.o obj/mmo/ids.pdc.o obj/mmo/strs.pdc.o obj/net/ip.pdc.o obj/net/socket.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/compat/nullpo.pdc.o obj/generic/random.pdc.o obj/high/core.pdc.o obj/io/dir.pdc.o obj/io/extract.pdc.o obj/io/read.pdc.o obj/io/span.pdc.o obj/io/write.pdc.o obj/map/atcommand.pdc.o obj/map/battle.pdc.o obj/map/battle_conf.pdc.o obj/map/chrif.pdc.o obj/map/clif.pdc.o obj/map/globals.pdc.o obj/map/grfio.pdc.o obj/map/itemdb.pdc.o obj/map/map_conf.pdc.o obj/map/mob.pdc.o obj/map/npc-parse.pdc.o obj/map/npc.pdc.o obj/map/party.pdc.o obj/map/pc.pdc.o obj/map/quest.pdc.o obj/map/script-startup.pdc.o obj/map/skill-pools.pdc.o obj/map/skill.pdc.o obj/map/storage.pdc.o obj/map/trade.pdc.o obj/mmo/config_parse.pdc.o obj/mmo/version.pdc.o obj/net/timer.pdc.o obj/net/timestamp-utils.pdc.o obj/ast/npc.pdc.o obj/ast/script.pdc.o obj/high/extract_mmo.pdc.o obj/high/utils.pdc.o obj/map/intif.pdc.o obj/map/script-call.pdc.o obj/map/tmw.pdc.o obj/mmo/extract_enums.pdc.o obj/mmo/human_time_diff.pdc.o obj/io/line.pdc.o obj/wire/packets.pdc.o obj/map/script-fun.pdc.o obj/map/script-parse.pdc.o obj/map/path.pdc.o obj/generic/md5.pdc.o obj/high/md5more.pdc.o obj/ast/item.pdc.o obj/ast/quest.pdc.o obj/io/lock.pdc.o lib/libtmwa-shared.so.0.18.12.30.6.0 -o bin/tests/dtest-map-map.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/strings-vstring.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-strings-vstring.elf
+==15831== Memcheck, a memory error detector
+==15831== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15831== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15831== Command: bin/tests/gtest-ast--item.elf
+==15831==
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/strings-astring.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-strings-astring.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/net-ip.pdc.o obj/net/ip.pdc.o obj/generic/oops.pdc.o obj/io/extract.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-net-ip.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/strings-rstring.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-strings-rstring.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/net-timer.pdc.o obj/net/timer.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-net-timer.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/sexpr-variant.pdc.o -o bin/tests/dtest-sexpr-variant.elf
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/map-script-persist.pdc.o obj/generic/oops.pdc.o obj/map/script-parse.pdc.o obj/mmo/ids.pdc.o obj/mmo/strs.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o obj/ast/script.pdc.o obj/io/span.pdc.o obj/map/globals.pdc.o obj/map/script-call.pdc.o obj/map/script-fun.pdc.o obj/net/ip.pdc.o obj/io/dir.pdc.o obj/io/fd.pdc.o obj/io/line.pdc.o obj/io/read.pdc.o obj/io/write.pdc.o obj/map/battle_conf.pdc.o obj/map/itemdb.pdc.o obj/map/map.pdc.o obj/map/map_conf.pdc.o obj/map/mapflag.pdc.o obj/map/mob.pdc.o obj/map/npc.pdc.o obj/map/quest.pdc.o obj/map/skill-pools.pdc.o obj/map/skill.pdc.o obj/net/socket.pdc.o obj/high/extract_mmo.pdc.o obj/io/extract.pdc.o obj/mmo/extract_enums.pdc.o obj/ast/item.pdc.o obj/mmo/config_parse.pdc.o obj/mmo/version.pdc.o obj/compat/nullpo.pdc.o obj/generic/random.pdc.o obj/high/core.pdc.o obj/map/atcommand.pdc.o obj/map/battle.pdc.o obj/map/chrif.pdc.o obj/map/clif.pdc.o obj/map/grfio.pdc.o obj/map/npc-parse.pdc.o obj/map/party.pdc.o obj/map/pc.pdc.o obj/map/script-startup.pdc.o obj/map/storage.pdc.o obj/map/trade.pdc.o obj/net/timer.pdc.o obj/net/timestamp-utils.pdc.o obj/ast/npc.pdc.o obj/high/utils.pdc.o obj/map/intif.pdc.o obj/map/tmw.pdc.o obj/mmo/human_time_diff.pdc.o obj/wire/packets.pdc.o obj/map/path.pdc.o obj/generic/md5.pdc.o obj/high/md5more.pdc.o obj/io/lock.pdc.o obj/ast/quest.pdc.o lib/libtmwa-shared.so.0.18.12.30.6.0 -o bin/tests/dtest-map-script-persist.elf
+==15834== Memcheck, a memory error detector
+==15834== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15834== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15834== Command: bin/tests/gtest-ast--npc.elf
+==15834==
+g++-8 -std=c++0x -fuse-ld=gold obj/debug-debug/strings-zstring.pdc.o obj/strings/astring.pdc.o obj/strings/literal.pdc.o obj/strings/mstring.pdc.o obj/strings/rstring.pdc.o obj/strings/sstring.pdc.o obj/strings/tstring.pdc.o obj/strings/xstring.pdc.o obj/strings/zstring.pdc.o -o bin/tests/dtest-strings-zstring.elf
+==15831== error calling PR_SET_PTRACER, vgdb might block
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-compat--iter.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-compat--option.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-compat--result.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-generic--array.elf
+==15868== Memcheck, a memory error detector
+==15868== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15868== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15868== Command: bin/tests/gtest-compat--iter.elf
+==15868==
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-generic--intern-pool.elf
+==15870== Memcheck, a memory error detector
+==15870== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15870== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15870== Command: bin/tests/gtest-compat--option.elf
+==15870==
+==15834== error calling PR_SET_PTRACER, vgdb might block
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-ints--cmp.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-ints--udl.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-generic--md5.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-generic--oops.elf
+==15874== Memcheck, a memory error detector
+==15874== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15874== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15874== Command: bin/tests/gtest-compat--result.elf
+==15874==
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-io--line.elf
+==15876== Memcheck, a memory error detector
+==15876== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15876== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15876== Command: bin/tests/gtest-generic--array.elf
+==15876==
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-io--write.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-io--extract.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-mmo--config_parse.elf
+==15881== Memcheck, a memory error detector
+==15881== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15881== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15881== Command: bin/tests/gtest-generic--intern-pool.elf
+==15881==
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-io--read.elf
+==15868== error calling PR_SET_PTRACER, vgdb might block
+==15870== error calling PR_SET_PTRACER, vgdb might block
+==15886== Memcheck, a memory error detector
+==15886== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15886== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15886== Command: bin/tests/gtest-ints--udl.elf
+==15886==
+==15885== Memcheck, a memory error detector
+==15885== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15885== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15885== Command: bin/tests/gtest-ints--cmp.elf
+==15885==
+==15889== Memcheck, a memory error detector
+==15889== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15889== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15889== Command: bin/tests/gtest-io--line.elf
+==15889==
+==15887== Memcheck, a memory error detector
+==15887== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15887== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15887== Command: bin/tests/gtest-generic--md5.elf
+==15887==
+==15888== Memcheck, a memory error detector
+==15888== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15888== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15888== Command: bin/tests/gtest-generic--oops.elf
+==15888==
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-mmo--human_time_diff.elf
+==15890== Memcheck, a memory error detector
+==15890== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15890== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15890== Command: bin/tests/gtest-io--write.elf
+==15890==
+==15891== Memcheck, a memory error detector
+==15891== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15891== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15891== Command: bin/tests/gtest-io--extract.elf
+==15891==
+==15892== Memcheck, a memory error detector
+==15892== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15892== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15892== Command: bin/tests/gtest-mmo--config_parse.elf
+==15892==
+==15893== Memcheck, a memory error detector
+==15893== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15893== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15893== Command: bin/tests/gtest-io--read.elf
+==15893==
+==15876== error calling PR_SET_PTRACER, vgdb might block
+==15874== error calling PR_SET_PTRACER, vgdb might block
+==15881== error calling PR_SET_PTRACER, vgdb might block
+==15895== Memcheck, a memory error detector
+==15895== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15895== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15895== Command: bin/tests/gtest-mmo--human_time_diff.elf
+==15895==
+==15885== error calling PR_SET_PTRACER, vgdb might block
+==15886== error calling PR_SET_PTRACER, vgdb might block
+==15888== error calling PR_SET_PTRACER, vgdb might block
+==15887== error calling PR_SET_PTRACER, vgdb might block
+==15890== error calling PR_SET_PTRACER, vgdb might block
+==15889== error calling PR_SET_PTRACER, vgdb might block
+==15892== error calling PR_SET_PTRACER, vgdb might block
+==15891== error calling PR_SET_PTRACER, vgdb might block
+==15893== error calling PR_SET_PTRACER, vgdb might block
+==15895== error calling PR_SET_PTRACER, vgdb might block
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-net--ip.elf
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-range--slice.elf
+==15897== Memcheck, a memory error detector
+==15897== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15897== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15897== Command: bin/tests/gtest-net--ip.elf
+==15897==
+==15899== Memcheck, a memory error detector
+==15899== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15899== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15899== Command: bin/tests/gtest-range--slice.elf
+==15899==
+==15897== error calling PR_SET_PTRACER, vgdb might block
+==15899== error calling PR_SET_PTRACER, vgdb might block
+Running main() from gtest_main.cc
+[==========] Running 10 tests from 1 test case.
+[----------] Global test environment set-up.
+[----------] 10 tests from Option
+[ RUN ] Option.somenone
+[ OK ] Option.somenone (5 ms)
+Running main() from gtest_main.cc
+[==========] Running 3 tests from 1 test case.
+[ RUN ] Option.somenonenocopy
+[ OK ] Option.somenonenocopy (1 ms)
+[ RUN ] Option.customrepr
+[----------] Global test environment set-up.
+[ OK ] Option.customrepr (1 ms)
+[ RUN ] Option.destruct
+[ OK ] Option.destruct (0 ms)
+[ RUN ] Option.def
+[----------] 3 tests from itemast
+[ RUN ] itemast.eof
+[ OK ] Option.def (7 ms)
+[ RUN ] Option.map
+[ OK ] Option.map (7 ms)
+[ RUN ] Option.member
+[ OK ] Option.member (4 ms)
+[ RUN ] Option.unwrap
+Running main() from gtest_main.cc
+[==========] Running 4 tests from 1 test case.
+[----------] Global test environment set-up.
+[ OK ] Option.unwrap (8 ms)
+[ RUN ] Option.flatten
+[----------] 4 tests from Array
+[ RUN ] Array.simple
+[ OK ] Option.flatten (4 ms)
+[ RUN ] Option.cmp
+Running main() from gtest_main.cc
+[==========] Running 9 tests from 1 test case.
+[ OK ] Option.cmp (4 ms)
+[ OK ] itemast.eof (27 ms)
+[ RUN ] itemast.comment
+[----------] Global test environment set-up.
+[----------] 10 tests from Option (48 ms total)
+
+[----------] Global test environment tear-down
+[----------] 9 tests from npcast
+[ RUN ] npcast.eof
+[==========] 10 tests from 1 test case ran. (72 ms total)
+[ PASSED ] 10 tests.
+[ OK ] itemast.comment (32 ms)
+[ RUN ] itemast.item
+==15870==
+==15870== FILE DESCRIPTORS: 3 open at exit.
+==15870== Open file descriptor 0:
+==15870== <inherited from parent>
+==15870==
+==15870== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15870== <inherited from parent>
+==15870==
+==15870== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15870== <inherited from parent>
+==15870==
+==15870==
+==15870== HEAP SUMMARY:
+==15870== in use at exit: 0 bytes in 0 blocks
+==15870== total heap usage: 242 allocs, 242 frees, 114,621 bytes allocated
+==15870==
+==15870== All heap blocks were freed -- no leaks are possible
+==15870==
+==15870== For counts of detected and suppressed errors, rerun with: -v
+==15870== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] npcast.eof (29 ms)
+[ RUN ] npcast.comment
+touch stamp/run-gtest-compat--option.stamp
+[ OK ] Array.simple (53 ms)
+[ RUN ] Array.inclusive1
+[ OK ] Array.inclusive1 (5 ms)
+[ RUN ] Array.negative
+[ OK ] Array.negative (4 ms)
+[ RUN ] Array.enum
+[ OK ] Array.enum (4 ms)
+[----------] 4 tests from Array (73 ms total)
+
+[----------] Global test environment tear-down
+[ OK ] npcast.comment (30 ms)
+[ RUN ] npcast.warp
+[==========] 4 tests from 1 test case ran. (97 ms total)
+[ PASSED ] 4 tests.
+Running main() from gtest_main.cc
+[==========] Running 6 tests from 1 test case.
+[----------] Global test environment set-up.
+==15876==
+==15876== FILE DESCRIPTORS: 3 open at exit.
+==15876== Open file descriptor 0:
+==15876== <inherited from parent>
+==15876==
+==15876== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15876== <inherited from parent>
+==15876==
+==15876== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15876== <inherited from parent>
+==15876==
+==15876==
+==15876== HEAP SUMMARY:
+==15876== in use at exit: 0 bytes in 0 blocks
+==15876== total heap usage: 297 allocs, 297 frees, 131,156 bytes allocated
+==15876==
+==15876== All heap blocks were freed -- no leaks are possible
+==15876==
+==15876== For counts of detected and suppressed errors, rerun with: -v
+==15876== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[----------] 6 tests from iterpair
+[ RUN ] iterpair.strings
+touch stamp/run-gtest-generic--array.stamp
+[ OK ] iterpair.strings (7 ms)
+[ RUN ] iterpair.signed8
+[ OK ] iterpair.signed8 (2 ms)
+[ RUN ] iterpair.unsigned8
+[ OK ] iterpair.unsigned8 (2 ms)
+[ RUN ] iterpair.filter1
+[ OK ] iterpair.filter1 (3 ms)
+[ RUN ] iterpair.filter2
+[ OK ] iterpair.filter2 (3 ms)
+[ RUN ] iterpair.filter3
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-sexpr--lexer.elf
+Running main() from gtest_main.cc
+[==========] Running 1 test from 1 test case.
+[ OK ] iterpair.filter3 (3 ms)
+[----------] Global test environment set-up.
+[----------] 6 tests from iterpair (28 ms total)
+
+[----------] 1 test from md5calc
+[----------] Global test environment tear-down
+Running main() from gtest_main.cc
+[==========] Running 6 tests from 1 test case.
+[ RUN ] md5calc.rfc1321
+[----------] Global test environment set-up.
+[----------] 6 tests from ints
+[==========] 6 tests from 1 test case ran. (64 ms total)
+[ PASSED ] 6 tests.
+[ RUN ] ints.smc
+Running main() from gtest_main.cc
+[==========] Running 2 tests from 1 test case.
+Running main() from gtest_main.cc
+[==========] Running 1 test from 1 test case.
+[----------] Global test environment set-up.
+[----------] Global test environment set-up.
+[----------] 1 test from configparse
+[----------] 2 tests from Result
+[ RUN ] configparse.keyvalue
+[ OK ] npcast.warp (83 ms)
+[ RUN ] npcast.shop
+[ RUN ] Result.inspect
+[ OK ] ints.smc (5 ms)
+[ RUN ] ints.constant
+[ OK ] ints.constant (0 ms)
+[ RUN ] ints.udl8
+[ OK ] md5calc.rfc1321 (23 ms)
+[ OK ] Result.inspect (9 ms)
+[----------] 1 test from md5calc (30 ms total)
+
+[ RUN ] Result.try
+[----------] Global test environment tear-down
+[ OK ] Result.try (3 ms)
+[ OK ] itemast.item (142 ms)
+[----------] 3 tests from itemast (207 ms total)
+
+[==========] 1 test from 1 test case ran. (53 ms total)
+[ PASSED ] 1 test.
+[----------] 2 tests from Result (20 ms total)
+
+[----------] Global test environment tear-down
+[----------] Global test environment tear-down
+[ OK ] ints.udl8 (20 ms)
+[ RUN ] ints.udl16
+[==========] 3 tests from 1 test case ran. (230 ms total)
+[ PASSED ] 3 tests.
+[==========] 2 tests from 1 test case ran. (45 ms total)
+[ PASSED ] 2 tests.
+==15868==
+==15868== FILE DESCRIPTORS: 3 open at exit.
+==15868== Open file descriptor 0:
+==15868== <inherited from parent>
+==15868==
+==15868== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15868== <inherited from parent>
+==15868==
+==15868== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15868== <inherited from parent>
+==15868==
+==15868==
+==15868== HEAP SUMMARY:
+==15868== in use at exit: 0 bytes in 0 blocks
+==15868== total heap usage: 203 allocs, 203 frees, 109,594 bytes allocated
+==15868==
+==15868== All heap blocks were freed -- no leaks are possible
+==15868==
+==15868== For counts of detected and suppressed errors, rerun with: -v
+==15868== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] configparse.keyvalue (26 ms)
+[----------] 1 test from configparse (33 ms total)
+
+[----------] Global test environment tear-down
+Running main() from gtest_main.cc
+[==========] Running 8 tests from 1 test case.
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-sexpr--parser.elf
+[==========] 1 test from 1 test case ran. (56 ms total)
+[ PASSED ] 1 test.
+[----------] Global test environment set-up.
+[----------] 8 tests from ints
+[ OK ] ints.udl16 (21 ms)
+[ RUN ] ints.sati8
+[ RUN ] ints.udl32
+==15887==
+==15887== FILE DESCRIPTORS: 3 open at exit.
+==15887== Open file descriptor 0:
+==15887== <inherited from parent>
+==15887==
+==15887== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15887== <inherited from parent>
+==15887==
+==15887== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15887== <inherited from parent>
+==15887==
+==15887==
+==15887== HEAP SUMMARY:
+==15887== in use at exit: 0 bytes in 0 blocks
+==15887== total heap usage: 144 allocs, 144 frees, 104,256 bytes allocated
+==15887==
+==15887== All heap blocks were freed -- no leaks are possible
+==15887==
+==15887== For counts of detected and suppressed errors, rerun with: -v
+==15887== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+==15903== Memcheck, a memory error detector
+==15903== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15903== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15903== Command: bin/tests/gtest-sexpr--lexer.elf
+==15903==
+Running main() from gtest_main.cc
+[==========] Running 2 tests from 1 test case.
+[----------] Global test environment set-up.
+==15831==
+==15831== FILE DESCRIPTORS: 3 open at exit.
+Running main() from gtest_main.cc
+[==========] Running 2 tests from 1 test case.
+==15831== Open file descriptor 0:
+==15831== <inherited from parent>
+==15831==
+==15831== Open file descriptor 2: /dev/null
+[ OK ] ints.sati8 (5 ms)
+==15831== at 0x54ED9A7: dup2 (syscall-template.S:78)
+==15831== by 0x12E12A: tmwa::io::FD::dup2(tmwa::io::FD) (fd.cpp:185)
+==15831== by 0x118D18: ~ReplaceFd (fdhack.hpp:47)
+==15831== by 0x118D18: ~QuietFd (fdhack.hpp:51)
+==15874==
+==15831== by 0x118D18: tmwa::ast::item::itemast_item_Test::TestBody() (item_test.cpp:87)
+==15874== FILE DESCRIPTORS: 3 open at exit.
+==15831== by 0x153709: HandleSehExceptionsInMethodIfSupported<testing::Test, void> (gtest.cc:2402)
+==15874== Open file descriptor 0:
+==15874== <inherited from parent>
+==15831== by 0x153709: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2438)
+==15874==
+==15831== by 0x14509B: testing::Test::Run() [clone .part.595] (gtest.cc:2474)
+==15874== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15831== by 0x145334: Run (gtest.cc:2466)
+==15874== <inherited from parent>
+==15874==
+==15831== by 0x145334: testing::TestInfo::Run() [clone .part.596] (gtest.cc:2656)
+==15874== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15831== by 0x1454B3: Run (gtest.cc:2631)
+==15874== <inherited from parent>
+==15874==
+==15831== by 0x1454B3: testing::TestCase::Run() [clone .part.597] (gtest.cc:2776)
+[ RUN ] ints.satu8
+[----------] Global test environment set-up.
+[----------] 2 tests from oops
+==15874==
+==15831== by 0x14C8F2: Run (gtest.cc:2762)
+==15874== HEAP SUMMARY:
+==15874== in use at exit: 0 bytes in 0 blocks
+==15874== total heap usage: 155 allocs, 155 frees, 105,282 bytes allocated
+==15874==
+==15831== by 0x14C8F2: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:4651)
+==15874== All heap blocks were freed -- no leaks are possible
+==15831== by 0x153BE9: HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (gtest.cc:2402)
+==15874==
+==15831== by 0x153BE9: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2438)
+==15874== For counts of detected and suppressed errors, rerun with: -v
+==15831== by 0x145647: testing::UnitTest::Run() (gtest.cc:4259)
+==15874== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+==15831== by 0x116478: RUN_ALL_TESTS (gtest.h:2233)
+==15831== by 0x116478: main (gtest_main.cc:37)
+==15831==
+==15831== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15831== <inherited from parent>
+==15831==
+==15831==
+==15831== HEAP SUMMARY:
+==15831== in use at exit: 0 bytes in 0 blocks
+==15831== total heap usage: 380 allocs, 380 frees, 147,329 bytes allocated
+==15831==
+==15831== All heap blocks were freed -- no leaks are possible
+==15831==
+==15831== For counts of detected and suppressed errors, rerun with: -v
+==15831== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] ints.satu8 (0 ms)
+[ RUN ] ints.sati16
+touch stamp/run-gtest-compat--iter.stamp
+[ OK ] ints.sati16 (0 ms)
+[ RUN ] ints.satu16
+[----------] 2 tests from humantimediff
+[ OK ] ints.satu16 (0 ms)
+[ RUN ] ints.sati32
+[ RUN ] oops.okay
+[ OK ] ints.sati32 (0 ms)
+[ RUN ] ints.satu32
+[ OK ] ints.satu32 (0 ms)
+[ RUN ] ints.sati64
+[ RUN ] humantimediff.single
+[ OK ] ints.sati64 (0 ms)
+[ RUN ] ints.satu64
+[ OK ] ints.satu64 (0 ms)
+[ OK ] ints.udl32 (20 ms)
+[ RUN ] ints.udl64
+==15892==
+==15892== FILE DESCRIPTORS: 3 open at exit.
+==15892== Open file descriptor 0:
+==15892== <inherited from parent>
+==15892==
+==15892== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15892== <inherited from parent>
+==15892==
+==15892== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15892== <inherited from parent>
+==15892==
+==15892==
+==15892== HEAP SUMMARY:
+==15892== in use at exit: 0 bytes in 0 blocks
+==15892== total heap usage: 145 allocs, 145 frees, 104,322 bytes allocated
+==15892==
+==15892== All heap blocks were freed -- no leaks are possible
+==15892==
+==15892== For counts of detected and suppressed errors, rerun with: -v
+==15892== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[----------] 8 tests from ints (21 ms total)
+
+[----------] Global test environment tear-down
+[==========] 8 tests from 1 test case ran. (47 ms total)
+[ PASSED ] 8 tests.
+[ OK ] oops.okay (13 ms)
+[ RUN ] oops.uhoh
+[ OK ] ints.udl64 (19 ms)
+[----------] 6 tests from ints (93 ms total)
+
+[----------] Global test environment tear-down
+[==========] 6 tests from 1 test case ran. (118 ms total)
+[ PASSED ] 6 tests.
+[ OK ] humantimediff.single (32 ms)
+[ RUN ] humantimediff.multiple
+==15885==
+==15885== FILE DESCRIPTORS: 3 open at exit.
+==15885== Open file descriptor 0:
+==15885== <inherited from parent>
+==15885==
+==15885== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15885== <inherited from parent>
+==15885==
+==15885== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15885== <inherited from parent>
+==15885==
+==15885==
+==15885== HEAP SUMMARY:
+==15885== in use at exit: 0 bytes in 0 blocks
+==15885== total heap usage: 213 allocs, 213 frees, 111,180 bytes allocated
+==15885==
+==15885== All heap blocks were freed -- no leaks are possible
+==15885==
+==15885== For counts of detected and suppressed errors, rerun with: -v
+==15885== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] humantimediff.multiple (3 ms)
+[----------] 2 tests from humantimediff (42 ms total)
+
+[----------] Global test environment tear-down
+Running main() from gtest_main.cc
+[==========] Running 13 tests from 1 test case.
+[ OK ] npcast.shop (108 ms)
+[ RUN ] npcast.monster
+[----------] Global test environment set-up.
+[==========] 2 tests from 1 test case ran. (68 ms total)
+[ PASSED ] 2 tests.
+[----------] 13 tests from io
+[ RUN ] io.line1
+==15886==
+==15886== FILE DESCRIPTORS: 3 open at exit.
+==15886== Open file descriptor 0:
+==15886== <inherited from parent>
+==15886==
+==15886== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15886== <inherited from parent>
+==15886==
+==15886== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15886== <inherited from parent>
+==15886==
+==15886==
+==15886== HEAP SUMMARY:
+==15886== in use at exit: 0 bytes in 0 blocks
+==15886== total heap usage: 195 allocs, 195 frees, 109,244 bytes allocated
+==15886==
+==15886== All heap blocks were freed -- no leaks are possible
+==15886==
+==15886== For counts of detected and suppressed errors, rerun with: -v
+==15886== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] oops.uhoh (41 ms)
+[----------] 2 tests from oops (61 ms total)
+
+[----------] Global test environment tear-down
+Running main() from gtest_main.cc
+[==========] Running 1 test from 1 test case.
+[----------] Global test environment set-up.
+[==========] 2 tests from 1 test case ran. (87 ms total)
+[ PASSED ] 2 tests.
+touch stamp/run-gtest-generic--md5.stamp
+[----------] 1 test from InternPool
+[ RUN ] InternPool.whydoesthisalwaysneedasecondname
+touch stamp/run-gtest-compat--result.stamp
+==15895==
+touch stamp/run-gtest-ast--item.stamp
+==15895== FILE DESCRIPTORS: 3 open at exit.
+==15895== Open file descriptor 0:
+==15895== <inherited from parent>
+==15895==
+==15895== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15895== <inherited from parent>
+==15895==
+==15895== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15895== <inherited from parent>
+==15895==
+==15895==
+==15895== HEAP SUMMARY:
+==15895== in use at exit: 0 bytes in 0 blocks
+==15895== total heap usage: 157 allocs, 157 frees, 105,410 bytes allocated
+==15895==
+==15895== All heap blocks were freed -- no leaks are possible
+==15895==
+==15895== For counts of detected and suppressed errors, rerun with: -v
+==15895== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] io.line1 (19 ms)
+[ RUN ] io.line2
+touch stamp/run-gtest-mmo--config_parse.stamp
+touch stamp/run-gtest-ints--cmp.stamp
+[ OK ] io.line2 (11 ms)
+[ RUN ] io.line3
+touch stamp/run-gtest-ints--udl.stamp
+touch stamp/run-gtest-mmo--human_time_diff.stamp
+==15888==
+==15888== FILE DESCRIPTORS: 3 open at exit.
+==15888== Open file descriptor 0:
+==15888== <inherited from parent>
+==15888==
+==15888== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15888== <inherited from parent>
+==15888==
+==15888== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15888== <inherited from parent>
+==15888==
+==15888==
+==15888== HEAP SUMMARY:
+==15888== in use at exit: 0 bytes in 0 blocks
+==15888== total heap usage: 168 allocs, 168 frees, 107,306 bytes allocated
+==15888==
+==15888== All heap blocks were freed -- no leaks are possible
+==15888==
+==15888== For counts of detected and suppressed errors, rerun with: -v
+==15888== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] io.line3 (7 ms)
+[ RUN ] io.line4
+[ OK ] InternPool.whydoesthisalwaysneedasecondname (25 ms)
+==15905== Memcheck, a memory error detector
+==15905== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+[----------] 1 test from InternPool (32 ms total)
+
+==15905== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15905== Command: bin/tests/gtest-sexpr--parser.elf
+==15905==
+[----------] Global test environment tear-down
+[ OK ] io.line4 (10 ms)
+[ RUN ] io.line5
+Running main() from gtest_main.cc
+[==========] Running 3 tests from 1 test case.
+[==========] 1 test from 1 test case ran. (56 ms total)
+[ PASSED ] 1 test.
+touch stamp/run-gtest-generic--oops.stamp
+[----------] Global test environment set-up.
+[ OK ] io.line5 (8 ms)
+[ RUN ] io.line1text
+[----------] 3 tests from io
+[ RUN ] io.write1
+[ OK ] io.line1text (6 ms)
+[ RUN ] io.linechar1
+Running main() from gtest_main.cc
+[==========] Running 4 tests from 1 test case.
+[----------] Global test environment set-up.
+[----------] 4 tests from extract
+[ RUN ] extract.record_int
+[ OK ] io.linechar1 (17 ms)
+[ RUN ] io.linechar2
+==15881==
+==15881== FILE DESCRIPTORS: 3 open at exit.
+==15881== Open file descriptor 0:
+==15881== <inherited from parent>
+==15881==
+==15881== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15881== <inherited from parent>
+==15881==
+==15881== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15881== <inherited from parent>
+==15881==
+==15881==
+==15881== HEAP SUMMARY:
+==15881== in use at exit: 0 bytes in 0 blocks
+==15881== total heap usage: 157 allocs, 157 frees, 104,725 bytes allocated
+==15881==
+==15881== All heap blocks were freed -- no leaks are possible
+==15881==
+==15881== For counts of detected and suppressed errors, rerun with: -v
+==15881== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] io.write1 (17 ms)
+[ RUN ] io.write2
+[ OK ] io.write2 (8 ms)
+[ RUN ] io.write3
+[ OK ] io.linechar2 (14 ms)
+[ RUN ] io.linechar3
+touch stamp/run-gtest-generic--intern-pool.stamp
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-sexpr--union.elf
+[ OK ] io.linechar3 (14 ms)
+[ RUN ] io.linechar4
+[ OK ] io.write3 (22 ms)
+==15903== error calling PR_SET_PTRACER, vgdb might block
+[----------] 3 tests from io (53 ms total)
+
+[----------] Global test environment tear-down
+Running main() from gtest_main.cc
+[==========] Running 7 tests from 1 test case.
+[----------] Global test environment set-up.
+[==========] 3 tests from 1 test case ran. (77 ms total)
+[ PASSED ] 3 tests.
+[ OK ] npcast.monster (129 ms)
+[ RUN ] npcast.mapflag
+[----------] 7 tests from io
+[ RUN ] io.read1
+[ OK ] io.linechar4 (14 ms)
+[ RUN ] io.linechar5
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-strings--base.elf
+[ OK ] io.linechar5 (17 ms)
+[ RUN ] io.linechar1text
+[ OK ] io.read1 (18 ms)
+[ RUN ] io.read2
+==15890==
+==15890== FILE DESCRIPTORS: 3 open at exit.
+==15890== Open file descriptor 0:
+==15890== <inherited from parent>
+==15890==
+==15890== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15890== <inherited from parent>
+==15890==
+==15890== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15890== <inherited from parent>
+==15890==
+==15890==
+==15890== HEAP SUMMARY:
+==15890== in use at exit: 0 bytes in 0 blocks
+==15890== total heap usage: 322 allocs, 322 frees, 249,445 bytes allocated
+==15890==
+==15890== All heap blocks were freed -- no leaks are possible
+==15890==
+==15890== For counts of detected and suppressed errors, rerun with: -v
+==15890== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] io.read2 (2 ms)
+[ RUN ] io.read3
+[ OK ] extract.record_int (70 ms)
+[ RUN ] extract.record_str
+[ OK ] io.read3 (4 ms)
+[ RUN ] io.read4
+[ OK ] io.linechar1text (16 ms)
+[ RUN ] io.linespan
+[ OK ] io.read4 (3 ms)
+[ RUN ] io.read5
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-strings--strings2.elf
+[ OK ] io.read5 (4 ms)
+[ RUN ] io.readstringr
+touch stamp/run-gtest-io--write.stamp
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-sexpr--variant.elf
+[ OK ] npcast.mapflag (50 ms)
+[ RUN ] npcast.scriptfun
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-compat-borrow.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-compat-borrow.elf
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-compat-option.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-compat-option.elf
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-generic-dumb_ptr.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-generic-dumb_ptr.elf
+[ OK ] io.linespan (27 ms)
+[ OK ] io.readstringr (23 ms)
+[ RUN ] io.readstringx
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-ints-wrap.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-ints-wrap.elf
+[----------] 13 tests from io (190 ms total)
+
+[----------] Global test environment tear-down
+==15923== Memcheck, a memory error detector
+==15923== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15923== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15923== Command: bin/tests/gtest-sexpr--union.elf
+==15923==
+[==========] 13 tests from 1 test case ran. (213 ms total)
+[ PASSED ] 13 tests.
+==15905== error calling PR_SET_PTRACER, vgdb might block
+[ OK ] io.readstringx (22 ms)
+[----------] 7 tests from io (85 ms total)
+
+[----------] Global test environment tear-down
+[==========] 7 tests from 1 test case ran. (108 ms total)
+[ PASSED ] 7 tests.
+==15926== Memcheck, a memory error detector
+==15889==
+==15926== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15889== FILE DESCRIPTORS: 3 open at exit.
+==15926== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15889== Open file descriptor 0:
+==15926== Command: bin/tests/gtest-strings--base.elf
+==15889== <inherited from parent>
+==15926==
+==15889==
+==15889== Open file descriptor 2: /dev/null
+==15889== at 0x54ED9A7: dup2 (syscall-template.S:78)
+==15889== by 0x12BB1A: tmwa::io::FD::dup2(tmwa::io::FD) (fd.cpp:185)
+==15889== by 0x128A86: ~ReplaceFd (fdhack.hpp:47)
+==15889== by 0x128A86: ~QuietFd (fdhack.hpp:51)
+==15889== by 0x128A86: tmwa::io_linechar5_Test::TestBody() (line_test.cpp:345)
+==15889== by 0x14F969: HandleSehExceptionsInMethodIfSupported<testing::Test, void> (gtest.cc:2402)
+==15889== by 0x14F969: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2438)
+==15889== by 0x1412FB: testing::Test::Run() [clone .part.595] (gtest.cc:2474)
+==15889== by 0x141594: Run (gtest.cc:2466)
+==15889== by 0x141594: testing::TestInfo::Run() [clone .part.596] (gtest.cc:2656)
+==15889== by 0x141713: Run (gtest.cc:2631)
+==15889== by 0x141713: testing::TestCase::Run() [clone .part.597] (gtest.cc:2776)
+==15889== by 0x148B52: Run (gtest.cc:2762)
+==15889== by 0x148B52: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:4651)
+==15889== by 0x14FE49: HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (gtest.cc:2402)
+==15889== by 0x14FE49: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2438)
+==15889== by 0x1418A7: testing::UnitTest::Run() (gtest.cc:4259)
+==15889== by 0x117ED8: RUN_ALL_TESTS (gtest.h:2233)
+==15889== by 0x117ED8: main (gtest_main.cc:37)
+==15889==
+==15889== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15889== <inherited from parent>
+==15889==
+==15889==
+==15889== HEAP SUMMARY:
+==15889== in use at exit: 0 bytes in 0 blocks
+==15889== total heap usage: 387 allocs, 387 frees, 143,323 bytes allocated
+==15889==
+==15889== All heap blocks were freed -- no leaks are possible
+==15889==
+==15889== For counts of detected and suppressed errors, rerun with: -v
+==15889== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] npcast.scriptfun (49 ms)
+[ RUN ] npcast.scriptnone
+[ OK ] extract.record_str (71 ms)
+[ RUN ] extract.mapname
+Running main() from gtest_main.cc
+[==========] Running 2 tests from 1 test case.
+[----------] Global test environment set-up.
+[----------] 2 tests from slice
+[ RUN ] slice.slice
+[ OK ] extract.mapname (9 ms)
+[ RUN ] extract.chrono
+touch stamp/run-gtest-io--line.stamp
+valgrind --error-exitcode=1 --track-fds=yes bin/tests/gtest-strings--strings.elf
+==15893==
+==15893== FILE DESCRIPTORS: 3 open at exit.
+==15893== Open file descriptor 0:
+==15893== <inherited from parent>
+==15893==
+==15893== Open file descriptor 2: /dev/null
+==15893== at 0x54ED9A7: dup2 (syscall-template.S:78)
+==15893== by 0x119BCA: tmwa::io::FD::dup2(tmwa::io::FD) (fd.cpp:185)
+==15893== by 0x115E24: ~ReplaceFd (fdhack.hpp:47)
+==15893== by 0x115E24: ~QuietFd (fdhack.hpp:51)
+==15893== by 0x115E24: tmwa::io_read5_Test::TestBody() (read_test.cpp:87)
+==15893== by 0x13C2C9: HandleSehExceptionsInMethodIfSupported<testing::Test, void> (gtest.cc:2402)
+==15893== by 0x13C2C9: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2438)
+==15893== by 0x12DC5B: testing::Test::Run() [clone .part.595] (gtest.cc:2474)
+==15893== by 0x12DEF4: Run (gtest.cc:2466)
+==15893== by 0x12DEF4: testing::TestInfo::Run() [clone .part.596] (gtest.cc:2656)
+==15893== by 0x12E073: Run (gtest.cc:2631)
+==15893== by 0x12E073: testing::TestCase::Run() [clone .part.597] (gtest.cc:2776)
+==15893== by 0x1354B2: Run (gtest.cc:2762)
+==15893== by 0x1354B2: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:4651)
+==15893== by 0x13C7A9: HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (gtest.cc:2402)
+==15893== by 0x13C7A9: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2438)
+==15893== by 0x12E207: testing::UnitTest::Run() (gtest.cc:4259)
+==15893== by 0x113E88: RUN_ALL_TESTS (gtest.h:2233)
+==15893== by 0x113E88: main (gtest_main.cc:37)
+==15893==
+==15893== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15893== <inherited from parent>
+==15893==
+==15893==
+==15893== HEAP SUMMARY:
+==15893== in use at exit: 0 bytes in 0 blocks
+==15893== total heap usage: 228 allocs, 228 frees, 124,776 bytes allocated
+==15893==
+==15893== All heap blocks were freed -- no leaks are possible
+==15893==
+==15893== For counts of detected and suppressed errors, rerun with: -v
+==15893== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+==15927== Memcheck, a memory error detector
+==15927== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15927== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15927== Command: bin/tests/gtest-strings--strings2.elf
+==15927==
+[ OK ] npcast.scriptnone (30 ms)
+[ RUN ] npcast.scriptmap
+[ OK ] slice.slice (15 ms)
+[ RUN ] slice.cast
+[ OK ] slice.cast (1 ms)
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-map-map.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-map-map.elf
+==15929== Memcheck, a memory error detector
+==15929== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15929== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15929== Command: bin/tests/gtest-sexpr--variant.elf
+==15929==
+[----------] 2 tests from slice (23 ms total)
+
+[----------] Global test environment tear-down
+touch stamp/run-gtest-io--read.stamp
+[==========] 2 tests from 1 test case ran. (47 ms total)
+[ PASSED ] 2 tests.
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-map-mapflag.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-map-mapflag.elf
+[ OK ] extract.chrono (48 ms)
+[----------] 4 tests from extract (204 ms total)
+
+[----------] Global test environment tear-down
+==15899==
+==15899== FILE DESCRIPTORS: 3 open at exit.
+==15899== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15899== <inherited from parent>
+==15899==
+==15899== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15899== <inherited from parent>
+==15899==
+==15899== Open file descriptor 0: /dev/tty1
+==15899== <inherited from parent>
+==15899==
+==15899==
+==15899== HEAP SUMMARY:
+==15899== in use at exit: 0 bytes in 0 blocks
+==15899== total heap usage: 155 allocs, 155 frees, 105,260 bytes allocated
+==15899==
+==15899== All heap blocks were freed -- no leaks are possible
+==15899==
+==15899== For counts of detected and suppressed errors, rerun with: -v
+==15899== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[==========] 4 tests from 1 test case ran. (229 ms total)
+[ PASSED ] 4 tests.
+touch stamp/run-gtest-range--slice.stamp
+==15891==
+==15891== FILE DESCRIPTORS: 3 open at exit.
+==15891== Open file descriptor 0:
+==15891== <inherited from parent>
+==15891==
+==15891== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15891== <inherited from parent>
+==15891==
+==15891== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15891== <inherited from parent>
+==15891==
+==15891==
+==15891== HEAP SUMMARY:
+==15891== in use at exit: 0 bytes in 0 blocks
+==15891== total heap usage: 177 allocs, 177 frees, 107,311 bytes allocated
+==15891==
+==15891== All heap blocks were freed -- no leaks are possible
+==15891==
+==15891== For counts of detected and suppressed errors, rerun with: -v
+==15891== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+==15923== error calling PR_SET_PTRACER, vgdb might block
+[ OK ] npcast.scriptmap (68 ms)
+[----------] 9 tests from npcast (585 ms total)
+
+[----------] Global test environment tear-down
+[==========] 9 tests from 1 test case ran. (609 ms total)
+[ PASSED ] 9 tests.
+==15937== Memcheck, a memory error detector
+==15937== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==15937== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==15937== Command: bin/tests/gtest-strings--strings.elf
+==15937==
+touch stamp/run-gtest-io--extract.stamp
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-map-script-parse.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-map-script-parse.elf
+==15834==
+==15834== FILE DESCRIPTORS: 3 open at exit.
+==15834== Open file descriptor 0:
+==15834== <inherited from parent>
+==15834==
+==15834== Open file descriptor 2: /dev/null
+==15834== at 0x54ED9A7: dup2 (syscall-template.S:78)
+==15834== by 0x14FC1A: tmwa::io::FD::dup2(tmwa::io::FD) (fd.cpp:185)
+==15834== by 0x1289DB: ~ReplaceFd (fdhack.hpp:47)
+==15834== by 0x1289DB: ~QuietFd (fdhack.hpp:51)
+==15834== by 0x1289DB: tmwa::ast::npc::npcast_scriptmap_Test::TestBody() (npc_test.cpp:470)
+==15834== by 0x179729: HandleSehExceptionsInMethodIfSupported<testing::Test, void> (gtest.cc:2402)
+==15834== by 0x179729: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2438)
+==15834== by 0x16B0BB: testing::Test::Run() [clone .part.595] (gtest.cc:2474)
+==15834== by 0x16B354: Run (gtest.cc:2466)
+==15834== by 0x16B354: testing::TestInfo::Run() [clone .part.596] (gtest.cc:2656)
+==15834== by 0x16B4D3: Run (gtest.cc:2631)
+==15834== by 0x16B4D3: testing::TestCase::Run() [clone .part.597] (gtest.cc:2776)
+==15834== by 0x172912: Run (gtest.cc:2762)
+==15834== by 0x172912: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:4651)
+==15834== by 0x179C09: HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (gtest.cc:2402)
+==15834== by 0x179C09: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2438)
+==15834== by 0x16B667: testing::UnitTest::Run() (gtest.cc:4259)
+==15834== by 0x11B1D8: RUN_ALL_TESTS (gtest.h:2233)
+==15834== by 0x11B1D8: main (gtest_main.cc:37)
+==15834==
+==15834== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15834== <inherited from parent>
+==15834==
+==15834==
+==15834== HEAP SUMMARY:
+==15834== in use at exit: 0 bytes in 0 blocks
+==15834== total heap usage: 2,028 allocs, 2,028 frees, 440,764 bytes allocated
+==15834==
+==15834== All heap blocks were freed -- no leaks are possible
+==15834==
+==15834== For counts of detected and suppressed errors, rerun with: -v
+==15834== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+==15926== error calling PR_SET_PTRACER, vgdb might block
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-map-script-persist.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-map-script-persist.elf
+touch stamp/run-gtest-ast--npc.stamp
+==15927== error calling PR_SET_PTRACER, vgdb might block
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-mmo-ids.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-mmo-ids.elf
+==15929== error calling PR_SET_PTRACER, vgdb might block
+Running main() from gtest_main.cc
+[==========] Running 7 tests from 2 test cases.
+[----------] Global test environment set-up.
+[----------] 3 tests from ip4addr
+[ RUN ] ip4addr.cmp
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-mmo-strs.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-mmo-strs.elf
+[ OK ] ip4addr.cmp (5 ms)
+[ RUN ] ip4addr.str
+[ OK ] ip4addr.str (14 ms)
+[ RUN ] ip4addr.extract
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-net-ip.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-net-ip.elf
+[ OK ] ip4addr.extract (24 ms)
+[----------] 3 tests from ip4addr (49 ms total)
+
+[----------] 4 tests from ip4mask
+[ RUN ] ip4mask.body
+[ OK ] ip4mask.body (3 ms)
+[ RUN ] ip4mask.str
+[ OK ] ip4mask.str (8 ms)
+[ RUN ] ip4mask.extract
+[ OK ] ip4mask.extract (107 ms)
+[ RUN ] ip4mask.cover
+==15937== error calling PR_SET_PTRACER, vgdb might block
+[ OK ] ip4mask.cover (34 ms)
+[----------] 4 tests from ip4mask (153 ms total)
+
+[----------] Global test environment tear-down
+[==========] 7 tests from 2 test cases ran. (227 ms total)
+[ PASSED ] 7 tests.
+==15897==
+==15897== FILE DESCRIPTORS: 3 open at exit.
+==15897== Open file descriptor 0:
+==15897== <inherited from parent>
+==15897==
+==15897== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15897== <inherited from parent>
+==15897==
+==15897== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15897== <inherited from parent>
+==15897==
+==15897==
+==15897== HEAP SUMMARY:
+==15897== in use at exit: 0 bytes in 0 blocks
+==15897== total heap usage: 214 allocs, 214 frees, 111,540 bytes allocated
+==15897==
+==15897== All heap blocks were freed -- no leaks are possible
+==15897==
+==15897== For counts of detected and suppressed errors, rerun with: -v
+==15897== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+touch stamp/run-gtest-net--ip.stamp
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-net-timer.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-net-timer.elf
+Added 4+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-ints-wrap.elf
+Added 4+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-generic-dumb_ptr.elf
+Added 5+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-compat-borrow.elf
+Added 5+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-compat-option.elf
+Added 10+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-map-mapflag.elf
+Added 18+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-mmo-ids.elf
+Added 18+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-mmo-strs.elf
+Added 11+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-net-ip.elf
+Added 11+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-net-timer.elf
+Running main() from gtest_main.cc
+[==========] Running 3 tests from 1 test case.
+[----------] Global test environment set-up.
+[----------] 3 tests from sexpr
+[ RUN ] sexpr.escape
+[ OK ] sexpr.escape (30 ms)
+[ RUN ] sexpr.lexer
+Running main() from gtest_main.cc
+[==========] Running 3 tests from 1 test case.
+[ OK ] sexpr.lexer (49 ms)
+[ RUN ] sexpr.lexbad
+[----------] Global test environment set-up.
+[----------] 3 tests from sexpr
+[ RUN ] sexpr.parser
+[ OK ] sexpr.lexbad (22 ms)
+[----------] 3 tests from sexpr (107 ms total)
+
+[----------] Global test environment tear-down
+[==========] 3 tests from 1 test case ran. (132 ms total)
+[ PASSED ] 3 tests.
+Added 38+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-map-map.elf
+Added 38+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-map-script-persist.elf
+==15903==
+==15903== FILE DESCRIPTORS: 3 open at exit.
+==15903== Open file descriptor 0:
+==15903== <inherited from parent>
+==15903==
+==15903== Open file descriptor 2: /dev/null
+==15903== at 0x54ED9A7: dup2 (syscall-template.S:78)
+==15903== by 0x119E4A: tmwa::io::FD::dup2(tmwa::io::FD) (fd.cpp:185)
+==15903== by 0x115CE5: ~ReplaceFd (fdhack.hpp:47)
+==15903== by 0x115CE5: ~QuietFd (fdhack.hpp:51)
+==15903== by 0x115CE5: tmwa::sexpr_lexbad_Test::TestBody() (lexer_test.cpp:104)
+==15903== by 0x13FB29: HandleSehExceptionsInMethodIfSupported<testing::Test, void> (gtest.cc:2402)
+==15903== by 0x13FB29: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2438)
+==15903== by 0x1314BB: testing::Test::Run() [clone .part.595] (gtest.cc:2474)
+==15903== by 0x131754: Run (gtest.cc:2466)
+==15903== by 0x131754: testing::TestInfo::Run() [clone .part.596] (gtest.cc:2656)
+==15903== by 0x1318D3: Run (gtest.cc:2631)
+==15903== by 0x1318D3: testing::TestCase::Run() [clone .part.597] (gtest.cc:2776)
+==15903== by 0x138D12: Run (gtest.cc:2762)
+==15903== by 0x138D12: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:4651)
+==15903== by 0x140009: HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (gtest.cc:2402)
+==15903== by 0x140009: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2438)
+==15903== by 0x131A67: testing::UnitTest::Run() (gtest.cc:4259)
+==15903== by 0x113708: RUN_ALL_TESTS (gtest.h:2233)
+==15903== by 0x113708: main (gtest_main.cc:37)
+==15903==
+==15903== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15903== <inherited from parent>
+==15903==
+==15903==
+==15903== HEAP SUMMARY:
+==15903== in use at exit: 0 bytes in 0 blocks
+==15903== total heap usage: 248 allocs, 248 frees, 124,388 bytes allocated
+==15903==
+==15903== All heap blocks were freed -- no leaks are possible
+==15903==
+==15903== For counts of detected and suppressed errors, rerun with: -v
+==15903== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] sexpr.parser (50 ms)
+[ RUN ] sexpr.parselist
+Added 38+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-map-script-parse.elf
+[ OK ] sexpr.parselist (11 ms)
+[ RUN ] sexpr.parsebad
+touch stamp/run-gtest-sexpr--lexer.stamp
+[ OK ] sexpr.parsebad (29 ms)
+[----------] 3 tests from sexpr (97 ms total)
+
+[----------] Global test environment tear-down
+Running main() from gtest_main.cc
+[==========] Running 1 test from 1 test case.
+[==========] 3 tests from 1 test case ran. (121 ms total)
+[ PASSED ] 3 tests.
+[----------] Global test environment set-up.
+[----------] 1 test from strings
+[ RUN ] strings.contains
+[ OK ] strings.contains (8 ms)
+[----------] 1 test from strings (13 ms total)
+
+[----------] Global test environment tear-down
+[==========] 1 test from 1 test case ran. (37 ms total)
+[ PASSED ] 1 test.
+==15905==
+==15905== FILE DESCRIPTORS: 3 open at exit.
+==15905== Open file descriptor 0:
+==15905== <inherited from parent>
+==15905==
+==15905== Open file descriptor 2: /dev/null
+==15905== at 0x54ED9A7: dup2 (syscall-template.S:78)
+==15905== by 0x11ACEA: tmwa::io::FD::dup2(tmwa::io::FD) (fd.cpp:185)
+==15905== by 0x1158B4: ~ReplaceFd (fdhack.hpp:47)
+==15905== by 0x1158B4: ~QuietFd (fdhack.hpp:51)
+==15905== by 0x1158B4: tmwa::sexpr_parsebad_Test::TestBody() (parser_test.cpp:79)
+==15905== by 0x141D29: HandleSehExceptionsInMethodIfSupported<testing::Test, void> (gtest.cc:2402)
+==15905== by 0x141D29: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2438)
+==15905== by 0x1336BB: testing::Test::Run() [clone .part.595] (gtest.cc:2474)
+==15905== by 0x133954: Run (gtest.cc:2466)
+==15905== by 0x133954: testing::TestInfo::Run() [clone .part.596] (gtest.cc:2656)
+==15905== by 0x133AD3: Run (gtest.cc:2631)
+==15905== by 0x133AD3: testing::TestCase::Run() [clone .part.597] (gtest.cc:2776)
+==15905== by 0x13AF12: Run (gtest.cc:2762)
+==15905== by 0x13AF12: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:4651)
+==15905== by 0x142209: HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (gtest.cc:2402)
+==15905== by 0x142209: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2438)
+==15905== by 0x133C67: testing::UnitTest::Run() (gtest.cc:4259)
+==15905== by 0x1139C8: RUN_ALL_TESTS (gtest.h:2233)
+==15905== by 0x1139C8: main (gtest_main.cc:37)
+==15905==
+==15905== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15905== <inherited from parent>
+==15905==
+==15905==
+==15905== HEAP SUMMARY:
+==15905== in use at exit: 0 bytes in 0 blocks
+==15905== total heap usage: 281 allocs, 281 frees, 126,863 bytes allocated
+==15905==
+==15905== All heap blocks were freed -- no leaks are possible
+==15905==
+==15905== For counts of detected and suppressed errors, rerun with: -v
+==15905== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+Running main() from gtest_main.cc
+[==========] Running 3 tests from 1 test case.
+[----------] Global test environment set-up.
+Running main() from gtest_main.cc
+[==========] Running 0 tests from 0 test cases.
+[----------] 3 tests from variant
+Running main() from gtest_main.cc
+[==========] Running 5 tests from 2 test cases.
+[ RUN ] variant.match
+[----------] Global test environment set-up.
+[==========] 0 tests from 0 test cases ran. (29 ms total)
+[ PASSED ] 0 tests.
+[----------] 4 tests from StringTests
+[ RUN ] StringTests.traits2
+touch stamp/run-gtest-sexpr--parser.stamp
+==15926==
+==15926== FILE DESCRIPTORS: 3 open at exit.
+==15926== Open file descriptor 0:
+==15926== <inherited from parent>
+==15926==
+==15926== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15926== <inherited from parent>
+==15926==
+==15926== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15926== <inherited from parent>
+==15926==
+==15926==
+==15926== HEAP SUMMARY:
+==15926== in use at exit: 0 bytes in 0 blocks
+==15926== total heap usage: 145 allocs, 145 frees, 104,294 bytes allocated
+==15926==
+==15926== All heap blocks were freed -- no leaks are possible
+==15926==
+==15926== For counts of detected and suppressed errors, rerun with: -v
+==15926== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] variant.match (14 ms)
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-sexpr-parser.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-sexpr-parser.elf
+[ RUN ] variant.copymove1
+[ OK ] variant.copymove1 (0 ms)
+[ RUN ] variant.copymove2
+[ OK ] variant.copymove2 (0 ms)
+[----------] 3 tests from variant (22 ms total)
+
+[----------] Global test environment tear-down
+[==========] 3 tests from 1 test case ran. (46 ms total)
+[ PASSED ] 3 tests.
+touch stamp/run-gtest-strings--base.stamp
+==15923==
+==15923== FILE DESCRIPTORS: 3 open at exit.
+==15923== Open file descriptor 0:
+==15923== <inherited from parent>
+==15923==
+==15923== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15923== <inherited from parent>
+==15923==
+==15923== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15923== <inherited from parent>
+==15923==
+==15923==
+==15923== HEAP SUMMARY:
+==15923== in use at exit: 0 bytes in 0 blocks
+==15923== total heap usage: 122 allocs, 122 frees, 101,771 bytes allocated
+==15923==
+==15923== All heap blocks were freed -- no leaks are possible
+==15923==
+==15923== For counts of detected and suppressed errors, rerun with: -v
+==15923== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+==15929==
+==15929== FILE DESCRIPTORS: 3 open at exit.
+==15929== Open file descriptor 0:
+==15929== <inherited from parent>
+==15929==
+==15929== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15929== <inherited from parent>
+==15929==
+==15929== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15929== <inherited from parent>
+==15929==
+==15929==
+==15929== HEAP SUMMARY:
+==15929== in use at exit: 0 bytes in 0 blocks
+==15929== total heap usage: 182 allocs, 182 frees, 108,566 bytes allocated
+==15929==
+==15929== All heap blocks were freed -- no leaks are possible
+==15929==
+==15929== For counts of detected and suppressed errors, rerun with: -v
+[Inferior 1 (process 15969) exited normally]
+==15929== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+[ OK ] StringTests.traits2 (50 ms)
+[ RUN ] StringTests.rempty
+touch stamp/run-gtest-sexpr--union.stamp
+..[Inferior 1 (process 15970) exited normally]
+touch stamp/run-dtest-ints-wrap.stamp
+[ OK ] StringTests.rempty (14 ms)
+[ RUN ] StringTests.rshort
+touch stamp/run-gtest-sexpr--variant.stamp
+touch stamp/run-dtest-generic-dumb_ptr.stamp
+[ OK ] StringTests.rshort (15 ms)
+[ RUN ] StringTests.rlong
+[ OK ] StringTests.rlong (8 ms)
+[----------] 4 tests from StringTests (94 ms total)
+
+[----------] 1 test from StringTest
+[ RUN ] StringTest.rself
+[ OK ] StringTest.rself (2 ms)
+[----------] 1 test from StringTest (2 ms total)
+
+[----------] Global test environment tear-down
+[==========] 5 tests from 2 test cases ran. (121 ms total)
+[ PASSED ] 5 tests.
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-sexpr-variant.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-sexpr-variant.elf
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-strings-astring.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-strings-astring.elf
+==15927==
+==15927== FILE DESCRIPTORS: 3 open at exit.
+==15927== Open file descriptor 0:
+==15927== <inherited from parent>
+==15927==
+==15927== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15927== <inherited from parent>
+==15927==
+==15927== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15927== <inherited from parent>
+==15927==
+==15927==
+==15927== HEAP SUMMARY:
+==15927== in use at exit: 0 bytes in 0 blocks
+==15927== total heap usage: 200 allocs, 200 frees, 110,012 bytes allocated
+==15927==
+==15927== All heap blocks were freed -- no leaks are possible
+==15927==
+==15927== For counts of detected and suppressed errors, rerun with: -v
+==15927== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+touch stamp/run-gtest-strings--strings2.stamp
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-strings-literal.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-strings-literal.elf
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-strings-rstring.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-strings-rstring.elf
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-strings-vstring.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-strings-vstring.elf
+.[Inferior 1 (process 15971) exited normally]
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-strings-xstring.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-strings-xstring.elf
+touch stamp/run-dtest-compat-borrow.stamp
+gdb -return-child-result -nx -batch -ex 'python file_to_load = "bin/tests/dtest-strings-zstring.elf"' -x ./tools/debug-debug.gdb --args false bin/tests/dtest-strings-zstring.elf
+Added 10+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-sexpr-parser.elf
+Added 4+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-sexpr-variant.elf
+Added 9+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-strings-astring.elf
+Added 4+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-strings-literal.elf
+Added 9+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-strings-vstring.elf
+Added 9+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-strings-xstring.elf
+Added 9+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-strings-rstring.elf
+Added 9+2 custom printers for /home/m/.local/lib/libtmwa-shared.so.0
+Added 9+2 custom printers for /home/m/.local/lib/libtmwa-shared.so.0
+Running main() from gtest_main.cc
+[==========] Running 41 tests from 13 test cases.
+[----------] Global test environment set-up.
+Added 9+2 custom printers for /mnt/c/tmwAthena/tmwa/bin/tests/dtest-strings-zstring.elf
+[----------] 5 tests from StringStuff/StringTest/0, where TypeParam = tmwa::strings::RString
+[ RUN ] StringStuff/StringTest/0.basic
+[ OK ] StringStuff/StringTest/0.basic (11 ms)
+[ RUN ] StringStuff/StringTest/0.order
+[ OK ] StringStuff/StringTest/0.order (27 ms)
+[ RUN ] StringStuff/StringTest/0.iterators
+[ OK ] StringStuff/StringTest/0.iterators (2 ms)
+[ RUN ] StringStuff/StringTest/0.xslice
+[ OK ] StringStuff/StringTest/0.xslice (12 ms)
+[ RUN ] StringStuff/StringTest/0.convert
+[ OK ] StringStuff/StringTest/0.convert (36 ms)
+[----------] 5 tests from StringStuff/StringTest/0 (94 ms total)
+
+[----------] 5 tests from StringStuff/StringTest/1, where TypeParam = tmwa::strings::AString
+[ RUN ] StringStuff/StringTest/1.basic
+[ OK ] StringStuff/StringTest/1.basic (5 ms)
+[ RUN ] StringStuff/StringTest/1.order
+[ OK ] StringStuff/StringTest/1.order (27 ms)
+Added 9+2 custom printers for /home/m/.local/lib/libtmwa-shared.so.0
+[ RUN ] StringStuff/StringTest/1.iterators
+[ OK ] StringStuff/StringTest/1.iterators (2 ms)
+[ RUN ] StringStuff/StringTest/1.xslice
+........[ OK ] StringStuff/StringTest/1.xslice (17 ms)
+[ RUN ] StringStuff/StringTest/1.convert
+...[Inferior 1 (process 15974) exited normally]
+......[Inferior 1 (process 15979) exited normally]
+touch stamp/run-dtest-mmo-ids.stamp
+touch stamp/run-dtest-mmo-strs.stamp
+[ OK ] StringStuff/StringTest/1.convert (59 ms)
+[----------] 5 tests from StringStuff/StringTest/1 (110 ms total)
+
+[----------] 5 tests from StringStuff/StringTest/2, where TypeParam = tmwa::strings::TString
+[ RUN ] StringStuff/StringTest/2.basic
+[ OK ] StringStuff/StringTest/2.basic (12 ms)
+[ RUN ] StringStuff/StringTest/2.order
+.[Inferior 1 (process 15975) exited normally]
+[ OK ] StringStuff/StringTest/2.order (46 ms)
+[ RUN ] StringStuff/StringTest/2.iterators
+[ OK ] StringStuff/StringTest/2.iterators (3 ms)
+[ RUN ] StringStuff/StringTest/2.xslice
+touch stamp/run-dtest-net-ip.stamp
+[ OK ] StringStuff/StringTest/2.xslice (9 ms)
+[ RUN ] StringStuff/StringTest/2.convert
+..................[ OK ] StringStuff/StringTest/2.convert (29 ms)
+.[----------] 5 tests from StringStuff/StringTest/2 (99 ms total)
+
+.[----------] 5 tests from StringStuff/StringTest/3, where TypeParam = tmwa::strings::SString
+[ RUN ] StringStuff/StringTest/3.basic
+......[Inferior 1 (process 15972) exited normally]
+..[ OK ] StringStuff/StringTest/3.basic (5 ms)
+[ RUN ] StringStuff/StringTest/3.order
+.................touch stamp/run-dtest-compat-option.stamp
+........................[ OK ] StringStuff/StringTest/3.order (27 ms)
+[ RUN ] StringStuff/StringTest/3.iterators
+....[ OK ] StringStuff/StringTest/3.iterators (2 ms)
+[ RUN ] StringStuff/StringTest/3.xslice
+.[Inferior 1 (process 15973) exited normally]
+.......[ OK ] StringStuff/StringTest/3.xslice (10 ms)
+[ RUN ] StringStuff/StringTest/3.convert
+...touch stamp/run-dtest-map-mapflag.stamp
+.........[Inferior 1 (process 15981) exited normally]
+[ OK ] StringStuff/StringTest/3.convert (28 ms)
+[----------] 5 tests from StringStuff/StringTest/3 (73 ms total)
+
+[----------] 5 tests from StringStuff/StringTest/4, where TypeParam = tmwa::strings::ZString
+[ RUN ] StringStuff/StringTest/4.basic
+touch stamp/run-dtest-net-timer.stamp
+[ OK ] StringStuff/StringTest/4.basic (5 ms)
+[ RUN ] StringStuff/StringTest/4.order
+[ OK ] StringStuff/StringTest/4.order (27 ms)
+[ RUN ] StringStuff/StringTest/4.iterators
+[ OK ] StringStuff/StringTest/4.iterators (2 ms)
+[ RUN ] StringStuff/StringTest/4.xslice
+[ OK ] StringStuff/StringTest/4.xslice (8 ms)
+[ RUN ] StringStuff/StringTest/4.convert
+[ OK ] StringStuff/StringTest/4.convert (18 ms)
+[----------] 5 tests from StringStuff/StringTest/4 (61 ms total)
+
+[----------] 5 tests from StringStuff/StringTest/5, where TypeParam = tmwa::strings::XString
+[ RUN ] StringStuff/StringTest/5.basic
+[ OK ] StringStuff/StringTest/5.basic (4 ms)
+[ RUN ] StringStuff/StringTest/5.order
+[ OK ] StringStuff/StringTest/5.order (27 ms)
+[ RUN ] StringStuff/StringTest/5.iterators
+[ OK ] StringStuff/StringTest/5.iterators (2 ms)
+[ RUN ] StringStuff/StringTest/5.xslice
+..[ OK ] StringStuff/StringTest/5.xslice (9 ms)
+[ RUN ] StringStuff/StringTest/5.convert
+[Inferior 1 (process 16056) exited normally]
+touch stamp/run-dtest-strings-literal.stamp
+[ OK ] StringStuff/StringTest/5.convert (19 ms)
+[----------] 5 tests from StringStuff/StringTest/5 (62 ms total)
+
+[----------] 5 tests from StringStuff/StringTest/6, where TypeParam = tmwa::strings::VString<(unsigned char)255>
+[ RUN ] StringStuff/StringTest/6.basic
+[ OK ] StringStuff/StringTest/6.basic (6 ms)
+[ RUN ] StringStuff/StringTest/6.order
+[ OK ] StringStuff/StringTest/6.order (31 ms)
+[ RUN ] StringStuff/StringTest/6.iterators
+[ OK ] StringStuff/StringTest/6.iterators (1 ms)
+[ RUN ] StringStuff/StringTest/6.xslice
+[ OK ] StringStuff/StringTest/6.xslice (6 ms)
+[ RUN ] StringStuff/StringTest/6.convert
+[ OK ] StringStuff/StringTest/6.convert (39 ms)
+[----------] 5 tests from StringStuff/StringTest/6 (85 ms total)
+
+[----------] 1 test from VStringTest
+[ RUN ] VStringTest.basic
+[ OK ] VStringTest.basic (5 ms)
+[----------] 1 test from VStringTest (5 ms total)
+
+[----------] 1 test from NulStringStuff/NulStringTest/0, where TypeParam = tmwa::strings::RString
+[ RUN ] NulStringStuff/NulStringTest/0.basic
+[ OK ] NulStringStuff/NulStringTest/0.basic (2 ms)
+[----------] 1 test from NulStringStuff/NulStringTest/0 (3 ms total)
+
+[----------] 1 test from NulStringStuff/NulStringTest/1, where TypeParam = tmwa::strings::AString
+[ RUN ] NulStringStuff/NulStringTest/1.basic
+[ OK ] NulStringStuff/NulStringTest/1.basic (2 ms)
+[----------] 1 test from NulStringStuff/NulStringTest/1 (2 ms total)
+
+[----------] 1 test from NulStringStuff/NulStringTest/2, where TypeParam = tmwa::strings::TString
+[ RUN ] NulStringStuff/NulStringTest/2.basic
+[ OK ] NulStringStuff/NulStringTest/2.basic (2 ms)
+[----------] 1 test from NulStringStuff/NulStringTest/2 (2 ms total)
+
+[----------] 1 test from NulStringStuff/NulStringTest/3, where TypeParam = tmwa::strings::ZString
+[ RUN ] NulStringStuff/NulStringTest/3.basic
+[ OK ] NulStringStuff/NulStringTest/3.basic (1 ms)
+[----------] 1 test from NulStringStuff/NulStringTest/3 (1 ms total)
+
+[----------] 1 test from NulStringStuff/NulStringTest/4, where TypeParam = tmwa::strings::VString<(unsigned char)255>
+[ RUN ] NulStringStuff/NulStringTest/4.basic
+[ OK ] NulStringStuff/NulStringTest/4.basic (2 ms)
+[----------] 1 test from NulStringStuff/NulStringTest/4 (2 ms total)
+
+[----------] Global test environment tear-down
+[==========] 41 tests from 13 test cases ran. (634 ms total)
+[ PASSED ] 41 tests.
+==15937==
+==15937== FILE DESCRIPTORS: 3 open at exit.
+==15937== Open file descriptor 0:
+==15937== <inherited from parent>
+==15937==
+==15937== Open file descriptor 2: /mnt/c/tmwAthena/tmwa/out
+==15937== <inherited from parent>
+==15937==
+==15937== Open file descriptor 1: /mnt/c/tmwAthena/tmwa/out
+==15937== <inherited from parent>
+==15937==
+==15937==
+==15937== HEAP SUMMARY:
+==15937== in use at exit: 0 bytes in 0 blocks
+==15937== total heap usage: 1,363 allocs, 1,363 frees, 199,485 bytes allocated
+==15937==
+==15937== All heap blocks were freed -- no leaks are possible
+==15937==
+==15937== For counts of detected and suppressed errors, rerun with: -v
+==15937== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
+touch stamp/run-gtest-strings--strings.stamp
+..[Inferior 1 (process 16041) exited normally]
+touch stamp/run-dtest-sexpr-variant.stamp
+.................[Inferior 1 (process 16007) exited normally]
+....[Inferior 1 (process 16040) exited normally]
+.......touch stamp/run-dtest-map-map.stamp
+..touch stamp/run-dtest-sexpr-parser.stamp
+.....[Inferior 1 (process 16045) exited normally]
+...touch stamp/run-dtest-strings-astring.stamp
+.....[Inferior 1 (process 16006) exited normally]
+........[Inferior 1 (process 16059) exited normally]
+..touch stamp/run-dtest-map-script-persist.stamp
+..[Inferior 1 (process 16061) exited normally]
+touch stamp/run-dtest-strings-xstring.stamp
+touch stamp/run-dtest-strings-vstring.stamp
+..........[Inferior 1 (process 16078) exited normally]
+.......touch stamp/run-dtest-strings-zstring.stamp
+.[Inferior 1 (process 16062) exited normally]
+touch stamp/run-dtest-strings-rstring.stamp
+.[Inferior 1 (process 16018) exited normally]
+touch stamp/run-dtest-map-script-parse.stamp
diff --git a/src/map/clif.cpp b/src/map/clif.cpp
index a2f3b3a..7d5ff59 100644
--- a/src/map/clif.cpp
+++ b/src/map/clif.cpp
@@ -35,6 +35,8 @@
#include "../strings/zstring.hpp"
#include "../strings/xstring.hpp"
+#include "../generic/random.hpp"
+
#include "../io/cxxstdio.hpp"
#include "../io/extract.hpp"
#include "../io/write.hpp"
@@ -612,6 +614,13 @@ int clif_clearchar(dumb_ptr<block_list> bl, BeingRemoveWhy type)
type == BeingRemoveWhy::DEAD ? SendWho::AREA : SendWho::AREA_WOS);
}
+ if (bl->bl_type == BL::PC)
+ {
+ dumb_ptr<map_session_data> sd = bl->is_player();
+ if (sd->automod == AutoMod::autoblock)
+ clif_gm_collision(sd, 0);
+ }
+
return 0;
}
@@ -2499,6 +2508,9 @@ void clif_getareachar_pc(dumb_ptr<map_session_data> sd,
clif_changelook_accessories(sd, dstsd);
clif_changelook_accessories(dstsd, sd);
+
+ if (dstsd->automod == AutoMod::autoblock && pc_issit(dstsd))
+ clif_update_collision(sd, dstsd->bl_x, dstsd->bl_y, dstsd->bl_x, dstsd->bl_y, dstsd->bl_m->name_, 5); // BlockType::PLAYERWALL
}
/*==========================================
@@ -2759,6 +2771,9 @@ void clif_pcoutsight(dumb_ptr<block_list> bl, dumb_ptr<map_session_data> sd)
{
clif_clearchar_id(dstsd->bl_id, BeingRemoveWhy::GONE, sd->sess);
clif_clearchar_id(sd->bl_id, BeingRemoveWhy::GONE, dstsd->sess);
+
+ if (dstsd->automod == AutoMod::autoblock)
+ clif_update_collision(sd, dstsd->bl_x, dstsd->bl_y, dstsd->bl_x, dstsd->bl_y, dstsd->bl_m->name_, 0);
}
break;
case BL::NPC:
@@ -3369,6 +3384,61 @@ void clif_sitting(Session *, dumb_ptr<map_session_data> sd)
fixed_8a.damage_type = DamageType::SIT;
Buffer buf = create_fpacket<0x008a, 29>(fixed_8a);
clif_send(buf, sd, SendWho::AREA);
+
+ if (sd->automod == AutoMod::autoblock)
+ clif_gm_collision(sd, 5);
+
+ // Prsm-sitting countermeasures
+ dumb_ptr<block_list> d_bl = sd->bl_m->blocks.ref(sd->bl_x / BLOCK_SIZE, sd->bl_y / BLOCK_SIZE).normal;
+ for (; d_bl; d_bl = d_bl->bl_next)
+ {
+ if (d_bl->bl_type == BL::PC && d_bl->bl_x == sd->bl_x && d_bl->bl_y == sd->bl_y && d_bl->bl_id != sd->bl_id)
+ {
+ dumb_ptr<map_session_data> d_sd = d_bl->is_player();
+
+ switch (d_sd->automod)
+ {
+ case AutoMod::autoblock:
+ // at this point, this should be impossible, so fallback to kill
+ case AutoMod::autokill:
+ pc_damage(nullptr, sd, sd->status.hp);
+ clif_displaymessage(sd->sess, "The holy messenger has given judgement."_s);
+ // now fallthrough to move
+ case AutoMod::automove:
+ {
+ unsigned short x0 = std::max(0, sd->bl_x - 5),
+ y0 = std::max(0, sd->bl_y - 5),
+ x1 = std::min(sd->bl_m->xs, (short)(sd->bl_x + 5)),
+ y1 = std::min(sd->bl_m->ys, (short)(sd->bl_y + 5));
+ unsigned short x = x0,
+ y = y0;
+
+ for (unsigned short i = 0; i < 1000; i++)
+ {
+ x = random_::in(x0, x1);
+ y = random_::in(y0, y1);
+
+ if (!bool(map_getcell(sd->bl_m, x, y) & MapCell::UNWALKABLE))
+ break;
+ }
+ pc_setpos(sd, sd->bl_m->name_, x, y, BeingRemoveWhy::WARPED);
+
+ if (sd->status.hp > 0)
+ {
+ // we're still sitting
+ Packet_Fixed<0x008a> fixed_8a_2;
+ fixed_8a_2.src_id = sd->bl_id;
+ fixed_8a_2.damage_type = DamageType::SIT;
+ Buffer buf2 = create_fpacket<0x008a, 29>(fixed_8a_2);
+ clif_send(buf2, sd, SendWho::SELF);
+ }
+ }
+ break;
+ case AutoMod::autokick:
+ clif_GM_kick(d_sd, sd, 1);
+ }
+ }
+ }
}
static
@@ -4075,6 +4145,25 @@ void clif_remote_command(dumb_ptr<map_session_data> sd, XString cmd)
clif_send(buf, sd, SendWho::SELF, wrap<ClientVersion>(6));
}
+void clif_gm_collision(dumb_ptr<map_session_data> sd, int mask)
+{
+ nullpo_retv(sd);
+
+ VString<15> gat_name = STRPRINTF("%s.gat"_fmt, sd->bl_m->name_);
+
+ Packet_Fixed<0x0231> fixed_231;
+ fixed_231.x1 = sd->bl_x;
+ fixed_231.y1 = sd->bl_y;
+ fixed_231.x2 = sd->bl_x;
+ fixed_231.y2 = sd->bl_y;
+ fixed_231.mask = mask;
+ fixed_231.unused_layer = 0;
+ fixed_231.map = gat_name;
+ Buffer buf = create_fpacket<0x0231, 34>(fixed_231);
+
+ clif_send(buf, sd, SendWho::AREA_WOS, wrap<ClientVersion>(7));
+}
+
void clif_update_collision(dumb_ptr<map_session_data> sd, short x1, short y1,
short x2, short y2, MapName map_name, int mask)
{
diff --git a/src/map/clif.hpp b/src/map/clif.hpp
index 1abcfe3..99baea8 100644
--- a/src/map/clif.hpp
+++ b/src/map/clif.hpp
@@ -108,6 +108,7 @@ void clif_npc_send_title(Session *s, BlockId npcid, XString msg);
void clif_server_message(dumb_ptr<map_session_data>, uint8_t, XString msg);
void clif_remote_command(dumb_ptr<map_session_data>, XString);
void clif_update_collision(dumb_ptr<map_session_data>, short, short, short, short, MapName, int);
+void clif_gm_collision(dumb_ptr<map_session_data>, int);
void clif_change_music(dumb_ptr<map_session_data> sd, XString music);
void clif_npc_action(dumb_ptr<map_session_data>, BlockId, short, int, short, short);
void clif_send_mask(dumb_ptr<map_session_data>, int);
diff --git a/src/map/map.hpp b/src/map/map.hpp
index 60b3462..eddbfad 100644
--- a/src/map/map.hpp
+++ b/src/map/map.hpp
@@ -121,6 +121,15 @@ struct quick_regeneration
unsigned char tickdelay; // number of ticks to next update
};
+enum class AutoMod
+{
+ off = 0,
+ autokill,
+ automove,
+ autoblock,
+ autokick,
+};
+
struct map_session_data : block_list, SessionData
{
struct
@@ -298,6 +307,8 @@ struct map_session_data : block_list, SessionData
unsigned guild:1;
} mute;
+ AutoMod automod;
+
tick_t flood_rates[0x220];
tick_t packet_flood_reset_due;
int packet_flood_in;
diff --git a/src/map/pc.cpp b/src/map/pc.cpp
index 3986113..b9b41d9 100644
--- a/src/map/pc.cpp
+++ b/src/map/pc.cpp
@@ -833,6 +833,8 @@ int pc_authok(AccountId id, int login_id2, ClientVersion client_version,
sd->mute.whisper = 0;
sd->mute.guild = 0;
+ sd->automod = AutoMod::off;
+
for (tick_t& t : sd->flood_rates)
t = tick_t();
sd->packet_flood_reset_due = tick_t();
@@ -2414,6 +2416,27 @@ void pc_walk(TimerData *, tick_t tick, BlockId id, unsigned char data)
return;
}
+ // Prsm-sitting countermeasures
+ dumb_ptr<block_list> d_bl = sd->bl_m->blocks.ref((x + dx) / BLOCK_SIZE, (y + dy) / BLOCK_SIZE).normal;
+ for (; d_bl; d_bl = d_bl->bl_next)
+ {
+ if (d_bl->bl_type == BL::PC && d_bl->bl_x == (x + dx) && d_bl->bl_y == (y + dy))
+ {
+ dumb_ptr<map_session_data> d_sd = d_bl->is_player();
+
+ if (pc_issit(d_sd))
+ {
+ switch (d_sd->automod)
+ {
+ case AutoMod::autoblock:
+ clif_update_collision(sd, x + dx, y + dy, x + dx, y + dy, sd->bl_m->name_, 5); // BlockType::PLAYERWALL
+ pc_stop_walking(sd, 1);
+ return;
+ }
+ }
+ }
+ }
+
moveblock = (x / BLOCK_SIZE != (x + dx) / BLOCK_SIZE
|| y / BLOCK_SIZE != (y + dy) / BLOCK_SIZE);
@@ -3571,6 +3594,9 @@ int pc_readparam(dumb_ptr<block_list> bl, SP type)
case SP::MUTE_GUILD:
val = sd ? sd->mute.guild : 0;
break;
+ case SP::AUTOMOD:
+ val = sd ? (int)sd->automod : 0;
+ break;
}
return val;
@@ -3816,6 +3842,10 @@ int pc_setparam(dumb_ptr<block_list> bl, SP type, int val)
nullpo_retz(sd);
sd->mute.guild = (val == 1);
break;
+ case SP::AUTOMOD:
+ nullpo_retz(sd);
+ sd->automod = (AutoMod)val;
+ break;
}
return 0;
@@ -5205,6 +5235,9 @@ void pc_setstand(dumb_ptr<map_session_data> sd)
nullpo_retv(sd);
sd->state.dead_sit = 0;
+
+ if (sd->automod == AutoMod::autoblock)
+ clif_gm_collision(sd, 0);
}
static
diff --git a/src/map/script-fun.cpp b/src/map/script-fun.cpp
index ab60535..8c90052 100644
--- a/src/map/script-fun.cpp
+++ b/src/map/script-fun.cpp
@@ -4637,7 +4637,9 @@ void builtin_getmap(ScriptState *st)
else
sd = script_rid2sd(st);
- nullpo_retv(sd);
+ if (!sd || !as_raw_pointer(Some(sd->bl_m)) || sd->bl_m == borrow(undefined_gat))
+ return;
+
push_str<ScriptDataStr>(st->stack, sd->bl_m->name_);
}
diff --git a/src/mmo/clif.t.hpp b/src/mmo/clif.t.hpp
index 5f07ebd..1d46342 100644
--- a/src/mmo/clif.t.hpp
+++ b/src/mmo/clif.t.hpp
@@ -480,6 +480,7 @@ enum class SP : uint16_t
MUTE_WHISPER = 1083,
MUTE_PARTY = 1084,
MUTE_GUILD = 1085,
+ AUTOMOD = 1086,
};
constexpr