The International Simutrans Forum

 

Author Topic: Incorporating changes from Standard  (Read 28021 times)

0 Members and 1 Guest are viewing this topic.

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #280 on: December 09, 2020, 06:16:07 PM »
Thank you for your help. I have tried specifying the objs/.libs directory (which I had not seen before because it was hidden) as a library directory, but sadly this does not assist.

I have to say, I did not know that there was any system for automating the directories for cross-compiling; I am aware that this is normal for native compiling, but I had not found any documentation anywhere suggesting that this was a thing for cross-compiling (after struggling for months to get cross-compiling to work when I first started the nightly build server back in 2017), so I had just set up the directories in the /root folder and linked to them manually, which worked.

As to library configurations, do I understand that freetype needs zlib to work? I am not getting any compile errors, so this is somewhat surprising; what is being compiled if there are dependencies missing? The objs/.libs directory is populated as follows:

Code: [Select]
-rw-r--r-- 1 root root  405887 Dec  9 17:11 autofit.o
-rw-r--r-- 1 root root  132609 Dec  9 17:10 bdf.o
-rw-r--r-- 1 root root  294089 Dec  9 17:10 cff.o
-rw-r--r-- 1 root root  646787 Dec  9 17:09 ftbase.o
-rw-r--r-- 1 root root   18472 Dec  9 17:10 ftbbox.o
-rw-r--r-- 1 root root   22566 Dec  9 17:10 ftbdf.o
-rw-r--r-- 1 root root   61113 Dec  9 17:10 ftbitmap.o
-rw-r--r-- 1 root root    8289 Dec  9 17:11 ftbzip2.o
-rw-r--r-- 1 root root  169530 Dec  9 17:11 ftcache.o
-rw-r--r-- 1 root root   23729 Dec  9 17:10 ftcid.o
-rw-r--r-- 1 root root    3561 Dec  9 17:09 ftdebug.o
-rw-r--r-- 1 root root   21292 Dec  9 17:10 ftfstype.o
-rw-r--r-- 1 root root   26352 Dec  9 17:10 ftgasp.o
-rw-r--r-- 1 root root   44871 Dec  9 17:10 ftglyph.o
-rw-r--r-- 1 root root   24336 Dec  9 17:10 ftgxval.o
-rw-r--r-- 1 root root  134256 Dec  9 17:11 ftgzip.o
-rw-r--r-- 1 root root   26331 Dec  9 17:09 ftinit.o
-rw-r--r-- 1 root root   35892 Dec  9 17:11 ftlzw.o
-rw-r--r-- 1 root root   46662 Dec  9 17:10 ftmm.o
-rw-r--r-- 1 root root   22260 Dec  9 17:10 ftotval.o
-rw-r--r-- 1 root root   16342 Dec  9 17:10 ftpatent.o
-rw-r--r-- 1 root root   26503 Dec  9 17:10 ftpfr.o
-rw-r--r-- 1 root root  128501 Dec  9 17:10 ftstroke.o
-rw-r--r-- 1 root root   19879 Dec  9 17:10 ftsynth.o
-rw-r--r-- 1 root root   14266 Dec  9 17:09 ftsystem.o
-rw-r--r-- 1 root root   26996 Dec  9 17:10 fttype1.o
-rw-r--r-- 1 root root    1020 Dec  9 16:44 ftver.o
-rw-r--r-- 1 root root   21609 Dec  9 17:10 ftwinfnt.o
-rw-r--r-- 1 root root 5359480 Dec  9 17:11 libfreetype.a
lrwxrwxrwx 1 root root      17 Dec  9 17:11 libfreetype.la -> ../libfreetype.la
-rw-r--r-- 1 root root     930 Dec  9 17:11 libfreetype.lai
-rw-r--r-- 1 root root   93133 Dec  9 17:10 pcf.o
-rw-r--r-- 1 root root  151406 Dec  9 17:10 pfr.o
-rw-r--r-- 1 root root  447039 Dec  9 17:11 psaux.o
-rw-r--r-- 1 root root  188038 Dec  9 17:11 pshinter.o
-rw-r--r-- 1 root root  106313 Dec  9 17:11 psnames.o
-rw-r--r-- 1 root root   97808 Dec  9 17:11 raster.o
-rw-r--r-- 1 root root  684892 Dec  9 17:10 sfnt.o
-rw-r--r-- 1 root root   75313 Dec  9 17:11 smooth.o
-rw-r--r-- 1 root root  493614 Dec  9 17:10 truetype.o
-rw-r--r-- 1 root root  136873 Dec  9 17:10 type1cid.o
-rw-r--r-- 1 root root  265266 Dec  9 17:10 type1.o
-rw-r--r-- 1 root root  125160 Dec  9 17:10 type42.o
-rw-r--r-- 1 root root   59958 Dec  9 17:10 winfnt.o

Offline TurfIt

  • Dev Team, Coder/patcher
  • Devotee
  • *
  • Posts: 1440
Re: Incorporating changes from Standard
« Reply #281 on: December 09, 2020, 07:07:56 PM »
I would guess you're not even trying to link it. i.e. missing -lfreetype.    VERBOSE=1 is to help for exactly this type of thing.
Perusing the headache inducing Extended Makefile, the only place that would come from are the "system for automating the directories"...

Do you have freetype-config (for the cross environment)?   freetype2.pc?  (try 'x86_64_w64-mingw32-pkg-config freetype2' [or whatever your cross prefix is])
If so, the paths, libraries, etc. all come from them.
If not, you need to define FREETYPE_CONFIG= as blank in config.default. And same for SDL2_CONFIG, etc., etc.. as per config.template "# Define these as empty strings, if you don't have the respective config program"

zlib is required for freetype, but it includes it's own copy if a 'system' one can't be found. Hence why you still compile.
bzip2 would be needed for certain fonts too, but only the 'system' one.
Since both zlib and bzip2 are needed by Simutrans, I would've expected them to be installed already, but if you've stuck them in some /root/blah path rather than in the 'system', then....

Also note from the warnings when you built freetype, your cross environment is missing libz and libm so the resultant freetype is static linkage only. obj/.lib is missing the libfreetype.dll.a and libfreetype-6.dll files.

---
Can you post output from 'x86_64-w64-mingw32-gcc -v' and 'x86_64-w64-mingw32-ld --verbose'  (just searchdirs section near top of ld output...) Could help to see where your cross system dirs are.
« Last Edit: December 09, 2020, 07:26:44 PM by TurfIt »

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #282 on: December 09, 2020, 07:43:25 PM »
Thank you for that: that is most helpful.

The config.mingw64 file was not updated when config.template was updated, so there was no blank FREETYPE_CONFIG option. I have now added this. However, adding this, either with FREETYPE_CONFIG = freetype-config or FREETYPE_CONFIG = (blank) makes no difference.

With VERBOSE = 1, I get the following output:

Code: [Select]
x86_64-w64-mingw32-g++  build/mingw64/sys/simsys_w32_png.o  build/mingw64/sys/clipboard_w32.o  build/mingw64/bauer/brueckenbauer.o  build/mingw64/bauer/fabrikbauer.o  build/mingw64/bauer/hausbauer.o  build/mingw64/bauer/tunnelbauer.o  build/mingw64/bauer/vehikelbauer.o  build/mingw64/bauer/goods_manager.o  build/mingw64/bauer/wegbauer.o  build/mingw64/descriptor/image.o  build/mingw64/descriptor/bridge_desc.o  build/mingw64/descriptor/factory_desc.o  build/mingw64/descriptor/ground_desc.o  build/mingw64/descriptor/building_desc.o  build/mingw64/descriptor/obj_base_desc.o  build/mingw64/descriptor/reader/bridge_reader.o  build/mingw64/descriptor/reader/building_reader.o  build/mingw64/descriptor/reader/citycar_reader.o  build/mingw64/descriptor/reader/crossing_reader.o  build/mingw64/descriptor/reader/factory_reader.o  build/mingw64/descriptor/reader/good_reader.o  build/mingw64/descriptor/reader/ground_reader.o  build/mingw64/descriptor/reader/groundobj_reader.o  build/mingw64/descriptor/reader/image_reader.o  build/mingw64/descriptor/reader/imagelist2d_reader.o  build/mingw64/descriptor/reader/imagelist3d_reader.o  build/mingw64/descriptor/reader/imagelist_reader.o  build/mingw64/descriptor/reader/obj_reader.o  build/mingw64/descriptor/reader/pedestrian_reader.o  build/mingw64/descriptor/reader/roadsign_reader.o  build/mingw64/descriptor/reader/root_reader.o  build/mingw64/descriptor/reader/sim_reader.o  build/mingw64/descriptor/reader/skin_reader.o  build/mingw64/descriptor/reader/sound_reader.o  build/mingw64/descriptor/reader/text_reader.o  build/mingw64/descriptor/reader/tree_reader.o  build/mingw64/descriptor/reader/tunnel_reader.o  build/mingw64/descriptor/reader/vehicle_reader.o  build/mingw64/descriptor/reader/way_obj_reader.o  build/mingw64/descriptor/reader/way_reader.o  build/mingw64/descriptor/reader/xref_reader.o  build/mingw64/descriptor/sound_desc.o  build/mingw64/descriptor/tunnel_desc.o  build/mingw64/descriptor/vehicle_desc.o  build/mingw64/descriptor/goods_desc.o  build/mingw64/descriptor/way_desc.o  build/mingw64/boden/boden.o  build/mingw64/boden/brueckenboden.o  build/mingw64/boden/fundament.o  build/mingw64/boden/grund.o  build/mingw64/boden/monorailboden.o  build/mingw64/boden/tunnelboden.o  build/mingw64/boden/wasser.o  build/mingw64/boden/wege/kanal.o  build/mingw64/boden/wege/maglev.o  build/mingw64/boden/wege/monorail.o  build/mingw64/boden/wege/narrowgauge.o  build/mingw64/boden/wege/runway.o  build/mingw64/boden/wege/schiene.o  build/mingw64/boden/wege/strasse.o  build/mingw64/boden/wege/weg.o  build/mingw64/dataobj/crossing_logic.o  build/mingw64/dataobj/objlist.o  build/mingw64/dataobj/settings.o  build/mingw64/dataobj/schedule.o  build/mingw64/dataobj/freelist.o  build/mingw64/dataobj/gameinfo.o  build/mingw64/dataobj/height_map_loader.o  build/mingw64/dataobj/koord.o  build/mingw64/dataobj/koord3d.o  build/mingw64/dataobj/loadsave.o  build/mingw64/dataobj/marker.o  build/mingw64/dataobj/powernet.o  build/mingw64/dataobj/rect.o  build/mingw64/dataobj/ribi.o  build/mingw64/dataobj/route.o  build/mingw64/dataobj/scenario.o  build/mingw64/dataobj/tabfile.o  build/mingw64/dataobj/translator.o  build/mingw64/dataobj/environment.o  build/mingw64/obj/baum.o  build/mingw64/obj/bruecke.o  build/mingw64/obj/crossing.o  build/mingw64/obj/field.o  build/mingw64/obj/gebaeude.o  build/mingw64/obj/groundobj.o  build/mingw64/obj/label.o  build/mingw64/obj/leitung2.o  build/mingw64/obj/pillar.o  build/mingw64/obj/roadsign.o  build/mingw64/obj/signal.o  build/mingw64/obj/tunnel.o  build/mingw64/obj/wayobj.o  build/mingw64/obj/wolke.o  build/mingw64/obj/zeiger.o  build/mingw64/display/font.o  build/mingw64/display/simgraph16.o  build/mingw64/display/simview.o  build/mingw64/display/viewport.o  build/mingw64/finder/placefinder.o  build/mingw64/freight_list_sorter.o  build/mingw64/gui/ai_option_t.o  build/mingw64/gui/banner.o  build/mingw64/gui/baum_edit.o  build/mingw64/gui/base_info.o  build/mingw64/gui/citybuilding_edit.o  build/mingw64/gui/citylist_frame_t.o  build/mingw64/gui/citylist_stats_t.o  build/mingw64/gui/climates.o  build/mingw64/gui/display_settings.o  build/mingw64/gui/components/gui_aligned_container.o  build/mingw64/gui/components/gui_building.o  build/mingw64/gui/components/gui_button.o  build/mingw64/gui/components/gui_button_to_chart.o  build/mingw64/gui/components/gui_chart.o  build/mingw64/gui/components/gui_colorbox.o  build/mingw64/gui/components/gui_combobox.o  build/mingw64/gui/components/gui_container.o  build/mingw64/gui/components/gui_convoiinfo.o  build/mingw64/gui/components/gui_divider.o  build/mingw64/gui/components/gui_obj_view_t.o  build/mingw64/gui/components/gui_factory_storage_info.o  build/mingw64/gui/components/gui_halthandled_lines.o  build/mingw64/gui/components/gui_fixedwidth_textarea.o  build/mingw64/gui/components/gui_flowtext.o  build/mingw64/gui/components/gui_image.o  build/mingw64/gui/components/gui_image_list.o  build/mingw64/gui/components/gui_component.o  build/mingw64/gui/components/gui_label.o  build/mingw64/gui/components/gui_map_preview.o  build/mingw64/gui/components/gui_numberinput.o  build/mingw64/gui/components/gui_scrollbar.o  build/mingw64/gui/components/gui_scrolled_list.o  build/mingw64/gui/components/gui_scrollpane.o  build/mingw64/gui/components/gui_speedbar.o  build/mingw64/gui/components/gui_tab_panel.o  build/mingw64/gui/components/gui_textarea.o  build/mingw64/gui/components/gui_textinput.o  build/mingw64/gui/components/gui_world_view_t.o  build/mingw64/gui/convoi_detail_t.o  build/mingw64/gui/convoi_filter_frame.o  build/mingw64/gui/convoi_frame.o  build/mingw64/gui/convoi_info_t.o  build/mingw64/gui/convoy_item.o  build/mingw64/gui/curiosity_edit.o  build/mingw64/gui/curiositylist_frame_t.o  build/mingw64/gui/curiositylist_stats_t.o  build/mingw64/gui/depot_frame.o  build/mingw64/gui/depotlist_frame.o  build/mingw64/gui/enlarge_map_frame_t.o  build/mingw64/gui/extend_edit.o  build/mingw64/gui/fabrik_info.o  build/mingw64/gui/factory_chart.o  build/mingw64/gui/factory_edit.o  build/mingw64/gui/factorylist_frame_t.o  build/mingw64/gui/factorylist_stats_t.o  build/mingw64/gui/schedule_gui.o  build/mingw64/gui/goods_frame_t.o  build/mingw64/gui/goods_stats_t.o  build/mingw64/gui/ground_info.o  build/mingw64/gui/gui_frame.o  build/mingw64/gui/gui_theme.o  build/mingw64/gui/halt_detail.o  build/mingw64/gui/halt_info.o  build/mingw64/gui/halt_list_filter_frame.o  build/mingw64/gui/halt_list_frame.o  build/mingw64/gui/halt_list_stats.o  build/mingw64/gui/headquarter_info.o  build/mingw64/gui/help_frame.o  build/mingw64/gui/jump_frame.o  build/mingw64/gui/minimap.o  build/mingw64/gui/kennfarbe.o  build/mingw64/gui/label_info.o  build/mingw64/gui/labellist_frame_t.o  build/mingw64/gui/labellist_stats_t.o  build/mingw64/gui/line_class_manager.o  build/mingw64/gui/line_item.o  build/mingw64/gui/line_management_gui.o  build/mingw64/gui/load_relief_frame.o  build/mingw64/gui/loadfont_frame.o  build/mingw64/gui/loadsave_frame.o  build/mingw64/gui/map_frame.o  build/mingw64/gui/message_frame_t.o  build/mingw64/gui/message_option_t.o  build/mingw64/gui/message_stats_t.o  build/mingw64/gui/messagebox.o  build/mingw64/gui/money_frame.o  build/mingw64/gui/onewaysign_info.o  build/mingw64/gui/optionen.o  build/mingw64/gui/overtaking_mode.o  build/mingw64/gui/pakselector.o  build/mingw64/gui/password_frame.o  build/mingw64/gui/player_frame_t.o  build/mingw64/gui/privatesign_info.o  build/mingw64/gui/savegame_frame.o  build/mingw64/gui/scenario_frame.o  build/mingw64/gui/scenario_info.o  build/mingw64/gui/schedule_list.o  build/mingw64/gui/schiene_info.o  build/mingw64/gui/server_frame.o  build/mingw64/gui/settings_frame.o  build/mingw64/gui/settings_stats.o  build/mingw64/gui/signal_info.o  build/mingw64/gui/signal_spacing.o  build/mingw64/gui/signalboxlist_frame.o  build/mingw64/gui/simwin.o  build/mingw64/gui/sound_frame.o  build/mingw64/gui/sprachen.o  build/mingw64/gui/times_history.o  build/mingw64/gui/times_history_container.o  build/mingw64/gui/times_history_entry.o  build/mingw64/gui/city_info.o  build/mingw64/gui/station_building_select.o  build/mingw64/gui/themeselector.o  build/mingw64/gui/tool_selector.o  build/mingw64/gui/trafficlight_info.o  build/mingw64/gui/vehiclelist_frame.o  build/mingw64/gui/obj_info.o  build/mingw64/gui/vehicle_class_manager.o  build/mingw64/gui/welt.o  build/mingw64/network/checksum.o  build/mingw64/network/memory_rw.o  build/mingw64/network/network.o  build/mingw64/network/network_address.o  build/mingw64/network/network_cmd.o  build/mingw64/network/network_cmd_ingame.o  build/mingw64/network/network_cmd_scenario.o  build/mingw64/network/network_cmp_pakset.o  build/mingw64/network/network_file_transfer.o  build/mingw64/network/network_packet.o  build/mingw64/network/network_socket_list.o  build/mingw64/network/pakset_info.o  build/mingw64/network/pwd_hash.o  build/mingw64/old_blockmanager.o  build/mingw64/player/ai.o  build/mingw64/player/ai_goods.o  build/mingw64/player/ai_passenger.o  build/mingw64/player/finance.o  build/mingw64/player/simplay.o  build/mingw64/script/api_class.o  build/mingw64/script/api_function.o  build/mingw64/script/api_param.o  build/mingw64/script/api/api_city.o  build/mingw64/script/api/api_const.o  build/mingw64/script/api/api_control.o  build/mingw64/script/api/api_convoy.o  build/mingw64/script/api/api_gui.o  build/mingw64/script/api/api_factory.o  build/mingw64/script/api/api_halt.o  build/mingw64/script/api/api_include.o  build/mingw64/script/api/api_line.o  build/mingw64/script/api/api_map_objects.o  build/mingw64/script/api/api_obj_desc.o  build/mingw64/script/api/api_obj_desc_base.o  build/mingw64/script/api/api_player.o  build/mingw64/script/api/api_scenario.o  build/mingw64/script/api/api_schedule.o  build/mingw64/script/api/api_settings.o  build/mingw64/script/api/api_simple.o  build/mingw64/script/api/api_tiles.o  build/mingw64/script/api/api_world.o  build/mingw64/script/api/export_desc.o  build/mingw64/script/api/get_next.o  build/mingw64/script/dynamic_string.o  build/mingw64/script/export_objs.o  build/mingw64/script/script.o  build/mingw64/squirrel/sq_extensions.o  build/mingw64/squirrel/squirrel/sqapi.o  build/mingw64/squirrel/squirrel/sqclass.o  build/mingw64/squirrel/squirrel/sqdebug.o  build/mingw64/squirrel/squirrel/sqlexer.o  build/mingw64/squirrel/squirrel/sqobject.o  build/mingw64/squirrel/squirrel/sqtable.o  build/mingw64/squirrel/squirrel/sqbaselib.o  build/mingw64/squirrel/squirrel/sqcompiler.o  build/mingw64/squirrel/squirrel/sqfuncstate.o  build/mingw64/squirrel/squirrel/sqmem.o  build/mingw64/squirrel/squirrel/sqstate.o  build/mingw64/squirrel/squirrel/sqvm.o  build/mingw64/squirrel/sqstdlib/sqstdaux.o  build/mingw64/squirrel/sqstdlib/sqstdio.o  build/mingw64/squirrel/sqstdlib/sqstdrex.o  build/mingw64/squirrel/sqstdlib/sqstdstring.o  build/mingw64/squirrel/sqstdlib/sqstdblob.o  build/mingw64/squirrel/sqstdlib/sqstdmath.o  build/mingw64/squirrel/sqstdlib/sqstdstream.o  build/mingw64/squirrel/sqstdlib/sqstdsystem.o  build/mingw64/simcity.o  build/mingw64/simconvoi.o  build/mingw64/simdebug.o  build/mingw64/simdepot.o  build/mingw64/simobj.o  build/mingw64/simevent.o  build/mingw64/simfab.o  build/mingw64/simhalt.o  build/mingw64/siminteraction.o  build/mingw64/simintr.o  build/mingw64/simio.o  build/mingw64/simline.o  build/mingw64/simlinemgmt.o  build/mingw64/simloadingscreen.o  build/mingw64/simmain.o  build/mingw64/simmem.o  build/mingw64/simmenu.o  build/mingw64/simmesg.o  build/mingw64/simplan.o  build/mingw64/simsignalbox.o  build/mingw64/simskin.o  build/mingw64/simsound.o  build/mingw64/simticker.o  build/mingw64/simtool.o  build/mingw64/simware.o  build/mingw64/simworld.o  build/mingw64/sys/simsys.o  build/mingw64/unicode.o  build/mingw64/utils/cbuffer_t.o  build/mingw64/utils/csv.o  build/mingw64/utils/log.o  build/mingw64/utils/searchfolder.o  build/mingw64/utils/sha1.o  build/mingw64/utils/simrandom.o  build/mingw64/vehicle/simroadtraffic.o  build/mingw64/utils/simstring.o  build/mingw64/utils/simthread.o  build/mingw64/vehicle/movingobj.o  build/mingw64/vehicle/simpeople.o  build/mingw64/vehicle/simvehicle.o  build/mingw64/simunits.o  build/mingw64/convoy.o  build/mingw64/utils/float32e8_t.o  build/mingw64/path_explorer.o  build/mingw64/gui/components/gui_table.o  build/mingw64/gui/components/gui_convoy_assembler.o  build/mingw64/gui/components/gui_convoy_label.o  build/mingw64/gui/components/gui_convoy_formation.o  build/mingw64/gui/components/gui_convoy_payloadinfo.o  build/mingw64/gui/replace_frame.o  build/mingw64/dataobj/livery_scheme.o  build/mingw64/dataobj/replace_data.o  build/mingw64/sys/simsys_s2.o  build/mingw64/sound/sdl2_sound.o  build/mingw64/music/w32_midi.o  build/mingw64/simres.o -L/root/freetype-2.10.4/objs/.libs -L/root/miniupnpc/miniupnpc-2.1.20201016 -L/root/zstd/zstd/lib -L/root/zlib-source/zlib-1.2.11 -L/root/bzip64/bzip2-1.0.6 -L/usr/x86_64-w64-mingw32/lib/ -L/root/SDL2-2.0.7/build-win64/build/.libs -lmingw32 -lSDL2main -lSDL2 -mwindows -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -static-libgcc -static-libstdc++ -static -mwindows -lzstd -lpthread -lmingw32 -lgdi32 -lwinmm -lws2_32 -limm32 -lbz2 -lz -lbz2 -lz -lSDL2 -o build/mingw64/Simutrans-Extended.exe
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0xf18): undefined reference to `FT_Init_FreeType'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0xf35): undefined reference to `FT_New_Face'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0xf4c): undefined reference to `FT_Set_Pixel_Sizes'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0x1060): undefined reference to `FT_Get_Char_Index'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0x107d): undefined reference to `FT_Load_Glyph'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0x1094): undefined reference to `FT_Render_Glyph'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0x1149): undefined reference to `FT_Done_Face'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0x1153): undefined reference to `FT_Done_FreeType'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0x1184): undefined reference to `FT_Done_FreeType'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0x1357): undefined reference to `FT_Done_Face'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/display/font.o:font.cc:(.text+0x1361): undefined reference to `FT_Done_FreeType'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/gui/loadfont_frame.o:loadfont_frame.cc:(.text+0x20b): undefined reference to `FT_New_Face'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/gui/loadfont_frame.o:loadfont_frame.cc:(.text+0x21e): undefined reference to `FT_Get_Char_Index'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/gui/loadfont_frame.o:loadfont_frame.cc:(.text+0x22c): undefined reference to `FT_Done_Face'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/gui/loadfont_frame.o:loadfont_frame.cc:(.text+0x2d3): undefined reference to `FT_Get_Char_Index'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/gui/loadfont_frame.o:loadfont_frame.cc:(.text+0x635): undefined reference to `FT_Init_FreeType'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/gui/loadfont_frame.o:loadfont_frame.cc:(.text+0x6b1): undefined reference to `FT_New_Face'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/gui/loadfont_frame.o:loadfont_frame.cc:(.text+0x708): undefined reference to `FT_Done_Face'
/usr/bin/x86_64-w64-mingw32-ld: build/mingw64/gui/loadfont_frame.o:loadfont_frame.cc:(.text+0x725): undefined reference to `FT_Done_FreeType'
collect2: error: ld returned 1 exit status
make: *** [common.mk:27: build/mingw64/Simutrans-Extended.exe] Error 1

For reference, my config.mingw64 file is as follows:

Code: [Select]

#
# to compile:
# copy this file to config.default and adjust the settings
#

#BACKEND = allegro
#BACKEND = gdi
#BACKEND = opengl
#BACKEND = sdl
BACKEND = sdl2
#BACKEND = mixer_sdl
#BACKEND = posix

#COLOUR_DEPTH = 0
COLOUR_DEPTH = 16

#OSTYPE = amiga
#OSTYPE = beos
#OSTYPE = cygwin
#OSTYPE = freebsd
#OSTYPE = haiku
#OSTYPE = linux
#OSTYPE = mingw32
OSTYPE = mingw64
#OSTYPE = mac

#DEBUG = 3    # Level 1-3, higher number means more debug-friendly, see Makefile
OPTIMISE = 1  # Add umpteen optimisation flags
#PROFILE = 1  # Enable profiling
#PROFILE = 2  # Enable profiling with optimisation flags, can be used with `OPTIMISE = 1'

WITH_REVISION = 1 # adds the revision from svn; required for networkgames
# if you do not use SVN, add -DREVISION="1234" to the FLAGS below

#WIN32_CONSOLE = 1 # adds a console for windows debugging

# Set to 0 because I am currently unable to cross-compile a library for this: it seems as though the cross-compile
# settings are intended to produce a Windows .lib file for compiling the final code on Windows, rather than libraries
# for cross-compiling the final Windows code on Linux, and the documentation as to how to do this is lacking.
USE_FREETYPE = 0

# Currently not working for cross-compiling because I am unable to cross-compile a static library for this for some reason.
# This is probably non-essential.
#USE_UPNP = 1

USE_ZSTD = 1

MULTI_THREAD = 1 # Enable multithreading

# Define these as empty strings, if you don't have the respective config program
#ALLEGRO_CONFIG = allegro-config
#PNG_CONFIG     = pkg-config libpng
#SDL_CONFIG     = sdl-config
SDL2_CONFIG     = sdl2-config
FREETYPE_CONFIG =

VERBOSE = 1

# The following useful conditional compilation flags exist
#
# Needed to compile:
# USE_C: no assembler for copying (required for not using GCC on x86)
# SIM_BIG_ENDIAN: MUST be set for PPC/Motorola byte order! (old mac, amiga)
# NO_INTPTR_T: must be set if intptr_t is not available
#
# Changing appearance:
# USE_SOFTPOINTER: emulate mouse pointer (set automatically in Makefile)
#
# Useful for debugging:
# DEBUG_ROUTES: show routing calculation information in minimap
# SHOW_FORE_GRUND: show which objects are drawn as foreground
# DEBUG_FLUSH_BUFFER: show the dirty areas on the screen
# USE_VALGRIND_MEMCHECK: make valgrind-memcheck aware of the memory allocation stuff in dataobj/freelist
# SYSLOG: send debug output to syslog
#
# Following flags alter game engine (and are off for standard builds)
# OTTD_LIKE: Enables half height tiles and crossconnects all industries
# AUTOMATIC_BRIDGES and AUTOMATIC_TUNNELS: will be built also for player
# AUTOJOIN_PUBLIC: stations next to a public stop will be joined to it
# USE_DIFFERENT_WIND: different airplane approach directions over the map
# DESTINATION_CITYCARS: Citycars can have a destination (enabled automatically - cannot be disabled)
#
# In order to use the flags, add a line like this: (-Dxxx)
# FLAGS = -DUSE_C

# Output directories:
#
# use this put objects file in same directory, where the sources are (not recommended):
# ... otherwise defaults to 'build/default')
#
# BUILDDIR = $(shell pwd)
#
# use this to specifiy the target directory for the executable:
# .. otherwise defaults to BUILDDIR
#
# MAKEOBJ_PROGDIR = $(shell pwd)
# NETTOOL_PROGDIR = $(shell pwd)
# PROGDIR  = $(shell pwd)

# Add -g1 to FLAGS= to enable debugging information, but increase the file size.
FLAGS = -D_REENTRANT -DUSE_C -DALT_SDL_DIR -fno-delete-null-pointer-checks -fno-strict-aliasing -std=c++11 -I/root/freetype-2.10.4/include ->

# The below linkes pthread statically, but this is suspected of causing problems.
#-DPTW32_STATIC_LIB

LDFLAGS = -L/root/freetype-2.10.4/objs/.libs -L/root/miniupnpc/miniupnpc-2.1.20201016 -L/root/zstd/zstd/lib -L/root/zlib-source/zlib-1.2.11 >

CC=x86_64-w64-mingw32-gcc
CXX=x86_64-w64-mingw32-g++

Offline TurfIt

  • Dev Team, Coder/patcher
  • Devotee
  • *
  • Posts: 1440
Re: Incorporating changes from Standard
« Reply #283 on: December 09, 2020, 08:16:17 PM »
--- possibly missed edit above:
Can you post output from 'x86_64-w64-mingw32-gcc -v' and 'x86_64-w64-mingw32-ld --verbose'  (just searchdirs section near top of ld output...) Could help to see where your cross system dirs are.

---
verbose output shows indeed -lfreetype is not there. But that would be expected for config.mingw64 with USE_FREETYPE=0, but then the FT_* functions in font.cc shouldn't even be compiled with #ifdef USE_FREETYPE failing...
Are you trying to compile with freetype or not? And I trust you're running 'make CFG=mingw64' to actually use config.mingw64 instead of config.default.
Also, with FREETYPE_CONFIG= make sure no trailing characters....  "=", not "= ".  That got me with OSX and SDL2. grrr.


Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #284 on: December 09, 2020, 08:53:01 PM »
Thank you for that. I had not remembered that I had set USE_FREETYPE=0 earlier. I have now added a manual -lfreetype flag and modified the config file as follows (removing the trailing space after FREETYPE_CONFIG=):

Code: [Select]
  GNU nano 4.8                                                   config.mingw64
#
# to compile:
# copy this file to config.default and adjust the settings
#

#BACKEND = allegro
#BACKEND = gdi
#BACKEND = opengl
#BACKEND = sdl
BACKEND = sdl2
#BACKEND = mixer_sdl
#BACKEND = posix

#COLOUR_DEPTH = 0
COLOUR_DEPTH = 16

#OSTYPE = amiga
#OSTYPE = beos
#OSTYPE = cygwin
#OSTYPE = freebsd
#OSTYPE = haiku
#OSTYPE = linux
#OSTYPE = mingw32
OSTYPE = mingw64
#OSTYPE = mac

#DEBUG = 3    # Level 1-3, higher number means more debug-friendly, see Makefile
OPTIMISE = 1  # Add umpteen optimisation flags
#PROFILE = 1  # Enable profiling
#PROFILE = 2  # Enable profiling with optimisation flags, can be used with `OPTIMISE = 1'

WITH_REVISION = 1 # adds the revision from svn; required for networkgames
# if you do not use SVN, add -DREVISION="1234" to the FLAGS below

#WIN32_CONSOLE = 1 # adds a console for windows debugging

# Set to 0 because I am currently unable to cross-compile a library for this: it seems as though the cross-compile
# settings are intended to produce a Windows .lib file for compiling the final code on Windows, rather than libraries
# for cross-compiling the final Windows code on Linux, and the documentation as to how to do this is lacking.
USE_FREETYPE = 1

# Currently not working for cross-compiling because I am unable to cross-compile a static library for this for some reason.
# This is probably non-essential.
#USE_UPNP = 1

USE_ZSTD = 1

MULTI_THREAD = 1 # Enable multithreading

# Define these as empty strings, if you don't have the respective config program
#ALLEGRO_CONFIG = allegro-config
#PNG_CONFIG      = pkg-config libpng
#SDL_CONFIG     = sdl-config
SDL2_CONFIG     = sdl2-config
FREETYPE_CONFIG =

VERBOSE = 1

# The following useful conditional compilation flags exist
#
# Needed to compile:
# USE_C: no assembler for copying (required for not using GCC on x86)
# SIM_BIG_ENDIAN: MUST be set for PPC/Motorola byte order! (old mac, amiga)
# NO_INTPTR_T: must be set if intptr_t is not available
#
# Changing appearance:
# USE_SOFTPOINTER: emulate mouse pointer (set automatically in Makefile)
#
# Useful for debugging:
# DEBUG_ROUTES: show routing calculation information in minimap
# SHOW_FORE_GRUND: show which objects are drawn as foreground
# DEBUG_FLUSH_BUFFER: show the dirty areas on the screen
# USE_VALGRIND_MEMCHECK: make valgrind-memcheck aware of the memory allocation stuff in dataobj/freelist
# SYSLOG: send debug output to syslog
#
# Following flags alter game engine (and are off for standard builds)
# OTTD_LIKE: Enables half height tiles and crossconnects all industries
# AUTOMATIC_BRIDGES and AUTOMATIC_TUNNELS: will be built also for player
# AUTOJOIN_PUBLIC: stations next to a public stop will be joined to it
# USE_DIFFERENT_WIND: different airplane approach directions over the map
# DESTINATION_CITYCARS: Citycars can have a destination (enabled automatically - cannot be disabled)
#
# In order to use the flags, add a line like this: (-Dxxx)
# FLAGS = -DUSE_C

# Output directories:
#
# use this put objects file in same directory, where the sources are (not recommended):
# ... otherwise defaults to 'build/default')
#
# BUILDDIR = $(shell pwd)
#
# use this to specifiy the target directory for the executable:
# .. otherwise defaults to BUILDDIR
#
# MAKEOBJ_PROGDIR = $(shell pwd)
# NETTOOL_PROGDIR = $(shell pwd)
# PROGDIR  = $(shell pwd)

# Add -g1 to FLAGS= to enable debugging information, but increase the file size.
FLAGS = -D_REENTRANT -DUSE_C -DALT_SDL_DIR -fno-delete-null-pointer-checks -fno-strict-aliasing -std=c++11 -I/root/freetype-2.10.4/include ->

# The below linkes pthread statically, but this is suspected of causing problems.
#-DPTW32_STATIC_LIB

LDFLAGS = -L/root/freetype-2.10.4/objs/.libs -L/root/miniupnpc/miniupnpc-2.1.20201016 -L/root/zstd/zstd/lib -L/root/zlib-source/zlib-1.2.11 >

CC=x86_64-w64-mingw32-gcc
CXX=x86_64-w64-mingw32-g++

I can confirm that I am issuing the correct env CFG=mingw64 make command.

Having added -lfreetype to LDFLAGS, I get a different set of errors:

Code: [Select]
root@438242:/usr/share/games/nightly/simutrans-experimental# env CFG=mingw64 make
===> LD  build/mingw64/Simutrans-Extended.exe
x86_64-w64-mingw32-g++  build/mingw64/sys/simsys_w32_png.o  build/mingw64/sys/clipboard_w32.o  build/mingw64/bauer/brueckenbauer.o  build/mingw64/bauer/fabrikbauer.o  build/mingw64/bauer/hausbauer.o  build/mingw64/bauer/tunnelbauer.o  build/mingw64/bauer/vehikelbauer.o  build/mingw64/bauer/goods_manager.o  build/mingw64/bauer/wegbauer.o  build/mingw64/descriptor/image.o  build/mingw64/descriptor/bridge_desc.o  build/mingw64/descriptor/factory_desc.o  build/mingw64/descriptor/ground_desc.o  build/mingw64/descriptor/building_desc.o  build/mingw64/descriptor/obj_base_desc.o  build/mingw64/descriptor/reader/bridge_reader.o  build/mingw64/descriptor/reader/building_reader.o  build/mingw64/descriptor/reader/citycar_reader.o  build/mingw64/descriptor/reader/crossing_reader.o  build/mingw64/descriptor/reader/factory_reader.o  build/mingw64/descriptor/reader/good_reader.o  build/mingw64/descriptor/reader/ground_reader.o  build/mingw64/descriptor/reader/groundobj_reader.o  build/mingw64/descriptor/reader/image_reader.o  build/mingw64/descriptor/reader/imagelist2d_reader.o  build/mingw64/descriptor/reader/imagelist3d_reader.o  build/mingw64/descriptor/reader/imagelist_reader.o  build/mingw64/descriptor/reader/obj_reader.o  build/mingw64/descriptor/reader/pedestrian_reader.o  build/mingw64/descriptor/reader/roadsign_reader.o  build/mingw64/descriptor/reader/root_reader.o  build/mingw64/descriptor/reader/sim_reader.o  build/mingw64/descriptor/reader/skin_reader.o  build/mingw64/descriptor/reader/sound_reader.o  build/mingw64/descriptor/reader/text_reader.o  build/mingw64/descriptor/reader/tree_reader.o  build/mingw64/descriptor/reader/tunnel_reader.o  build/mingw64/descriptor/reader/vehicle_reader.o  build/mingw64/descriptor/reader/way_obj_reader.o  build/mingw64/descriptor/reader/way_reader.o  build/mingw64/descriptor/reader/xref_reader.o  build/mingw64/descriptor/sound_desc.o  build/mingw64/descriptor/tunnel_desc.o  build/mingw64/descriptor/vehicle_desc.o  build/mingw64/descriptor/goods_desc.o  build/mingw64/descriptor/way_desc.o  build/mingw64/boden/boden.o  build/mingw64/boden/brueckenboden.o  build/mingw64/boden/fundament.o  build/mingw64/boden/grund.o  build/mingw64/boden/monorailboden.o  build/mingw64/boden/tunnelboden.o  build/mingw64/boden/wasser.o  build/mingw64/boden/wege/kanal.o  build/mingw64/boden/wege/maglev.o  build/mingw64/boden/wege/monorail.o  build/mingw64/boden/wege/narrowgauge.o  build/mingw64/boden/wege/runway.o  build/mingw64/boden/wege/schiene.o  build/mingw64/boden/wege/strasse.o  build/mingw64/boden/wege/weg.o  build/mingw64/dataobj/crossing_logic.o  build/mingw64/dataobj/objlist.o  build/mingw64/dataobj/settings.o  build/mingw64/dataobj/schedule.o  build/mingw64/dataobj/freelist.o  build/mingw64/dataobj/gameinfo.o  build/mingw64/dataobj/height_map_loader.o  build/mingw64/dataobj/koord.o  build/mingw64/dataobj/koord3d.o  build/mingw64/dataobj/loadsave.o  build/mingw64/dataobj/marker.o  build/mingw64/dataobj/powernet.o  build/mingw64/dataobj/rect.o  build/mingw64/dataobj/ribi.o  build/mingw64/dataobj/route.o  build/mingw64/dataobj/scenario.o  build/mingw64/dataobj/tabfile.o  build/mingw64/dataobj/translator.o  build/mingw64/dataobj/environment.o  build/mingw64/obj/baum.o  build/mingw64/obj/bruecke.o  build/mingw64/obj/crossing.o  build/mingw64/obj/field.o  build/mingw64/obj/gebaeude.o  build/mingw64/obj/groundobj.o  build/mingw64/obj/label.o  build/mingw64/obj/leitung2.o  build/mingw64/obj/pillar.o  build/mingw64/obj/roadsign.o  build/mingw64/obj/signal.o  build/mingw64/obj/tunnel.o  build/mingw64/obj/wayobj.o  build/mingw64/obj/wolke.o  build/mingw64/obj/zeiger.o  build/mingw64/display/font.o  build/mingw64/display/simgraph16.o  build/mingw64/display/simview.o  build/mingw64/display/viewport.o  build/mingw64/finder/placefinder.o  build/mingw64/freight_list_sorter.o  build/mingw64/gui/ai_option_t.o  build/mingw64/gui/banner.o  build/mingw64/gui/baum_edit.o  build/mingw64/gui/base_info.o  build/mingw64/gui/citybuilding_edit.o  build/mingw64/gui/citylist_frame_t.o  build/mingw64/gui/citylist_stats_t.o  build/mingw64/gui/climates.o  build/mingw64/gui/display_settings.o  build/mingw64/gui/components/gui_aligned_container.o  build/mingw64/gui/components/gui_building.o  build/mingw64/gui/components/gui_button.o  build/mingw64/gui/components/gui_button_to_chart.o  build/mingw64/gui/components/gui_chart.o  build/mingw64/gui/components/gui_colorbox.o  build/mingw64/gui/components/gui_combobox.o  build/mingw64/gui/components/gui_container.o  build/mingw64/gui/components/gui_convoiinfo.o  build/mingw64/gui/components/gui_divider.o  build/mingw64/gui/components/gui_obj_view_t.o  build/mingw64/gui/components/gui_factory_storage_info.o  build/mingw64/gui/components/gui_halthandled_lines.o  build/mingw64/gui/components/gui_fixedwidth_textarea.o  build/mingw64/gui/components/gui_flowtext.o  build/mingw64/gui/components/gui_image.o  build/mingw64/gui/components/gui_image_list.o  build/mingw64/gui/components/gui_component.o  build/mingw64/gui/components/gui_label.o  build/mingw64/gui/components/gui_map_preview.o  build/mingw64/gui/components/gui_numberinput.o  build/mingw64/gui/components/gui_scrollbar.o  build/mingw64/gui/components/gui_scrolled_list.o  build/mingw64/gui/components/gui_scrollpane.o  build/mingw64/gui/components/gui_speedbar.o  build/mingw64/gui/components/gui_tab_panel.o  build/mingw64/gui/components/gui_textarea.o  build/mingw64/gui/components/gui_textinput.o  build/mingw64/gui/components/gui_world_view_t.o  build/mingw64/gui/convoi_detail_t.o  build/mingw64/gui/convoi_filter_frame.o  build/mingw64/gui/convoi_frame.o  build/mingw64/gui/convoi_info_t.o  build/mingw64/gui/convoy_item.o  build/mingw64/gui/curiosity_edit.o  build/mingw64/gui/curiositylist_frame_t.o  build/mingw64/gui/curiositylist_stats_t.o  build/mingw64/gui/depot_frame.o  build/mingw64/gui/depotlist_frame.o  build/mingw64/gui/enlarge_map_frame_t.o  build/mingw64/gui/extend_edit.o  build/mingw64/gui/fabrik_info.o  build/mingw64/gui/factory_chart.o  build/mingw64/gui/factory_edit.o  build/mingw64/gui/factorylist_frame_t.o  build/mingw64/gui/factorylist_stats_t.o  build/mingw64/gui/schedule_gui.o  build/mingw64/gui/goods_frame_t.o  build/mingw64/gui/goods_stats_t.o  build/mingw64/gui/ground_info.o  build/mingw64/gui/gui_frame.o  build/mingw64/gui/gui_theme.o  build/mingw64/gui/halt_detail.o  build/mingw64/gui/halt_info.o  build/mingw64/gui/halt_list_filter_frame.o  build/mingw64/gui/halt_list_frame.o  build/mingw64/gui/halt_list_stats.o  build/mingw64/gui/headquarter_info.o  build/mingw64/gui/help_frame.o  build/mingw64/gui/jump_frame.o  build/mingw64/gui/minimap.o  build/mingw64/gui/kennfarbe.o  build/mingw64/gui/label_info.o  build/mingw64/gui/labellist_frame_t.o  build/mingw64/gui/labellist_stats_t.o  build/mingw64/gui/line_class_manager.o  build/mingw64/gui/line_item.o  build/mingw64/gui/line_management_gui.o  build/mingw64/gui/load_relief_frame.o  build/mingw64/gui/loadfont_frame.o  build/mingw64/gui/loadsave_frame.o  build/mingw64/gui/map_frame.o  build/mingw64/gui/message_frame_t.o  build/mingw64/gui/message_option_t.o  build/mingw64/gui/message_stats_t.o  build/mingw64/gui/messagebox.o  build/mingw64/gui/money_frame.o  build/mingw64/gui/onewaysign_info.o  build/mingw64/gui/optionen.o  build/mingw64/gui/overtaking_mode.o  build/mingw64/gui/pakselector.o  build/mingw64/gui/password_frame.o  build/mingw64/gui/player_frame_t.o  build/mingw64/gui/privatesign_info.o  build/mingw64/gui/savegame_frame.o  build/mingw64/gui/scenario_frame.o  build/mingw64/gui/scenario_info.o  build/mingw64/gui/schedule_list.o  build/mingw64/gui/schiene_info.o  build/mingw64/gui/server_frame.o  build/mingw64/gui/settings_frame.o  build/mingw64/gui/settings_stats.o  build/mingw64/gui/signal_info.o  build/mingw64/gui/signal_spacing.o  build/mingw64/gui/signalboxlist_frame.o  build/mingw64/gui/simwin.o  build/mingw64/gui/sound_frame.o  build/mingw64/gui/sprachen.o  build/mingw64/gui/times_history.o  build/mingw64/gui/times_history_container.o  build/mingw64/gui/times_history_entry.o  build/mingw64/gui/city_info.o  build/mingw64/gui/station_building_select.o  build/mingw64/gui/themeselector.o  build/mingw64/gui/tool_selector.o  build/mingw64/gui/trafficlight_info.o  build/mingw64/gui/vehiclelist_frame.o  build/mingw64/gui/obj_info.o  build/mingw64/gui/vehicle_class_manager.o  build/mingw64/gui/welt.o  build/mingw64/network/checksum.o  build/mingw64/network/memory_rw.o  build/mingw64/network/network.o  build/mingw64/network/network_address.o  build/mingw64/network/network_cmd.o  build/mingw64/network/network_cmd_ingame.o  build/mingw64/network/network_cmd_scenario.o  build/mingw64/network/network_cmp_pakset.o  build/mingw64/network/network_file_transfer.o  build/mingw64/network/network_packet.o  build/mingw64/network/network_socket_list.o  build/mingw64/network/pakset_info.o  build/mingw64/network/pwd_hash.o  build/mingw64/old_blockmanager.o  build/mingw64/player/ai.o  build/mingw64/player/ai_goods.o  build/mingw64/player/ai_passenger.o  build/mingw64/player/finance.o  build/mingw64/player/simplay.o  build/mingw64/script/api_class.o  build/mingw64/script/api_function.o  build/mingw64/script/api_param.o  build/mingw64/script/api/api_city.o  build/mingw64/script/api/api_const.o  build/mingw64/script/api/api_control.o  build/mingw64/script/api/api_convoy.o  build/mingw64/script/api/api_gui.o  build/mingw64/script/api/api_factory.o  build/mingw64/script/api/api_halt.o  build/mingw64/script/api/api_include.o  build/mingw64/script/api/api_line.o  build/mingw64/script/api/api_map_objects.o  build/mingw64/script/api/api_obj_desc.o  build/mingw64/script/api/api_obj_desc_base.o  build/mingw64/script/api/api_player.o  build/mingw64/script/api/api_scenario.o  build/mingw64/script/api/api_schedule.o  build/mingw64/script/api/api_settings.o  build/mingw64/script/api/api_simple.o  build/mingw64/script/api/api_tiles.o  build/mingw64/script/api/api_world.o  build/mingw64/script/api/export_desc.o  build/mingw64/script/api/get_next.o  build/mingw64/script/dynamic_string.o  build/mingw64/script/export_objs.o  build/mingw64/script/script.o  build/mingw64/squirrel/sq_extensions.o  build/mingw64/squirrel/squirrel/sqapi.o  build/mingw64/squirrel/squirrel/sqclass.o  build/mingw64/squirrel/squirrel/sqdebug.o  build/mingw64/squirrel/squirrel/sqlexer.o  build/mingw64/squirrel/squirrel/sqobject.o  build/mingw64/squirrel/squirrel/sqtable.o  build/mingw64/squirrel/squirrel/sqbaselib.o  build/mingw64/squirrel/squirrel/sqcompiler.o  build/mingw64/squirrel/squirrel/sqfuncstate.o  build/mingw64/squirrel/squirrel/sqmem.o  build/mingw64/squirrel/squirrel/sqstate.o  build/mingw64/squirrel/squirrel/sqvm.o  build/mingw64/squirrel/sqstdlib/sqstdaux.o  build/mingw64/squirrel/sqstdlib/sqstdio.o  build/mingw64/squirrel/sqstdlib/sqstdrex.o  build/mingw64/squirrel/sqstdlib/sqstdstring.o  build/mingw64/squirrel/sqstdlib/sqstdblob.o  build/mingw64/squirrel/sqstdlib/sqstdmath.o  build/mingw64/squirrel/sqstdlib/sqstdstream.o  build/mingw64/squirrel/sqstdlib/sqstdsystem.o  build/mingw64/simcity.o  build/mingw64/simconvoi.o  build/mingw64/simdebug.o  build/mingw64/simdepot.o  build/mingw64/simobj.o  build/mingw64/simevent.o  build/mingw64/simfab.o  build/mingw64/simhalt.o  build/mingw64/siminteraction.o  build/mingw64/simintr.o  build/mingw64/simio.o  build/mingw64/simline.o  build/mingw64/simlinemgmt.o  build/mingw64/simloadingscreen.o  build/mingw64/simmain.o  build/mingw64/simmem.o  build/mingw64/simmenu.o  build/mingw64/simmesg.o  build/mingw64/simplan.o  build/mingw64/simsignalbox.o  build/mingw64/simskin.o  build/mingw64/simsound.o  build/mingw64/simticker.o  build/mingw64/simtool.o  build/mingw64/simware.o  build/mingw64/simworld.o  build/mingw64/sys/simsys.o  build/mingw64/unicode.o  build/mingw64/utils/cbuffer_t.o  build/mingw64/utils/csv.o  build/mingw64/utils/log.o  build/mingw64/utils/searchfolder.o  build/mingw64/utils/sha1.o  build/mingw64/utils/simrandom.o  build/mingw64/vehicle/simroadtraffic.o  build/mingw64/utils/simstring.o  build/mingw64/utils/simthread.o  build/mingw64/vehicle/movingobj.o  build/mingw64/vehicle/simpeople.o  build/mingw64/vehicle/simvehicle.o  build/mingw64/simunits.o  build/mingw64/convoy.o  build/mingw64/utils/float32e8_t.o  build/mingw64/path_explorer.o  build/mingw64/gui/components/gui_table.o  build/mingw64/gui/components/gui_convoy_assembler.o  build/mingw64/gui/components/gui_convoy_label.o  build/mingw64/gui/components/gui_convoy_formation.o  build/mingw64/gui/components/gui_convoy_payloadinfo.o  build/mingw64/gui/replace_frame.o  build/mingw64/dataobj/livery_scheme.o  build/mingw64/dataobj/replace_data.o  build/mingw64/sys/simsys_s2.o  build/mingw64/sound/sdl2_sound.o  build/mingw64/music/w32_midi.o  build/mingw64/simres.o -L/root/freetype-2.10.4/objs/.libs -L/root/miniupnpc/miniupnpc-2.1.20201016 -L/root/zstd/zstd/lib -L/root/zlib-source/zlib-1.2.11 -L/root/bzip64/bzip2-1.0.6 -L/usr/x86_64-w64-mingw32/lib/ -L/root/SDL2-2.0.7/build-win64/build/.libs -lmingw32 -lSDL2main -lSDL2 -mwindows -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lfreetype -static-libgcc -static-libstdc++ -static -mwindows -lfreetype -lzstd -lpthread -lmingw32 -lgdi32 -lwinmm -lws2_32 -limm32 -lbz2 -lz -lbz2 -lz -lSDL2 -o build/mingw64/Simutrans-Extended.exe
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/objs/.libs/libfreetype.a(sfnt.o): in function `Load_SBit_Png':
/root/freetype-2.10.4/src/sfnt/pngshim.c:295: undefined reference to `png_create_read_struct'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:305: undefined reference to `png_create_info_struct'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:313: undefined reference to `png_set_longjmp_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:446: undefined reference to `png_destroy_read_struct'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:319: undefined reference to `png_set_read_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:321: undefined reference to `png_read_info'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:322: undefined reference to `png_get_IHDR'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:360: undefined reference to `png_set_expand_gray_1_2_4_to_8'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:367: undefined reference to `png_get_valid'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:382: undefined reference to `png_set_interlace_handling'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:384: undefined reference to `png_set_filler'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:387: undefined reference to `png_read_update_info'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:388: undefined reference to `png_get_IHDR'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:410: undefined reference to `png_set_read_user_transform_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:439: undefined reference to `png_read_image'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:443: undefined reference to `png_read_end'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:379: undefined reference to `png_set_gray_to_rgb'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:374: undefined reference to `png_set_packing'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:368: undefined reference to `png_set_tRNS_to_alpha'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:371: undefined reference to `png_set_strip_16'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:354: undefined reference to `png_set_palette_to_rgb'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:415: undefined reference to `png_set_read_user_transform_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:309: undefined reference to `png_destroy_read_struct'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/objs/.libs/libfreetype.a(sfnt.o): in function `error_callback':
/root/freetype-2.10.4/src/sfnt/pngshim.c:199: undefined reference to `png_get_error_ptr'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:206: undefined reference to `png_set_longjmp_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/objs/.libs/libfreetype.a(sfnt.o): in function `read_data_from_FT_Stream':
/root/freetype-2.10.4/src/sfnt/pngshim.c:230: undefined reference to `png_get_io_ptr'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:236: undefined reference to `png_get_error_ptr'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:240: undefined reference to `png_error'
collect2: error: ld returned 1 exit status
make: *** [common.mk:27: build/mingw64/Simutrans-Extended.exe] Error 1

This suggests that freetype is having difficulties with a png library, which is odd, since it appears to compile the libraries.

The output of the command to which you referred is:

Code: [Select]
root@438242:/usr/share/games/nightly/simutrans-experimental# x86_64-w64-mingw32-gcc -v' and 'x86_64-w64-mingw32-ld --verbose
Using built-in specs.
COLLECT_GCC=x86_64-w64-mingw32-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/lto-wrapper
x86_64-w64-mingw32-gcc: error: unrecognized command line option ‘-v and x86_64-w64-mingw32-ld’
Target: x86_64-w64-mingw32
Configured with: ../../src/configure --build=x86_64-linux-gnu --prefix=/usr --includedir='/usr/include' --mandir='/usr/share/man' --infodir='/usr/share/info' --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir='/usr/lib/x86_64-linux-gnu' --libexecdir='/usr/lib/x86_64-linux-gnu' --disable-maintainer-mode --disable-dependency-tracking --prefix=/usr --enable-shared --enable-static --disable-multilib --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --libdir=/usr/lib --enable-libstdcxx-time=yes --with-tune=generic --with-headers=/usr/x86_64-w64-mingw32/include --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libgomp --enable-languages=c,c++,fortran,objc,obj-c++,ada --enable-lto --enable-threads=win32 --program-suffix=-win32 --program-prefix=x86_64-w64-mingw32- --target=x86_64-w64-mingw32 --with-as=/usr/bin/x86_64-w64-mingw32-as --with-ld=/usr/bin/x86_64-w64-mingw32-ld --enable-libatomic --enable-libstdcxx-filesystem-ts=yes --enable-dependency-tracking
Thread model: win32
gcc version 9.3-win32 20200320 (GCC)

To clarify, I am indeed trying to compile with Freetype. I have been able to compile successfully without freetype, but I believe that this loses significant functionality for users of Japanese character sets, so this may be of some importance given the popularity of Simutrans in Japan.

Offline TurfIt

  • Dev Team, Coder/patcher
  • Devotee
  • *
  • Posts: 1440
Re: Incorporating changes from Standard
« Reply #285 on: December 09, 2020, 09:38:00 PM »
Well, if you want to statically link a library, you need to statically link all its dependents too... and dependents of dependents, and.....  and then all in the correct order too. fun. Hence why config scripts or pkg-config exists.
You're missing libpng.

As an example, on MSYS2 MinGW64, dynamic:
Code: [Select]
$ pkg-config freetype2 --libs
-LC:/msys64/mingw64/lib -lfreetype
Static:
Code: [Select]
$ pkg-config freetype2 --libs --static
-LC:/msys64/mingw64/lib -lfreetype -LC:/msys64/mingw64/lib -lz -lbz2 -lpng16 -lz -lharfbuzz -lm -lusp10 -lgdi32 -lrpcrt4 -ldwrite -LC:/msys64/mingw64/lib -lgraphite2 -lglib-2.0 -lintl -lws2_32 -lole32 -lwinmm -lshlwapi -pthread -lm -LC:/msys64/mingw64/lib -lpcre -lbrotlidec -LC:/msys64/mingw64/lib -lbrotlicommon

You can look in the freetype-2.10.4\builds\unix\freetype2.pc file after building to see what is required. But you have to follow the dependents manually in their pc files. I would expect to find them in /usr/x86_64-w64-mingw32/lib/pkgconfig/*.pc  if available.


This suggests that freetype is having difficulties with a png library, which is odd, since it appears to compile the libraries.
Sort of.
Code: [Select]
checking for LIBPNG... no
checking for libpng-config... yes

Library configuration:
  libpng:        yes (libpng-config)
Where is freetype2 ./configure finding libpng-config? I have a feeling it's finding the x86_64-linux-gnu version, and not one for x86_64-w64-mingw32. But the headers are likely the same, so you can still build it.
I  presume you don't have a cross version of png installed 'normally' i.e. in /usr/x86_64-w64-mingw32/lib and /usr/x86_64-w64-mingw32/include. else it would say checking for LIBPNG... yes.

The output of the command to which you referred is:
That was actually two commands, compiler, and linker...  but it does show your cross environment prefix is /usr/x86_64-w64-mingw32.
Use that as --prefix when running configures and make installs and you should end up with cross libraries in the 'correct' locations.

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #286 on: December 09, 2020, 10:14:46 PM »
I have done some testing of zstd in the new build - I will test and reply to TurfIt's suggestions shortly, but I thought that it would be helpful to record the testing first.

On my system, with the Bridgewater-Brunel saved game from the in-game year 1940, the save took ~36 seconds with zlib and ~23 seconds with zstd with the new build, and ~41 seconds with zlib and the old build (which I suspect has different compression level defaults; I did not change the compression levels).

This suggests that the cross compiled zstd does work effectively to reduce save times - I should be interested to see what effect that this has on the saved games on the server, where saving takes much longer than it does on my system.

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #287 on: December 09, 2020, 10:50:55 PM »
Further work on attempting to build with Freetype follows.

I executed the following commands:

Code: [Select]
root@438242:~/freetype-2.10.4# pkg-config freetype2 --libs --static
-L/usr/local/lib -lfreetype -lz -lpng15 -lm -lz -lm
root@438242:~/freetype-2.10.4# ./configure --host=x86_64-w64-mingw32 --without-harfbuzz

and generated the following output:

Code: [Select]
FreeType build system -- automatic system detection

The following settings are used:

  platform                    unix
  compiler                    cc
  configuration directory     ./builds/unix
  configuration rules         ./builds/unix/unix.mk

If this does not correspond to your system or settings please remove the file
`config.mk' from this directory then read the INSTALL file for help.

Otherwise, simply type `make' again to build the library,
or `make refdoc' to build the API reference (this needs Python >= 3.5).

cd builds/unix; \
        ./configure  '--host=x86_64-w64-mingw32' '--without-harfbuzz'
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-w64-mingw32
checking for x86_64-w64-mingw32-gcc... x86_64-w64-mingw32-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether x86_64-w64-mingw32-gcc accepts -g... yes
checking for x86_64-w64-mingw32-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... x86_64-w64-mingw32-gcc -E
checking for x86_64-w64-mingw32-pkg-config... /usr/bin/x86_64-w64-mingw32-pkg-config
checking pkg-config is at least version 0.24... Please install dpkg-dev to use pkg-config when cross-building
no
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by x86_64-w64-mingw32-gcc... /usr/bin/x86_64-w64-mingw32-ld
checking if the linker (/usr/bin/x86_64-w64-mingw32-ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/x86_64-w64-mingw32-nm -B
checking the name lister (/usr/bin/x86_64-w64-mingw32-nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-w64-mingw32 format... func_convert_file_nix_to_w32
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/x86_64-w64-mingw32-ld option to reload object files... -r
checking for x86_64-w64-mingw32-objdump... x86_64-w64-mingw32-objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for x86_64-w64-mingw32-dlltool... x86_64-w64-mingw32-dlltool
checking how to associate runtime and link libraries... func_cygming_dll_for_implib
checking for x86_64-w64-mingw32-ar... x86_64-w64-mingw32-ar
checking for archiver @FILE support... @
checking for x86_64-w64-mingw32-strip... x86_64-w64-mingw32-strip
checking for x86_64-w64-mingw32-ranlib... x86_64-w64-mingw32-ranlib
checking for gawk... no
checking for mawk... mawk
checking command to parse /usr/bin/x86_64-w64-mingw32-nm -B output from x86_64-w64-mingw32-gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-w64-mingw32-mt... no
checking for mt... mt
configure: WARNING: using cross tools not prefixed with host triplet
checking if mt is a manifest tool... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... no
checking for x86_64-w64-mingw32-as... x86_64-w64-mingw32-as
checking for x86_64-w64-mingw32-dlltool... (cached) x86_64-w64-mingw32-dlltool
checking for x86_64-w64-mingw32-objdump... (cached) x86_64-w64-mingw32-objdump
checking for objdir... .libs
checking if x86_64-w64-mingw32-gcc supports -fno-rtti -fno-exceptions... no
checking for x86_64-w64-mingw32-gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if x86_64-w64-mingw32-gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if x86_64-w64-mingw32-gcc static flag -static works... yes
checking if x86_64-w64-mingw32-gcc supports -c -o file.o... yes
checking if x86_64-w64-mingw32-gcc supports -c -o file.o... (cached) yes
checking whether the x86_64-w64-mingw32-gcc linker (/usr/bin/x86_64-w64-mingw32-ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking windows.h usability... yes
checking windows.h presence... yes
checking for windows.h... yes
checking for x86_64-w64-mingw32-windres... x86_64-w64-mingw32-windres
checking for x86_64-pc-linux-gnu-gcc... no
checking for gcc... gcc
checking for gcc... (cached) gcc
checking for suffix of native executables...
checking for a BSD-compatible install... /usr/bin/install -c
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for ANSI C header files... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking size of int... 4
checking size of long... 4
checking for unsigned long long int... yes
checking for long long int... yes
checking whether cpp computation of bit length in ftconfig.h.in works... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... no
checking for memcpy... yes
checking for memmove... yes
checking for -fvisibility=hidden compiler flag... yes
checking for ZLIB... no
checking for gzsetparams in -lz... no
checking for BZIP2... no
checking for BZ2_bzDecompress in -lbz2... no
checking for LIBPNG... no
checking for libpng-config... yes
checking for BROTLI... no
checking for library containing clock_gettime... no
checking for python3... python3
checking for python version... 3.8.5
checking for `docwriter' Python module... no
configure: creating ./config.status
config.status: creating ftoption.h
config.status: creating unix-cc.mk
config.status: creating unix-def.mk
config.status: creating ftconfig.h
config.status: ftconfig.h is unchanged
config.status: executing libtool commands
configure:

Library configuration:
  external zlib: no
  bzip2:         no
  libpng:        yes (libpng-config)
  harfbuzz:      no
  brotli:        no

configure: WARNING:
  `make refdoc' will fail since pip package `docwriter' is not installed.
  To install, run `python3 -m pip install docwriter', or to use a Python
  virtual environment, run `make refdoc-venv' (requires pip package
  `virtualenv'). These operations require Python >= 3.5.

"make" then generated the following output (truncated to the last section otherwise this would be excessively long):

Code: [Select]
./builds/unix/libtool --mode=link x86_64-w64-mingw32-gcc -o /root/freetype-2.10.4/objs/libfreetype.la  /root/freetype-2.10.4/objs/ftsystem.lo /root/freetype-2.10.4/objs/ftdebug.lo /root/freetype-2.10.4/objs/ftinit.lo /root/freetype-2.10.4/objs/ftver.lo /root/freetype-2.10.4/objs/ftbase.lo /root/freetype-2.10.4/objs/ftbbox.lo /root/freetype-2.10.4/objs/ftbdf.lo /root/freetype-2.10.4/objs/ftbitmap.lo /root/freetype-2.10.4/objs/ftcid.lo /root/freetype-2.10.4/objs/ftfstype.lo /root/freetype-2.10.4/objs/ftgasp.lo /root/freetype-2.10.4/objs/ftglyph.lo /root/freetype-2.10.4/objs/ftgxval.lo /root/freetype-2.10.4/objs/ftmm.lo /root/freetype-2.10.4/objs/ftotval.lo /root/freetype-2.10.4/objs/ftpatent.lo /root/freetype-2.10.4/objs/ftpfr.lo /root/freetype-2.10.4/objs/ftstroke.lo /root/freetype-2.10.4/objs/ftsynth.lo /root/freetype-2.10.4/objs/fttype1.lo /root/freetype-2.10.4/objs/ftwinfnt.lo /root/freetype-2.10.4/objs/truetype.lo /root/freetype-2.10.4/objs/type1.lo /root/freetype-2.10.4/objs/cff.lo /root/freetype-2.10.4/objs/type1cid.lo /root/freetype-2.10.4/objs/pfr.lo /root/freetype-2.10.4/objs/type42.lo /root/freetype-2.10.4/objs/winfnt.lo /root/freetype-2.10.4/objs/pcf.lo /root/freetype-2.10.4/objs/bdf.lo /root/freetype-2.10.4/objs/sfnt.lo /root/freetype-2.10.4/objs/autofit.lo /root/freetype-2.10.4/objs/pshinter.lo /root/freetype-2.10.4/objs/raster.lo /root/freetype-2.10.4/objs/smooth.lo /root/freetype-2.10.4/objs/ftcache.lo /root/freetype-2.10.4/objs/ftgzip.lo /root/freetype-2.10.4/objs/ftlzw.lo /root/freetype-2.10.4/objs/ftbzip2.lo /root/freetype-2.10.4/objs/psaux.lo /root/freetype-2.10.4/objs/psnames.lo -rpath /usr/local/lib -version-info 23:4:17 -L/usr/local/lib -lpng15 -no-undefined -export-symbols /root/freetype-2.10.4/objs/ftexport.sym
libtool: link: rm -fr  /root/freetype-2.10.4/objs/.libs/libfreetype.a /root/freetype-2.10.4/objs/.libs/libfreetype.la /root/freetype-2.10.4/objs/.libs/libfreetype.lai

*** Warning: linker path does not have real file for library -lz.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libz but no candidates were found. (...for file magic test)

*** Warning: linker path does not have real file for library -lm.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libm and none of the candidates passed a file format test
*** using a file magic. Last file checked: /usr/x86_64-w64-mingw32/lib/libm.a
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.

*** Since this library must not contain undefined symbols,
*** because either the platform does not support them or
*** it was explicitly requested with -no-undefined,
*** libtool will only create a static version of it.
libtool: link: x86_64-w64-mingw32-ar cru /root/freetype-2.10.4/objs/.libs/libfreetype.a  /root/freetype-2.10.4/objs/ftsystem.o /root/freetype-2.10.4/objs/ftdebug.o /root/freetype-2.10.4/objs/ftinit.o /root/freetype-2.10.4/objs/ftver.o /root/freetype-2.10.4/objs/ftbase.o /root/freetype-2.10.4/objs/ftbbox.o /root/freetype-2.10.4/objs/ftbdf.o /root/freetype-2.10.4/objs/ftbitmap.o /root/freetype-2.10.4/objs/ftcid.o /root/freetype-2.10.4/objs/ftfstype.o /root/freetype-2.10.4/objs/ftgasp.o /root/freetype-2.10.4/objs/ftglyph.o /root/freetype-2.10.4/objs/ftgxval.o /root/freetype-2.10.4/objs/ftmm.o /root/freetype-2.10.4/objs/ftotval.o /root/freetype-2.10.4/objs/ftpatent.o /root/freetype-2.10.4/objs/ftpfr.o /root/freetype-2.10.4/objs/ftstroke.o /root/freetype-2.10.4/objs/ftsynth.o /root/freetype-2.10.4/objs/fttype1.o /root/freetype-2.10.4/objs/ftwinfnt.o /root/freetype-2.10.4/objs/truetype.o /root/freetype-2.10.4/objs/type1.o /root/freetype-2.10.4/objs/cff.o /root/freetype-2.10.4/objs/type1cid.o /root/freetype-2.10.4/objs/pfr.o /root/freetype-2.10.4/objs/type42.o /root/freetype-2.10.4/objs/winfnt.o /root/freetype-2.10.4/objs/pcf.o /root/freetype-2.10.4/objs/bdf.o /root/freetype-2.10.4/objs/sfnt.o /root/freetype-2.10.4/objs/autofit.o /root/freetype-2.10.4/objs/pshinter.o /root/freetype-2.10.4/objs/raster.o /root/freetype-2.10.4/objs/smooth.o /root/freetype-2.10.4/objs/ftcache.o /root/freetype-2.10.4/objs/ftgzip.o /root/freetype-2.10.4/objs/ftlzw.o /root/freetype-2.10.4/objs/ftbzip2.o /root/freetype-2.10.4/objs/psaux.o /root/freetype-2.10.4/objs/psnames.o
x86_64-w64-mingw32-ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: x86_64-w64-mingw32-ranlib /root/freetype-2.10.4/objs/.libs/libfreetype.a
libtool: link: ( cd "/root/freetype-2.10.4/objs/.libs" && rm -f "libfreetype.la" && ln -s "../libfreetype.la" "libfreetype.la" )

I do not know whether the -lm and -lz warnings are significant in this context. Attempting to compile the cross-compiled version, I get the following output with the same errors as before:

Code: [Select]
===> LD  build/mingw64/Simutrans-Extended.exe
x86_64-w64-mingw32-g++  build/mingw64/sys/simsys_w32_png.o  build/mingw64/sys/clipboard_w32.o  build/mingw64/bauer/brueckenbauer.o  build/mingw64/bauer/fabrikbauer.o  build/mingw64/bauer/hausbauer.o  build/mingw64/bauer/tunnelbauer.o  build/mingw64/bauer/vehikelbauer.o  build/mingw64/bauer/goods_manager.o  build/mingw64/bauer/wegbauer.o  build/mingw64/descriptor/image.o  build/mingw64/descriptor/bridge_desc.o  build/mingw64/descriptor/factory_desc.o  build/mingw64/descriptor/ground_desc.o  build/mingw64/descriptor/building_desc.o  build/mingw64/descriptor/obj_base_desc.o  build/mingw64/descriptor/reader/bridge_reader.o  build/mingw64/descriptor/reader/building_reader.o  build/mingw64/descriptor/reader/citycar_reader.o  build/mingw64/descriptor/reader/crossing_reader.o  build/mingw64/descriptor/reader/factory_reader.o  build/mingw64/descriptor/reader/good_reader.o  build/mingw64/descriptor/reader/ground_reader.o  build/mingw64/descriptor/reader/groundobj_reader.o  build/mingw64/descriptor/reader/image_reader.o  build/mingw64/descriptor/reader/imagelist2d_reader.o  build/mingw64/descriptor/reader/imagelist3d_reader.o  build/mingw64/descriptor/reader/imagelist_reader.o  build/mingw64/descriptor/reader/obj_reader.o  build/mingw64/descriptor/reader/pedestrian_reader.o  build/mingw64/descriptor/reader/roadsign_reader.o  build/mingw64/descriptor/reader/root_reader.o  build/mingw64/descriptor/reader/sim_reader.o  build/mingw64/descriptor/reader/skin_reader.o  build/mingw64/descriptor/reader/sound_reader.o  build/mingw64/descriptor/reader/text_reader.o  build/mingw64/descriptor/reader/tree_reader.o  build/mingw64/descriptor/reader/tunnel_reader.o  build/mingw64/descriptor/reader/vehicle_reader.o  build/mingw64/descriptor/reader/way_obj_reader.o  build/mingw64/descriptor/reader/way_reader.o  build/mingw64/descriptor/reader/xref_reader.o  build/mingw64/descriptor/sound_desc.o  build/mingw64/descriptor/tunnel_desc.o  build/mingw64/descriptor/vehicle_desc.o  build/mingw64/descriptor/goods_desc.o  build/mingw64/descriptor/way_desc.o  build/mingw64/boden/boden.o  build/mingw64/boden/brueckenboden.o  build/mingw64/boden/fundament.o  build/mingw64/boden/grund.o  build/mingw64/boden/monorailboden.o  build/mingw64/boden/tunnelboden.o  build/mingw64/boden/wasser.o  build/mingw64/boden/wege/kanal.o  build/mingw64/boden/wege/maglev.o  build/mingw64/boden/wege/monorail.o  build/mingw64/boden/wege/narrowgauge.o  build/mingw64/boden/wege/runway.o  build/mingw64/boden/wege/schiene.o  build/mingw64/boden/wege/strasse.o  build/mingw64/boden/wege/weg.o  build/mingw64/dataobj/crossing_logic.o  build/mingw64/dataobj/objlist.o  build/mingw64/dataobj/settings.o  build/mingw64/dataobj/schedule.o  build/mingw64/dataobj/freelist.o  build/mingw64/dataobj/gameinfo.o  build/mingw64/dataobj/height_map_loader.o  build/mingw64/dataobj/koord.o  build/mingw64/dataobj/koord3d.o  build/mingw64/dataobj/loadsave.o  build/mingw64/dataobj/marker.o  build/mingw64/dataobj/powernet.o  build/mingw64/dataobj/rect.o  build/mingw64/dataobj/ribi.o  build/mingw64/dataobj/route.o  build/mingw64/dataobj/scenario.o  build/mingw64/dataobj/tabfile.o  build/mingw64/dataobj/translator.o  build/mingw64/dataobj/environment.o  build/mingw64/obj/baum.o  build/mingw64/obj/bruecke.o  build/mingw64/obj/crossing.o  build/mingw64/obj/field.o  build/mingw64/obj/gebaeude.o  build/mingw64/obj/groundobj.o  build/mingw64/obj/label.o  build/mingw64/obj/leitung2.o  build/mingw64/obj/pillar.o  build/mingw64/obj/roadsign.o  build/mingw64/obj/signal.o  build/mingw64/obj/tunnel.o  build/mingw64/obj/wayobj.o  build/mingw64/obj/wolke.o  build/mingw64/obj/zeiger.o  build/mingw64/display/font.o  build/mingw64/display/simgraph16.o  build/mingw64/display/simview.o  build/mingw64/display/viewport.o  build/mingw64/finder/placefinder.o  build/mingw64/freight_list_sorter.o  build/mingw64/gui/ai_option_t.o  build/mingw64/gui/banner.o  build/mingw64/gui/baum_edit.o  build/mingw64/gui/base_info.o  build/mingw64/gui/citybuilding_edit.o  build/mingw64/gui/citylist_frame_t.o  build/mingw64/gui/citylist_stats_t.o  build/mingw64/gui/climates.o  build/mingw64/gui/display_settings.o  build/mingw64/gui/components/gui_aligned_container.o  build/mingw64/gui/components/gui_building.o  build/mingw64/gui/components/gui_button.o  build/mingw64/gui/components/gui_button_to_chart.o  build/mingw64/gui/components/gui_chart.o  build/mingw64/gui/components/gui_colorbox.o  build/mingw64/gui/components/gui_combobox.o  build/mingw64/gui/components/gui_container.o  build/mingw64/gui/components/gui_convoiinfo.o  build/mingw64/gui/components/gui_divider.o  build/mingw64/gui/components/gui_obj_view_t.o  build/mingw64/gui/components/gui_factory_storage_info.o  build/mingw64/gui/components/gui_halthandled_lines.o  build/mingw64/gui/components/gui_fixedwidth_textarea.o  build/mingw64/gui/components/gui_flowtext.o  build/mingw64/gui/components/gui_image.o  build/mingw64/gui/components/gui_image_list.o  build/mingw64/gui/components/gui_component.o  build/mingw64/gui/components/gui_label.o  build/mingw64/gui/components/gui_map_preview.o  build/mingw64/gui/components/gui_numberinput.o  build/mingw64/gui/components/gui_scrollbar.o  build/mingw64/gui/components/gui_scrolled_list.o  build/mingw64/gui/components/gui_scrollpane.o  build/mingw64/gui/components/gui_speedbar.o  build/mingw64/gui/components/gui_tab_panel.o  build/mingw64/gui/components/gui_textarea.o  build/mingw64/gui/components/gui_textinput.o  build/mingw64/gui/components/gui_world_view_t.o  build/mingw64/gui/convoi_detail_t.o  build/mingw64/gui/convoi_filter_frame.o  build/mingw64/gui/convoi_frame.o  build/mingw64/gui/convoi_info_t.o  build/mingw64/gui/convoy_item.o  build/mingw64/gui/curiosity_edit.o  build/mingw64/gui/curiositylist_frame_t.o  build/mingw64/gui/curiositylist_stats_t.o  build/mingw64/gui/depot_frame.o  build/mingw64/gui/depotlist_frame.o  build/mingw64/gui/enlarge_map_frame_t.o  build/mingw64/gui/extend_edit.o  build/mingw64/gui/fabrik_info.o  build/mingw64/gui/factory_chart.o  build/mingw64/gui/factory_edit.o  build/mingw64/gui/factorylist_frame_t.o  build/mingw64/gui/factorylist_stats_t.o  build/mingw64/gui/schedule_gui.o  build/mingw64/gui/goods_frame_t.o  build/mingw64/gui/goods_stats_t.o  build/mingw64/gui/ground_info.o  build/mingw64/gui/gui_frame.o  build/mingw64/gui/gui_theme.o  build/mingw64/gui/halt_detail.o  build/mingw64/gui/halt_info.o  build/mingw64/gui/halt_list_filter_frame.o  build/mingw64/gui/halt_list_frame.o  build/mingw64/gui/halt_list_stats.o  build/mingw64/gui/headquarter_info.o  build/mingw64/gui/help_frame.o  build/mingw64/gui/jump_frame.o  build/mingw64/gui/minimap.o  build/mingw64/gui/kennfarbe.o  build/mingw64/gui/label_info.o  build/mingw64/gui/labellist_frame_t.o  build/mingw64/gui/labellist_stats_t.o  build/mingw64/gui/line_class_manager.o  build/mingw64/gui/line_item.o  build/mingw64/gui/line_management_gui.o  build/mingw64/gui/load_relief_frame.o  build/mingw64/gui/loadfont_frame.o  build/mingw64/gui/loadsave_frame.o  build/mingw64/gui/map_frame.o  build/mingw64/gui/message_frame_t.o  build/mingw64/gui/message_option_t.o  build/mingw64/gui/message_stats_t.o  build/mingw64/gui/messagebox.o  build/mingw64/gui/money_frame.o  build/mingw64/gui/onewaysign_info.o  build/mingw64/gui/optionen.o  build/mingw64/gui/overtaking_mode.o  build/mingw64/gui/pakselector.o  build/mingw64/gui/password_frame.o  build/mingw64/gui/player_frame_t.o  build/mingw64/gui/privatesign_info.o  build/mingw64/gui/savegame_frame.o  build/mingw64/gui/scenario_frame.o  build/mingw64/gui/scenario_info.o  build/mingw64/gui/schedule_list.o  build/mingw64/gui/schiene_info.o  build/mingw64/gui/server_frame.o  build/mingw64/gui/settings_frame.o  build/mingw64/gui/settings_stats.o  build/mingw64/gui/signal_info.o  build/mingw64/gui/signal_spacing.o  build/mingw64/gui/signalboxlist_frame.o  build/mingw64/gui/simwin.o  build/mingw64/gui/sound_frame.o  build/mingw64/gui/sprachen.o  build/mingw64/gui/times_history.o  build/mingw64/gui/times_history_container.o  build/mingw64/gui/times_history_entry.o  build/mingw64/gui/city_info.o  build/mingw64/gui/station_building_select.o  build/mingw64/gui/themeselector.o  build/mingw64/gui/tool_selector.o  build/mingw64/gui/trafficlight_info.o  build/mingw64/gui/vehiclelist_frame.o  build/mingw64/gui/obj_info.o  build/mingw64/gui/vehicle_class_manager.o  build/mingw64/gui/welt.o  build/mingw64/network/checksum.o  build/mingw64/network/memory_rw.o  build/mingw64/network/network.o  build/mingw64/network/network_address.o  build/mingw64/network/network_cmd.o  build/mingw64/network/network_cmd_ingame.o  build/mingw64/network/network_cmd_scenario.o  build/mingw64/network/network_cmp_pakset.o  build/mingw64/network/network_file_transfer.o  build/mingw64/network/network_packet.o  build/mingw64/network/network_socket_list.o  build/mingw64/network/pakset_info.o  build/mingw64/network/pwd_hash.o  build/mingw64/old_blockmanager.o  build/mingw64/player/ai.o  build/mingw64/player/ai_goods.o  build/mingw64/player/ai_passenger.o  build/mingw64/player/finance.o  build/mingw64/player/simplay.o  build/mingw64/script/api_class.o  build/mingw64/script/api_function.o  build/mingw64/script/api_param.o  build/mingw64/script/api/api_city.o  build/mingw64/script/api/api_const.o  build/mingw64/script/api/api_control.o  build/mingw64/script/api/api_convoy.o  build/mingw64/script/api/api_gui.o  build/mingw64/script/api/api_factory.o  build/mingw64/script/api/api_halt.o  build/mingw64/script/api/api_include.o  build/mingw64/script/api/api_line.o  build/mingw64/script/api/api_map_objects.o  build/mingw64/script/api/api_obj_desc.o  build/mingw64/script/api/api_obj_desc_base.o  build/mingw64/script/api/api_player.o  build/mingw64/script/api/api_scenario.o  build/mingw64/script/api/api_schedule.o  build/mingw64/script/api/api_settings.o  build/mingw64/script/api/api_simple.o  build/mingw64/script/api/api_tiles.o  build/mingw64/script/api/api_world.o  build/mingw64/script/api/export_desc.o  build/mingw64/script/api/get_next.o  build/mingw64/script/dynamic_string.o  build/mingw64/script/export_objs.o  build/mingw64/script/script.o  build/mingw64/squirrel/sq_extensions.o  build/mingw64/squirrel/squirrel/sqapi.o  build/mingw64/squirrel/squirrel/sqclass.o  build/mingw64/squirrel/squirrel/sqdebug.o  build/mingw64/squirrel/squirrel/sqlexer.o  build/mingw64/squirrel/squirrel/sqobject.o  build/mingw64/squirrel/squirrel/sqtable.o  build/mingw64/squirrel/squirrel/sqbaselib.o  build/mingw64/squirrel/squirrel/sqcompiler.o  build/mingw64/squirrel/squirrel/sqfuncstate.o  build/mingw64/squirrel/squirrel/sqmem.o  build/mingw64/squirrel/squirrel/sqstate.o  build/mingw64/squirrel/squirrel/sqvm.o  build/mingw64/squirrel/sqstdlib/sqstdaux.o  build/mingw64/squirrel/sqstdlib/sqstdio.o  build/mingw64/squirrel/sqstdlib/sqstdrex.o  build/mingw64/squirrel/sqstdlib/sqstdstring.o  build/mingw64/squirrel/sqstdlib/sqstdblob.o  build/mingw64/squirrel/sqstdlib/sqstdmath.o  build/mingw64/squirrel/sqstdlib/sqstdstream.o  build/mingw64/squirrel/sqstdlib/sqstdsystem.o  build/mingw64/simcity.o  build/mingw64/simconvoi.o  build/mingw64/simdebug.o  build/mingw64/simdepot.o  build/mingw64/simobj.o  build/mingw64/simevent.o  build/mingw64/simfab.o  build/mingw64/simhalt.o  build/mingw64/siminteraction.o  build/mingw64/simintr.o  build/mingw64/simio.o  build/mingw64/simline.o  build/mingw64/simlinemgmt.o  build/mingw64/simloadingscreen.o  build/mingw64/simmain.o  build/mingw64/simmem.o  build/mingw64/simmenu.o  build/mingw64/simmesg.o  build/mingw64/simplan.o  build/mingw64/simsignalbox.o  build/mingw64/simskin.o  build/mingw64/simsound.o  build/mingw64/simticker.o  build/mingw64/simtool.o  build/mingw64/simware.o  build/mingw64/simworld.o  build/mingw64/sys/simsys.o  build/mingw64/unicode.o  build/mingw64/utils/cbuffer_t.o  build/mingw64/utils/csv.o  build/mingw64/utils/log.o  build/mingw64/utils/searchfolder.o  build/mingw64/utils/sha1.o  build/mingw64/utils/simrandom.o  build/mingw64/vehicle/simroadtraffic.o  build/mingw64/utils/simstring.o  build/mingw64/utils/simthread.o  build/mingw64/vehicle/movingobj.o  build/mingw64/vehicle/simpeople.o  build/mingw64/vehicle/simvehicle.o  build/mingw64/simunits.o  build/mingw64/convoy.o  build/mingw64/utils/float32e8_t.o  build/mingw64/path_explorer.o  build/mingw64/gui/components/gui_table.o  build/mingw64/gui/components/gui_convoy_assembler.o  build/mingw64/gui/components/gui_convoy_label.o  build/mingw64/gui/components/gui_convoy_formation.o  build/mingw64/gui/components/gui_convoy_payloadinfo.o  build/mingw64/gui/replace_frame.o  build/mingw64/dataobj/livery_scheme.o  build/mingw64/dataobj/replace_data.o  build/mingw64/sys/simsys_s2.o  build/mingw64/sound/sdl2_sound.o  build/mingw64/music/w32_midi.o  build/mingw64/simres.o -L/root/freetype-2.10.4/objs/.libs -L/root/miniupnpc/miniupnpc-2.1.20201016 -L/root/zstd/zstd/lib -L/root/zlib-source/zlib-1.2.11 -L/root/bzip64/bzip2-1.0.6 -L/usr/x86_64-w64-mingw32/lib/ -L/root/SDL2-2.0.7/build-win64/build/.libs -lmingw32 -lSDL2main -lSDL2 -mwindows -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid -lfreetype -static-libgcc -static-libstdc++ -static -mwindows -lfreetype -lzstd -lpthread -lmingw32 -lgdi32 -lwinmm -lws2_32 -limm32 -lbz2 -lz -lbz2 -lz -lSDL2 -o build/mingw64/Simutrans-Extended.exe
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/objs/.libs/libfreetype.a(sfnt.o): in function `Load_SBit_Png':
/root/freetype-2.10.4/src/sfnt/pngshim.c:295: undefined reference to `png_create_read_struct'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:305: undefined reference to `png_create_info_struct'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:313: undefined reference to `png_set_longjmp_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:446: undefined reference to `png_destroy_read_struct'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:319: undefined reference to `png_set_read_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:321: undefined reference to `png_read_info'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:322: undefined reference to `png_get_IHDR'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:360: undefined reference to `png_set_expand_gray_1_2_4_to_8'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:367: undefined reference to `png_get_valid'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:382: undefined reference to `png_set_interlace_handling'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:384: undefined reference to `png_set_filler'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:387: undefined reference to `png_read_update_info'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:388: undefined reference to `png_get_IHDR'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:410: undefined reference to `png_set_read_user_transform_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:439: undefined reference to `png_read_image'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:443: undefined reference to `png_read_end'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:379: undefined reference to `png_set_gray_to_rgb'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:374: undefined reference to `png_set_packing'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:368: undefined reference to `png_set_tRNS_to_alpha'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:371: undefined reference to `png_set_strip_16'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:354: undefined reference to `png_set_palette_to_rgb'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:415: undefined reference to `png_set_read_user_transform_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:309: undefined reference to `png_destroy_read_struct'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/objs/.libs/libfreetype.a(sfnt.o): in function `error_callback':
/root/freetype-2.10.4/src/sfnt/pngshim.c:199: undefined reference to `png_get_error_ptr'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:206: undefined reference to `png_set_longjmp_fn'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/objs/.libs/libfreetype.a(sfnt.o): in function `read_data_from_FT_Stream':
/root/freetype-2.10.4/src/sfnt/pngshim.c:230: undefined reference to `png_get_io_ptr'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:236: undefined reference to `png_get_error_ptr'
/usr/bin/x86_64-w64-mingw32-ld: /root/freetype-2.10.4/src/sfnt/pngshim.c:240: undefined reference to `png_error'
collect2: error: ld returned 1 exit status
make: *** [common.mk:27: build/mingw64/Simutrans-Extended.exe] Error 1

I note the reference to not having libpng properly installed for the cross-compiler; this is indeed the case: when I set this up, I did not realise that standardised directories for cross-compile libraries were a thing, and I still do not know how to go about setting this up. However, what I do notice is that I do not have any manual flags for libraries or includes set up in config.mingw64.

Looking at the /usr/x86_64-w64-mingw32/lib directory, however, there is no libpng.* file there, although I notice that there are pthreads files there, suggesting that I had begun to set up the automatic system somehow in 2017 and not beel able to set this up for the other libraries.

Thus, I am not sure how libpng is being linked. I have a manually created libpng directory containing the following contents:

Code: [Select]
total 3504
-rw-r--r--  1 meme 5101  44739 Aug 24  2017 aclocal.m4
-rw-r--r--  1 meme 5101   4490 Aug 24  2017 ANNOUNCE
drwxr-xr-x  2 meme 5101   4096 Aug 24  2017 arm
-rwxr-xr-x  1 meme 5101   7979 Aug  3  2015 autogen.sh
-rw-r--r--  1 meme 5101 299235 Aug 24  2017 CHANGES
-rw-r--r--  1 meme 5101  34778 Aug 24  2017 CMakeLists.txt
-rwxr-xr-x  1 meme 5101   7333 Feb 21  2015 compile
-rwxr-xr-x  1 meme 5101  42938 Feb 21  2015 config.guess
-rw-r--r--  1 meme 5101   3615 Aug 24  2017 config.h.in
-rw-r--r--  1 root root  37248 Jan 15  2018 config.log
-rwxr-xr-x  1 meme 5101  35987 Feb 21  2015 config.sub
-rwxr-xr-x  1 meme 5101 483297 Aug 24  2017 configure
-rw-r--r--  1 meme 5101  19424 Aug 24  2017 configure.ac
drwxr-xr-x 16 meme 5101   4096 Aug 24  2017 contrib
-rwxr-xr-x  1 meme 5101  23566 Feb 21  2015 depcomp
-rw-r--r--  1 meme 5101  40471 Aug 24  2017 example.c
-rw-r--r--  1 meme 5101  19276 Aug 24  2017 INSTALL
-rwxr-xr-x  1 meme 5101  14675 Feb 21  2015 install-sh
drwxr-xr-x  2 meme 5101   4096 Aug 24  2017 intel
-rw-r--r--  1 meme 5101 273361 Aug 24  2017 libpng.3
-rw-r--r--  1 meme 5101   2396 Aug 24  2017 libpng-config.in
-rw-r--r--  1 meme 5101 230300 Aug 24  2017 libpng-manual.txt
-rw-r--r--  1 meme 5101    308 Aug 24  2017 libpng.pc.in
-rw-r--r--  1 meme 5101    796 Aug 24  2017 libpngpf.3
-rw-r--r--  1 meme 5101   4987 Aug 24  2017 LICENSE
-rwxr-xr-x  1 meme 5101 324089 Aug 24  2017 ltmain.sh
-rw-r--r--  1 meme 5101  13910 Aug  4  2017 Makefile.am
-rw-r--r--  1 meme 5101  91604 Aug 24  2017 Makefile.in
drwxr-xr-x  2 meme 5101   4096 Aug 24  2017 mips
-rwxr-xr-x  1 meme 5101   6872 Feb 21  2015 missing
-rw-r--r--  1 meme 5101   2431 Aug 24  2017 png.5
-rw-r--r--  1 meme 5101   2498 Jul 12  2000 pngbar.jpg
-rw-r--r--  1 meme 5101   2399 Jul 12  2000 pngbar.png
-rw-r--r--  1 meme 5101 157869 Aug 24  2017 png.c
-rw-r--r--  1 meme 5101  22842 Aug 24  2017 pngconf.h
-rw-r--r--  1 meme 5101   5368 Aug 24  2017 pngdebug.h
-rw-r--r--  1 meme 5101  29230 Aug 24  2017 pngerror.c
-rw-r--r--  1 meme 5101  34087 Aug 24  2017 pngget.c
-rw-r--r--  1 meme 5101 144052 Aug 24  2017 png.h
-rw-r--r--  1 meme 5101  12536 Aug 24  2017 pnginfo.h
-rw-r--r--  1 meme 5101   8372 Aug 24  2017 pngmem.c
-rw-r--r--  1 meme 5101   2069 Aug 26  2004 pngnow.png
-rw-r--r--  1 meme 5101  31835 Aug 24  2017 pngpread.c
-rw-r--r--  1 meme 5101  88792 Aug 24  2017 pngpriv.h
-rw-r--r--  1 meme 5101 141985 Aug 24  2017 pngread.c
-rw-r--r--  1 meme 5101   3956 Aug 24  2017 pngrio.c
-rw-r--r--  1 meme 5101 168916 Aug 24  2017 pngrtran.c
-rw-r--r--  1 meme 5101 147076 Aug 24  2017 pngrutil.c
-rw-r--r--  1 meme 5101  51471 Aug 24  2017 pngset.c
-rw-r--r--  1 meme 5101  20037 Aug 24  2017 pngstruct.h
-rw-r--r--  1 meme 5101  62909 Aug 24  2017 pngtest.c
-rw-r--r--  1 meme 5101   8759 Jul 18  2017 pngtest.png
-rw-r--r--  1 meme 5101  25324 Aug 24  2017 pngtrans.c
-rw-r--r--  1 meme 5101    497 Aug 24  2017 pngusr.dfa
-rw-r--r--  1 meme 5101   5655 Aug 24  2017 pngwio.c
-rw-r--r--  1 meme 5101  76574 Aug 24  2017 pngwrite.c
-rw-r--r--  1 meme 5101  15402 Aug 24  2017 pngwtran.c
-rw-r--r--  1 meme 5101  81047 Aug 24  2017 pngwutil.c
drwxr-xr-x  2 meme 5101   4096 Aug 24  2017 powerpc
drwxr-xr-x  5 meme 5101   4096 Aug 24  2017 projects
-rw-r--r--  1 meme 5101  11684 Aug 24  2017 README
drwxr-xr-x  2 meme 5101   4096 Aug 24  2017 scripts
-rwxr-xr-x  1 meme 5101   4640 Feb 21  2015 test-driver
drwxr-xr-x  2 meme 5101   4096 Aug 24  2017 tests
-rw-r--r--  1 meme 5101   1247 Jan 20  2017 TODO

but none of those appear to be compiled library files. I cannot remember now how I set up libpng to link for Simutrans-Exnteded myself, and I am confused as to where the relevant library files are for linking to Freetype or how to go about finding them.

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 10818
  • Languages: De,EN,JP
Re: Incorporating changes from Standard
« Reply #288 on: December 09, 2020, 11:56:02 PM »
Cmake does not run on mingw for windows. Does not work. Moreover, Cmake generates a gnu makefile, which we have and which works on most systems. So Cmake seems not the way out (at least until it generates useful Makefiles for Mingw).

But there is the nightly generation on github, using all relevant libraries. Why not download from there? It is just a wget/curl command away ...

The current simutrans nightlies for standard also come from github, since I did not want to bother with zstd cross-compilation on my server. It was way easier to just add curl download command.

Code: [Select]
cd /home/simutrans/mingw64/trunk
REVISION=`svnversion`

rm /var/www/nightly/*
#sudo -u simutrans /home/simutrans/make-simugdi.sh >/var/www/nightly/simugdi.log 2>&1
#mv /home/simutrans/mingw64/trunk/simuwin-*.zip /var/www/nightly
curl -L https://github.com/aburch/simutrans/releases/download/Nightly/simuwin-gdi32-nightly.zip > /var/www/nightly/simuwin-$REVISION.zip
chown -R www-data:www-data /var/www/nightly
sudo -u simutrans /home/simutrans/make-simulinux.sh >/var/www/nightly/simulinux.log 2>&1
mv /home/simutrans/mingw64/trunk/simulinux-*.zip /var/www/nightly
curl -L https://github.com/aburch/simutrans/releases/download/Nightly/simumac-nightly.zip > /var/www/nightly/simumac-$REVISION.zip
chown -R www-data:www-data /var/www/nightly




Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #289 on: December 10, 2020, 12:25:53 AM »
Cmake does not run on mingw for windows. Does not work. Moreover, Cmake generates a gnu makefile, which we have and which works on most systems. So Cmake seems not the way out (at least until it generates useful Makefiles for Mingw).

But there is the nightly generation on github, using all relevant libraries. Why not download from there? It is just a wget/curl command away ...

The current simutrans nightlies for standard also come from github, since I did not want to bother with zstd cross-compilation on my server. It was way easier to just add curl download command.

Code: [Select]
cd /home/simutrans/mingw64/trunk
REVISION=`svnversion`

rm /var/www/nightly/*
#sudo -u simutrans /home/simutrans/make-simugdi.sh >/var/www/nightly/simugdi.log 2>&1
#mv /home/simutrans/mingw64/trunk/simuwin-*.zip /var/www/nightly
curl -L https://github.com/aburch/simutrans/releases/download/Nightly/simuwin-gdi32-nightly.zip > /var/www/nightly/simuwin-$REVISION.zip
chown -R www-data:www-data /var/www/nightly
sudo -u simutrans /home/simutrans/make-simulinux.sh >/var/www/nightly/simulinux.log 2>&1
mv /home/simutrans/mingw64/trunk/simulinux-*.zip /var/www/nightly
curl -L https://github.com/aburch/simutrans/releases/download/Nightly/simumac-nightly.zip > /var/www/nightly/simumac-$REVISION.zip
chown -R www-data:www-data /var/www/nightly





Thank you for the suggestion. I have tried to download the Windows Mingw32 SDL build from Github, but it seems to be compiled as dynamically linked, and fails at runtime with an error indicating that I need libstdc++-6.dll (and a lot of other .dlls including for pthreads and zlib).

I suspect that setting up CI to work properly will be at least as much work, if not much more, than setting up the Bridgewater-Brunel server to work. At present, the Bridgewater-Brunel compiling works so long as Freetype is not enabled - and this is not in any event enabled on current nightly builds, so, if I cannot find a solution to this, an option would be just to continue building without Freetype for the time being.

Offline TurfIt

  • Dev Team, Coder/patcher
  • Devotee
  • *
  • Posts: 1440
Re: Incorporating changes from Standard
« Reply #290 on: December 10, 2020, 12:38:23 AM »
I executed the following commands:

Code: [Select]
root@438242:~/freetype-2.10.4# pkg-config freetype2 --libs --static
-L/usr/local/lib -lfreetype -lz -lpng15 -lm -lz -lm
Almost certainly these are the requirement for your linux system library, not the cross library.  Try "x86_64-w64-mingw32-pkg-config freetype2 --libs --static". I expect you to get either "x86_64-w64-mingw32-pkg-config: command not found" or "Package freetype2 was not found in t....". If the later, good, can work with that. If the former, need to muck with some paths. cross that if needed.


Code: [Select]
root@438242:~/freetype-2.10.4# ./configure --host=x86_64-w64-mingw32 --without-harfbuzz
No. "./configure --prefix=/usr/x86_64-w64-mingw32 --host=x86_64-w64-mingw32  --without-zlib --without-bzip2 --without-png --without-harfbuzz --without-brotli"
Nuke all the optional library dependancies to prevent it finding your linux ones (through config scripts like libpng-config).  Can add back later if desired once stripped basic version running.


and generated the following output:

Code: [Select]
FreeType build system -- automatic system detection

checking pkg-config is at least version 0.24... Please install dpkg-dev to use pkg-config when cross-building
no
Please do as it says and install dpkg-dev.  (before running ./configure....)


"make" then generated the following output (truncated to the last section otherwise this would be excessively long):

Code: [Select]
*** Warning: linker path does not have real file for library -lz.

*** Warning: linker path does not have real file for library -lm.

I do not know whether the -lm and -lz warnings are significant in this context. Attempting to compile the cross-compiled version, I get the following output with the same errors as before:
For libz, why not just install the package for it? "libz-mingw-w64-dev". Then one less library to self compile...
libm. hmmm. ugly. Easiest to just ignore for now since not important for static linking. If you want ability to dynamic link freetype in future, need to solve (something to do with libm.a in mingw being an import library - even static it actually is dynamic against Windows dlls.)


I note the reference to not having libpng properly installed for the cross-compiler; this is indeed the case: when I set this up, I did not realise that standardised directories for cross-compile libraries were a thing, and I still do not know how to go about setting this up.
I don't believe Simutrans is using any functions in freetype2 that require libpng, so skip for now.
So.
1. Install dpkg-dev
2. Install libz-mingw-w64-dev
3. Run "root@438242:~/freetype-2.10.4#./configure --prefix=/usr/x86_64-w64-mingw32 --host=x86_64-w64-mingw32  --without-bzip2 --without-png --without-harfbuzz --without-brotli"
4. Confirm in output:
Code: [Select]
  Library configuration:
    external zlib: yes (pkg-config)
    bzip2:         no
    libpng:        no
    harfbuzz:      no
    brotli:        no
5. Run "make"
6. Confirm it's only complaining about dynamic libm.   libz should now be ok since you installed it.
7. Run "make install"
8. Confirm you now have "/usr/x86_64-w64-mingw32/lib/libfreetype.a", "/usr/x86_64-w64-mingw32/lib/pkgconfig/freetype2.pc", "/usr/x86_64-w64-mingw32/include/freetype2/*", etc.
9. Test "x86_64-w64-mingw32-pkg-config freetype2 --libs --static". Should now work.
10. Set "FREETYPE_CONFIG=x86_64-w64-mingw32-pkg-config freetype2" in config.mingw64
11. Compile Simutrans.

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #291 on: December 10, 2020, 01:42:05 AM »
Thank you very much for this: this is most kind.

As to the packages to install - I already have dpkg-dev installed: I confirmed by executing the "apt install dpkg-dev" command, and the returned message indicated that it was installed. I installed libz-mingw-w64-dev.

Executing the command gives the following output:

Code: [Select]
./configure --prefix=/usr/x86_64-w64-mingw32 --host=x86_64-w64-mingw32  --without-bzip2 --without-png --without-harfbuzz --without-brotli

FreeType build system -- automatic system detection

The following settings are used:

  platform                    unix
  compiler                    cc
  configuration directory     ./builds/unix
  configuration rules         ./builds/unix/unix.mk

If this does not correspond to your system or settings please remove the file
`config.mk' from this directory then read the INSTALL file for help.

Otherwise, simply type `make' again to build the library,
or `make refdoc' to build the API reference (this needs Python >= 3.5).

cd builds/unix; \
        ./configure  '--prefix=/usr/x86_64-w64-mingw32' '--host=x86_64-w64-mingw32' '--without-bzip2' '--without-png' '--without-harfbuzz' '--without-brotli'
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-w64-mingw32
checking for x86_64-w64-mingw32-gcc... x86_64-w64-mingw32-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether x86_64-w64-mingw32-gcc accepts -g... yes
checking for x86_64-w64-mingw32-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... x86_64-w64-mingw32-gcc -E
checking for x86_64-w64-mingw32-pkg-config... /usr/bin/x86_64-w64-mingw32-pkg-config
checking pkg-config is at least version 0.24... Please install dpkg-dev to use pkg-config when cross-building
no
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by x86_64-w64-mingw32-gcc... /usr/bin/x86_64-w64-mingw32-ld
checking if the linker (/usr/bin/x86_64-w64-mingw32-ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/x86_64-w64-mingw32-nm -B
checking the name lister (/usr/bin/x86_64-w64-mingw32-nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-w64-mingw32 format... func_convert_file_nix_to_w32
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/x86_64-w64-mingw32-ld option to reload object files... -r
checking for x86_64-w64-mingw32-objdump... x86_64-w64-mingw32-objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for x86_64-w64-mingw32-dlltool... x86_64-w64-mingw32-dlltool
checking how to associate runtime and link libraries... func_cygming_dll_for_implib
checking for x86_64-w64-mingw32-ar... x86_64-w64-mingw32-ar
checking for archiver @FILE support... @
checking for x86_64-w64-mingw32-strip... x86_64-w64-mingw32-strip
checking for x86_64-w64-mingw32-ranlib... x86_64-w64-mingw32-ranlib
checking for gawk... no
checking for mawk... mawk
checking command to parse /usr/bin/x86_64-w64-mingw32-nm -B output from x86_64-w64-mingw32-gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-w64-mingw32-mt... no
checking for mt... mt
configure: WARNING: using cross tools not prefixed with host triplet
checking if mt is a manifest tool... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... no
checking for x86_64-w64-mingw32-as... x86_64-w64-mingw32-as
checking for x86_64-w64-mingw32-dlltool... (cached) x86_64-w64-mingw32-dlltool
checking for x86_64-w64-mingw32-objdump... (cached) x86_64-w64-mingw32-objdump
checking for objdir... .libs
checking if x86_64-w64-mingw32-gcc supports -fno-rtti -fno-exceptions... no
checking for x86_64-w64-mingw32-gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if x86_64-w64-mingw32-gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if x86_64-w64-mingw32-gcc static flag -static works... yes
checking if x86_64-w64-mingw32-gcc supports -c -o file.o... yes
checking if x86_64-w64-mingw32-gcc supports -c -o file.o... (cached) yes
checking whether the x86_64-w64-mingw32-gcc linker (/usr/bin/x86_64-w64-mingw32-ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking windows.h usability... yes
checking windows.h presence... yes
checking for windows.h... yes
checking for x86_64-w64-mingw32-windres... x86_64-w64-mingw32-windres
checking for x86_64-pc-linux-gnu-gcc... no
checking for gcc... gcc
checking for gcc... (cached) gcc
checking for suffix of native executables...
checking for a BSD-compatible install... /usr/bin/install -c
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for ANSI C header files... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for unistd.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking size of int... 4
checking size of long... 4
checking for unsigned long long int... yes
checking for long long int... yes
checking whether cpp computation of bit length in ftconfig.h.in works... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... no
checking for memcpy... yes
checking for memmove... yes
checking for -fvisibility=hidden compiler flag... yes
checking for ZLIB... no
checking for gzsetparams in -lz... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for library containing clock_gettime... no
checking for python3... python3
checking for python version... 3.8.5
checking for `docwriter' Python module... no
configure: creating ./config.status
config.status: creating ftoption.h
config.status: creating unix-cc.mk
config.status: creating unix-def.mk
config.status: creating ftconfig.h
config.status: ftconfig.h is unchanged
config.status: executing libtool commands
configure:

Library configuration:
  external zlib: yes (autoconf test)
  bzip2:         no
  libpng:        no
  harfbuzz:      no
  brotli:        no

configure: WARNING:
  `make refdoc' will fail since pip package `docwriter' is not installed.
  To install, run `python3 -m pip install docwriter', or to use a Python
  virtual environment, run `make refdoc-venv' (requires pip

This appears to work.

"make" produces the following output (mostly truncated as this is very long as before: end part only shown):

Code: [Select]
x86_64-w64-mingw32-ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: x86_64-w64-mingw32-ranlib /root/freetype-2.10.4/objs/.libs/libfreetype.a
libtool: link: ( cd "/root/freetype-2.10.4/objs/.libs" && rm -f "libfreetype.la" && ln -s "../libfreetype.la" "libfreetype.la" )

make install produces the following output:

Code: [Select]
rm -rf /usr/x86_64-w64-mingw32/include/freetype2
rm -f /usr/x86_64-w64-mingw32/include/ft2build.h
/bin/mkdir -p /usr/x86_64-w64-mingw32/lib                               \
                         /usr/x86_64-w64-mingw32/lib/pkgconfig                     \
                         /usr/x86_64-w64-mingw32/include/freetype2/freetype/config \
                         /usr/x86_64-w64-mingw32/share/aclocal
./builds/unix/libtool --mode=install /usr/bin/install -c                             \
                                  /root/freetype-2.10.4/objs/libfreetype.la /usr/x86_64-w64-mingw32/lib
libtool: install: /usr/bin/install -c /root/freetype-2.10.4/objs/.libs/libfreetype.dll.a /usr/x86_64-w64-mingw32/lib/libfreetype.dll.a
libtool: install: base_file=`basename /root/freetype-2.10.4/objs/libfreetype.la`
libtool: install:  dlpath=`/bin/bash 2>&1 -c '. /root/freetype-2.10.4/objs/.libs/'libfreetype.la'i; echo libfreetype-6.dll'`
libtool: install:  dldir=/usr/x86_64-w64-mingw32/lib/`dirname ../bin/libfreetype-6.dll`
libtool: install:  test -d /usr/x86_64-w64-mingw32/lib/../bin || mkdir -p /usr/x86_64-w64-mingw32/lib/../bin
libtool: install:  /usr/bin/install -c /root/freetype-2.10.4/objs/.libs/libfreetype-6.dll /usr/x86_64-w64-mingw32/lib/../bin/libfreetype-6.dll
libtool: install:  chmod a+x /usr/x86_64-w64-mingw32/lib/../bin/libfreetype-6.dll
libtool: install:  if test -n '' && test -n 'x86_64-w64-mingw32-strip --strip-unneeded'; then eval 'x86_64-w64-mingw32-strip --strip-unneeded /usr/x86_64-w64-mingw32/lib/../bin/libfreetype-6.dll' || exit 0; fi
libtool: install: /usr/bin/install -c /root/freetype-2.10.4/objs/.libs/libfreetype.lai /usr/x86_64-w64-mingw32/lib/libfreetype.la
libtool: install: /usr/bin/install -c /root/freetype-2.10.4/objs/.libs/libfreetype.a /usr/x86_64-w64-mingw32/lib/libfreetype.a
libtool: install: chmod 644 /usr/x86_64-w64-mingw32/lib/libfreetype.a
libtool: install: x86_64-w64-mingw32-ranlib /usr/x86_64-w64-mingw32/lib/libfreetype.a
for P in /root/freetype-2.10.4/include/freetype/tttables.h /root/freetype-2.10.4/include/freetype/ftcid.h /root/freetype-2.10.4/include/freetype/ftstroke.h /root/freetype-2.10.4/include/freetype/t1tables.h /root/freetype-2.10.4/include/freetype/fterrors.h /root/freetype-2.10.4/include/freetype/ftparams.h /root/freetype-2.10.4/include/freetype/ftglyph.h /root/freetype-2.10.4/include/freetype/ftbitmap.h /root/freetype-2.10.4/include/freetype/ftmodapi.h /root/freetype-2.10.4/include/freetype/ftsystem.h /root/freetype-2.10.4/include/freetype/ftoutln.h /root/freetype-2.10.4/include/freetype/ftsynth.h /root/freetype-2.10.4/include/freetype/ftlcdfil.h /root/freetype-2.10.4/include/freetype/ftpfr.h /root/freetype-2.10.4/include/freetype/ftsizes.h /root/freetype-2.10.4/include/freetype/ftrender.h /root/freetype-2.10.4/include/freetype/ftlzw.h /root/freetype-2.10.4/include/freetype/ftfntfmt.h /root/freetype-2.10.4/include/freetype/ftbzip2.h /root/freetype-2.10.4/include/freetype/ftlist.h /root/freetype-2.10.4/include/freetype/ftincrem.h /root/freetype-2.10.4/include/freetype/ftchapters.h /root/freetype-2.10.4/include/freetype/ftbdf.h /root/freetype-2.10.4/include/freetype/ftcache.h /root/freetype-2.10.4/include/freetype/ttnameid.h /root/freetype-2.10.4/include/freetype/ftgzip.h /root/freetype-2.10.4/include/freetype/ftdriver.h /root/freetype-2.10.4/include/freetype/ftmac.h /root/freetype-2.10.4/include/freetype/fttypes.h /root/freetype-2.10.4/include/freetype/ftwinfnt.h /root/freetype-2.10.4/include/freetype/freetype.h /root/freetype-2.10.4/include/freetype/ftcolor.h /root/freetype-2.10.4/include/freetype/ftbbox.h /root/freetype-2.10.4/include/freetype/ftmm.h /root/freetype-2.10.4/include/freetype/ftadvanc.h /root/freetype-2.10.4/include/freetype/ftmoderr.h /root/freetype-2.10.4/include/freetype/ftgasp.h /root/freetype-2.10.4/include/freetype/ftgxval.h /root/freetype-2.10.4/include/freetype/ftsnames.h /root/freetype-2.10.4/include/freetype/tttags.h /root/freetype-2.10.4/include/freetype/ftotval.h /root/freetype-2.10.4/include/freetype/fterrdef.h /root/freetype-2.10.4/include/freetype/fttrigon.h /root/freetype-2.10.4/include/freetype/ftimage.h ; do                           \
          /usr/bin/install -c -m 644                                    \
            $P /usr/x86_64-w64-mingw32/include/freetype2/freetype ; \
        done
for P in /root/freetype-2.10.4/include/freetype/config/ftstdlib.h /root/freetype-2.10.4/include/freetype/config/public-macros.h /root/freetype-2.10.4/include/freetype/config/ftconfig.h /root/freetype-2.10.4/include/freetype/config/mac-support.h /root/freetype-2.10.4/include/freetype/config/ftmodule.h /root/freetype-2.10.4/include/freetype/config/ftoption.h /root/freetype-2.10.4/include/freetype/config/ftheader.h /root/freetype-2.10.4/include/freetype/config/integer-types.h  /root/freetype-2.10.4/objs/ftmodule.h ./builds/unix/ftoption.h ; do                                  \
          /usr/bin/install -c -m 644                                           \
            $P /usr/x86_64-w64-mingw32/include/freetype2/freetype/config ; \
        done
/usr/bin/install -c -m 644 /root/freetype-2.10.4/include/ft2build.h                  \
          /usr/x86_64-w64-mingw32/include/freetype2/ft2build.h
/usr/bin/install -c -m 644 ./builds/unix/ftconfig.h                        \
          /usr/x86_64-w64-mingw32/include/freetype2/freetype/config/ftconfig.h
/usr/bin/install -c -m 644 /root/freetype-2.10.4/objs/ftmodule.h                          \
          /usr/x86_64-w64-mingw32/include/freetype2/freetype/config/ftmodule.h
/usr/bin/install -c -m 644 ./builds/unix/ftoption.h                        \
          /usr/x86_64-w64-mingw32/include/freetype2/freetype/config/ftoption.h
/usr/bin/install -c -m 644 ./builds/unix/freetype2.m4             \
          /usr/x86_64-w64-mingw32/share/aclocal/freetype2.m4
/usr/bin/install -c -m 644 ./builds/unix/freetype2.pc             \
          /usr/x86_64-w64-mingw32/lib/pkgconfig/freetype2.pc

The next step fails as dpkg-dev is not recognised despite the fact that I have it installed:

Code: [Select]
root@438242:~/freetype-2.10.4# x86_64-w64-mingw32-pkg-config freetype2 --libs --static
Please install dpkg-dev to use pkg-config when cross-building
root@438242:~/freetype-2.10.4# apt install dpkg-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
dpkg-dev is already the newest version (1.19.7ubuntu3).
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.

Despite this, however, making the build works, the server now builds properly with Freetype for cross-compiling.

Thank you very much for all your detailed help - that is very much appreciated indeed. You desrve cake.

For testing purposes, the Freetype enabled build can be downloaded here.


Edit: Ranran - can I check which UI features, if any, need further testing before this is integrated into the master branch? Do you think that anything further needs to be done before integration?

Offline TurfIt

  • Dev Team, Coder/patcher
  • Devotee
  • *
  • Posts: 1440
Re: Incorporating changes from Standard
« Reply #292 on: December 10, 2020, 02:25:41 AM »
The next step fails as dpkg-dev is not recognised despite the fact that I have it installed:
Apparently fixed in 'mingw-w64 (7.0.0-3) unstable'. Presumably you're running 7.0.0-2.
Workaround is just using pkg-config (i.e. the non cross one) with PKG_CONFIG_LIBDIR set to the cross libs .pcs.
or go back to manually specifying everything.

Installing bzip2 "correctly" and redoing the freetype compile might be desired in case some users wish to use fonts compressed with it...

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 10818
  • Languages: De,EN,JP
Re: Incorporating changes from Standard
« Reply #293 on: December 10, 2020, 05:11:20 AM »
Mingw cross compile on Debian is somewhat broken, since it claims full C11++ support but chokes on std::thread::... even though there is a header and __Cplusplus is laregr than 2011/3. One either has to use posix threads (and a ton of DLLs) or deliverately detect cross compilation and avoid this. Since this is the most portable way to detect the number of threads for zstd, I stopped cross-compilation and use the mingw builds from github (which are built on windows, where the same code works!)

Offline Ranran

  • Devotee
  • *
  • Posts: 1658
  • 今日は兎汁よー
  • Languages: ja
Re: Incorporating changes from Standard
« Reply #294 on: December 12, 2020, 09:57:19 AM »
I have fixed some bugs and brushed up the GUI.
(1) The construction site was not displayed correctly in hide building mode. This bug can be reproduced on the master branch, but I'm guessing it was probably caused by changing the one way ribi display. I fixed it anyway.

(2) Made the convoy detail dialog (many parts) a new GUI engine. Repaired a broken function. The layout has changed.
The display of the convoy overview can now be switched. This was because the transition of the new GUI engine made it easy to switch this display because it is used in other dialogs, so all I had to do was add a button.
Moved buttons such as sell now and retire to the maintenance tab.
I'm planning to put the class manager inside a tab, but that can take some time.

(3) Brushed up the signalbox list
Added radius display. Added has vacans slot filter. This added two translations.
Code: [Select]
helptxt_filter_sb_has_vacant_slot
Vacant slot


Quote
Ranran - can I check which UI features, if any, need further testing before this is integrated into the master branch?
There are three branches you can test:

(1) accel curve chart
https://github.com/Ranran-the-JuicyPork/simutrans-extended/tree/accel-curve-chart-v2
This adds a physics chart to the convoy detail dialog.
I'm planning to open this dialog from the depot dialog, but it hasn't been implemented yet.

(2) halt detail plus
https://github.com/Ranran-the-JuicyPork/simutrans-extended/tree/halt-detail-plus-v2
This was a lot of work done before the standard merging work. Many improvements have been added to halt detail.
- The third tab is split and route_tab is added.
  You can see a lot of information in debug builds (line speed and preferred line), but it is hidden in release builds.
- Information around the station is added to the first tab.
- Two display options are added to the station dialog. Sort by which line the cargo is waiting for.
  Please note that this is a plan. In short, the preferred line is displayed. If a convoy heading for the same destination arrives first, they may ride on it. This is the same as in the real world.

Note that these patch also adds some translatable terms.


(3) Incorporating from standard (makeobj update - factory location(r8571-) )
https://github.com/Ranran-the-JuicyPork/simutrans-extended/tree/std-makeobj-update

This adds parameters for factory location conditions (forest, river, shore). However, this requires updating the pakset, so I have not confirmed the behavior of the added parameters.


Quote
Do you think that anything further needs to be done before integration?
I can't think of anything.



Another big patch from the standard is the climate patch branch.
https://github.com/Ranran-the-JuicyPork/simutrans-extended/tree/std-r9148-climate-patch
I don't think this can be merged right away.
It seems that there is a conflict in the way the river is created and there is a problem with its operation. Can I ask if the river generation method is different between extended and standard?

I also tried sqapi related merging, which seems to be a huge amount of work. Those who are interested in this may be able to proceed with it.

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #295 on: December 12, 2020, 04:18:56 PM »
Thank you very much - this is very helpful. I have now incorporated the latest changes from the zstd branch into the master branch: the signal box  list and convoy details improvement were most helpful. I have modified the server's simuconf.tab to switch to zstd level 3 compression when it next restarts, so hopefully to-morrow we will see the effect of zstd on making the server more responsive on loading/saving.

Thank you very much for your excellent work on this to date - it is very much appreciated. The improvement of the GUI between the new version and the old is very great indeed.

As to the other branches, I will test those shortly and revert on this thread when I have done so, but I thought it more important to incorporate the bulk of the changes - especially zstd - into the master branch sooner rather than later now that it is working.

I should note, incidentally, that I have not yet set up 32-bit Windows cross-compile builds. Does anyone use the 32-bit Windows executable any more? It may be worthwhile discontinuing this as a separate build, as many games take more memory than this version is capable of handling in any event.

As to future work, it will be very interesting to see progress on the climates branch. I cannot immediately recall whether there has been an intentional difference in river generation between Extended and Standard; I recall some time ago looking into river generation and testing to ensure that a realistic number of rivers were generated, but I am not sure whether this entailed making some adjustments to the code or simply altering the default river generation parameters. Certainly, if there are any modifications to the Extended river code, I have not made any major changes to it; I cannot immediately recall whether anyone else made changes to this, but I do not recall any major changes of this sort.

As to the scripting API, I can anticipate that this would be a huge amount of work, and, since scripted scenarios are not the paradigm play style for Simutrans-Extended, this is not a priority at present. If anyone is very keen on doing this, it would certainly not hurt to have this integrated, but I suspect that development time is best focussed elsewhere.

After completion of the merging of important features from Standard, the next task, I think, will be the task of reviving and completing the vehicle-management branch, which contains the beginnings of some features that will be very important to game balance. I will need to do the coding for the simulation aspects of this, which will be a substantial task in itself, but the UI will need some consideration. Ves had started to write a UI for this back in 2018 when work was last done on this branch, but this will now be out of date and not compatible with the latest version of the UI code. At least a basic UI will need to be in place for testing purposes (the current state of the code is that I have a lot of memory structures written but no code to do anything with them). Would you be interested in assisting with this? It would be extremely helpful. This will be a project to start early next year, I anticipate, and the first work will be resolving the large numbers of merge conflicts likely to be present, since this branch has not been updated since early 2018. I will need to work on the non-UI aspects of this, but help on the UI aspects (of such UI has has been implemented on this branch so far - I am not sure whether any has been integrated yet) would be appreciated.

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #296 on: December 12, 2020, 05:58:42 PM »
I am now looking at the first of the new branches, the halt detail branch. First of all, and most importantly, this is an excellent improvement with a great deal of good useful detail and a very clear layout. This is splendid work.

A few very small things: the graphs for "Around passenger demands" seem to overlap with the text in some cases, at least with the "modern" theme. These figures would be easier to read if the thousands were grouped as the numbers can get quite high in some cases.

In at least one instance (Christminster Eastgate on default.sve in Pak128.Britain-Ex), the success rate for commuting trips seems to be >100%, which suggests that there might be a bug in calculating this.

I have corrected a spelling error for the word "preferred". Translation texts will need producing for this branch, and likewise updated help texts.

The default width of this dialogue is often too narrow for all the text that needs to fit into it both horizontally and vertically, especially in the route tab; I am not sure whether this is reasonably easy to change or not. Perhaps the dialogue needs to be resized on opening a new tab to the maximum of the current size or the minimum size necessary to see all the details without scrolling?

Under "Direct routes from here", the names of goods, mail and passengers do not seem to be translated under hl_btn_by_stat... (the rest is truncated).

The text for "transshipment time" seems not to be quite aligned with the "Transfer time" text as though they were all centre aligned: unless there is some good reason for this, either left align or right align would probably be easier to read.

In any event, this is very good work - thank you again for this.

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #297 on: December 12, 2020, 07:15:50 PM »
Testing further, the accel-curve-chart-2 branch will not compile when merged with the current master.

The branch updating makeobj I have tested and this appears to work satisfactorily, with forestry industries at least: I have configured these in Pak128.Britain-Ex so that they only spawn in forests, and, testing with a large map, they do indeed only spawn in forests. I have therefore merged this into the master branch.

Offline Matthew

  • Devotee
  • *
  • Posts: 612
    • Japan Railway Journal
  • Languages: EN, some ZH, DE & SQ
Re: Incorporating changes from Standard
« Reply #298 on: December 12, 2020, 07:51:04 PM »
Thank you very much - this is very helpful. I have now incorporated the latest changes from the zstd branch into the master branch: the signal box  list and convoy details improvement were most helpful. I have modified the server's simuconf.tab to switch to zstd level 3 compression when it next restarts, so hopefully to-morrow we will see the effect of zstd on making the server more responsive on loading/saving.

Thank you very much for your excellent work on this to date - it is very much appreciated. The improvement of the GUI between the new version and the old is very great indeed.

Thank you very much to Prissi, Dwachs & the Standard team for the original changes, Ranran for integrating them into Extended, and James for the code review!:



Quote
when it next restarts, so hopefully to-morrow

B-B has not restarted at 0600 for several days now, so it seems unlikely that it will do so tomorrow....  ???

Quote
As to the other branches, I will test those shortly and revert on this thread when I have done so, but I thought it more important to incorporate the bulk of the changes - especially zstd - into the master branch sooner rather than later now that it is working.

It seems sensible to pause after integrating so many changes since it's reasonable to expect some problems to crop up after such a big merge and more new code makes cause analysis harder. But you knew that already!

Quote
I should note, incidentally, that I have not yet set up 32-bit Windows cross-compile builds. Does anyone use the 32-bit Windows executable any more? It may be worthwhile discontinuing this as a separate build, as many games take more memory than this version is capable of handling in any event.

Roboron's statistics for (Standard) Steam users are the most useful data for this decision:



We can see that 32-bit Windows was not in the top 10 used OSes for Standard. I am aware from Discord & Reddit of one Brazilian player who uses the 32-bit Extended executable because he can't get the 64-bit to work on his system. However, I don't think he uses the Nightly Updater and he does have a 64-bit system, so I would not regard his situation as a reason to delay.

Going by these statistics and forum comments, a statically-linked Linux build seems more important than a 32-bit Windows build, since there are definitely users who are unable to play with the dynamically-linked Linux version. (Full disclosure: I am one those unable to use the new Linux version  :-[ , though I hope to build a new PC with Ubuntu 20.04 next week).

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #299 on: December 12, 2020, 10:46:51 PM »
Thank you! I should also, incidentally, mark appreciation, not just of Ranran for all the excellent work in integrating and extending the Standard changes, but the Standard developers who coded them in the first place; they have very significantly improved the UI.

Those statistics are very interesting and useful and confirm that a 32-bit Windows build is not a priority; I shall probably discontinue provindg 32-bit Windows builds as a result of this.

In relation to the server restarting, I have modified the nightly script to try to deal with this problem: hitherto, it had use the nettool shutdown command, but this was prone to timing out if, for example, a player was connecting at the time that the command was sent, so I have reverted to using the external control script to stop the Simutrans-Extended instance to prevent this difficulty from arising.

Offline Ranran

  • Devotee
  • *
  • Posts: 1658
  • 今日は兎汁よー
  • Languages: ja
Re: Incorporating changes from Standard
« Reply #300 on: December 13, 2020, 12:14:40 AM »
Testing further, the accel-curve-chart-2 branch will not compile when merged with the current master.
The cause was that the necessary header file include was removed by the merge.
It would be helpful if you could check it again.

Offline Andarix

  • *
  • Posts: 295
  • Languages: de
Re: Incorporating changes from Standard
« Reply #301 on: December 13, 2020, 06:01:14 AM »
...
Roboron's statistics for (Standard) Steam users are the most useful data for this decision:



We can see that 32-bit Windows was not in the top 10 used OSes for Standard. I am aware from Discord & Reddit of one Brazilian player who uses the 32-bit Extended executable because he can't get the 64-bit to work on his system. However, I don't think he uses the Nightly Updater and he does have a 64-bit system, so I would not regard his situation as a reason to delay.

Going by these statistics and forum comments, a statically-linked Linux build seems more important than a 32-bit Windows build, since there are definitely users who are unable to play with the dynamically-linked Linux version. (Full disclosure: I am one those unable to use the new Linux version  :-[ , though I hope to build a new PC with Ubuntu 20.04 next week).

For something like this there have been player surveys in the wiki since 2008.

2015 - 153 users
Quote
Which operating system do you use?
32bit   31   20.67%   
64bit   119   79.33%   

2017 - 134 users
Quote
Which operating system do you use?
32bit   13   9.70%   
64bit   121   90.30%

2019 - 58 users
Quote
Which operating system do you use?
32bit   3   5.45%   
64bit   52   94.55%

Offline freddyhayward

  • Devotee
  • *
  • Posts: 681
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #302 on: December 13, 2020, 10:01:35 AM »
Thank you and well done to Ranran, this is a mostly excellent patch. There are a number of problems which I will report over time, but I will start with the message window. The main problems are:
1. Transparency is not consistent between the top part of the window and the rest of the window.
2. messages are often repeated, including when scrolling the window.
3. coordinate messages cannot be right-clicked to jump
4. message colours are wrong. This includes the 'other players' category, where relevant messages are no longer in player colours.


Offline Ranran

  • Devotee
  • *
  • Posts: 1658
  • 今日は兎汁よー
  • Languages: ja
Re: Incorporating changes from Standard
« Reply #303 on: December 13, 2020, 12:09:05 PM »
Thank you for your feed back.

Quote
1. Transparency is not consistent between the top part of the window and the rest of the window.
This may have been caused by code that differs from standard for more than a decade.

Quote
2. messages are often repeated, including when scrolling the window.
This seems to reload the message when switching players. At least this behavior can be reproduced with standard, so it is from standard.

Quote
3. coordinate messages cannot be right-clicked to jump
That feature was removed in the standard r9347.

Quote
4. message colours are wrong. This includes the 'other players' category, where relevant messages are no longer in player colours.
I'm not sure about this. (´・ω・`)
« Last Edit: December 13, 2020, 10:30:45 PM by Ranran »

Offline freddyhayward

  • Devotee
  • *
  • Posts: 681
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #304 on: December 13, 2020, 12:22:21 PM »
This seems to reload the message when switching players. At least this behavior can be reproduced with standard, so it is from standard.
No, it repeats constantly without switching players at all.

Offline Ranran

  • Devotee
  • *
  • Posts: 1658
  • 今日は兎汁よー
  • Languages: ja
Re: Incorporating changes from Standard
« Reply #305 on: December 13, 2020, 12:43:45 PM »
Apparently the right-click jump feature was successfully restored. Check the zstd branch.

EDIT:
Duplicate message - It may not be possible to reproduce with the standard that was my misunderstanding.

EDIT2:
I think the duplicate message bug has been fixed by r9500 and r9501. @prissi-Thank you for fixing it.
« Last Edit: December 13, 2020, 10:36:41 PM by Ranran »

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 10818
  • Languages: De,EN,JP
Re: Incorporating changes from Standard
« Reply #306 on: December 13, 2020, 12:50:40 PM »
The right click to pos died rather accidently, I would say. That is in in r9500. And r9501 solved the double entries.


Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #307 on: December 13, 2020, 01:12:30 PM »
Apparently the right-click jump feature was successfully restored. Check the zstd branch.

EDIT:
Duplicate message - It may not be possible to reproduce with the standard that was my misunderstanding.

Thank you for this. Unfortunately, I get compile errors when I merge this with the current master - there seem to be some conflicts somewhere with this.

Offline jamespetts

  • Simutrans-Extended project coordinator
  • Administrator
  • *
  • Posts: 20915
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #308 on: December 13, 2020, 01:22:40 PM »
The cause was that the necessary header file include was removed by the merge.
It would be helpful if you could check it again.

Excellent, this now compiles, thank you.

This is interesting and helpful - thank you for this. One thing that I do notice, however, is that the f-v graph has the issue that I reported a while ago in relation to the acceleration curve chart, which is that the last entry is always 0kN both for tractive effort and rolling resistance. This does not make sense, especially for rolling resistance, which increases with speed exponentially. It also means that users have to click on the individual graph nodes to see the right-hand side graph value, which makes the chart harder to use than would be ideal.

Is there any way of truncating the last entry so as for it not to do this?

Offline Ranran

  • Devotee
  • *
  • Posts: 1658
  • 今日は兎汁よー
  • Languages: ja
Re: Incorporating changes from Standard
« Reply #309 on: December 13, 2020, 02:48:41 PM »
I am now looking at the first of the new branches, the halt detail branch.
Thank you for your feedback.

Quote
A few very small things: the graphs for "Around passenger demands" seem to overlap with the text in some cases, at least with the "modern" theme. These figures would be easier to read if the thousands were grouped as the numbers can get quite high in some cases.
I didn't consider the font size as it was in the previous specification. It has been fixed.


Quote
In at least one instance (Christminster Eastgate on default.sve in Pak128.Britain-Ex), the success rate for commuting trips seems to be >100%, which suggests that there might be a bug in calculating this.
Fixed so that the number of successes does not exceed the generate number in each building.


Quote
The default width of this dialogue is often too narrow for all the text that needs to fit into it both horizontally and vertically, especially in the route tab; I am not sure whether this is reasonably easy to change or not. Perhaps the dialogue needs to be resized on opening a new tab to the maximum of the current size or the minimum size necessary to see all the details without scrolling?
(1) I forgot to mention the added three symbols. If the pakset has those symbols, some text will be replaced with the symbols, saving space.
(2) Two type of average speed is only displayed in debug mode. Therefore, the amount of text is smaller in release builds.

The symbol dat is here
https://github.com/Ranran-the-JuicyPork/simutrans-pak128.britain/commit/0610efff425a588ca854ffbf49083947398378d6


Quote
Under "Direct routes from here", the names of goods, mail and passengers do not seem to be translated under hl_btn_by_stat... (the rest is truncated).
The width of the two switching buttons is now 1.5 times larger. I also fixed the goods category name that couldn't translate.


Quote
The text for "transshipment time" seems not to be quite aligned with the "Transfer time" text as though they were all centre aligned: unless there is some good reason for this, either left align or right align would probably be easier to read.
I think this has been fixed.


The translations added by this patch are:
(1)station detail dialog
Code: [Select]
Route_tab
lb_served_goods_and_classes
Fare class
%s mins. walking
%s mins. travelling
%s mins. waiting
Around passenger demands
Transportation status around this stop
hd_generated
Success rate
Visiting trip
Commuting trip
hd_mailing
hd_btn_by_station
hd_btn_by_category

(2)station dialog (freight list)
Code: [Select]
Carrying out
Undecided
Line to

Offline Ranran

  • Devotee
  • *
  • Posts: 1658
  • 今日は兎汁よー
  • Languages: ja
Re: Incorporating changes from Standard
« Reply #310 on: December 13, 2020, 03:03:00 PM »
Is there any way of truncating the last entry so as for it not to do this?
I think it is difficult in current systems. For example, if the maximum speed is 409km / h, the graph will never take an integer in the middle unless an array of 409 is automatically generated.
That is, we need a system that creates arrays and graphs in a fluid manner.
Or set a sharp point such as 410, then move the axis slightly forward at the end, set the end point of the graph there, draw a line and truncate the rest.
This also requires modification of the code.

Offline wlindley

  • Devotee
  • *
  • Posts: 1083
    • Hacking for fun and profit since 1977
  • Languages: EN, DE
Re: Incorporating changes from Standard
« Reply #311 on: December 13, 2020, 06:24:18 PM »
The text below each of the convoys on the Line Management dialogue seems to be missing?  Makes it quite difficult to see which convoy is profitable or loaded.

Also not sure what I have to do so to that cl_btn_general gets translated...

Offline Phystam

  • Devotee
  • *
  • Posts: 524
  • Pak256.Ex developer
    • Pak256 wiki page
  • Languages: ja, en, eo
Re: Incorporating changes from Standard
« Reply #312 on: December 14, 2020, 04:29:29 AM »
This is a small report and is not a bug. After incorporating standard features, the Extended revision has not been shown on the top but the Standard revision.

Offline freddyhayward

  • Devotee
  • *
  • Posts: 681
  • Languages: EN
Re: Incorporating changes from Standard
« Reply #313 on: December 14, 2020, 08:44:03 AM »
Feel free to split this into a new thread if necessary. Petrol vehicles are no longer available at any time on any map from any type of depot, including road depots and aircraft hangars.

Offline Ranran

  • Devotee
  • *
  • Posts: 1658
  • 今日は兎汁よー
  • Languages: ja
Re: Incorporating changes from Standard
« Reply #314 on: December 14, 2020, 09:28:07 AM »
Petrol vehicles are no longer available at any time on any map from any type of depot, including road depots and aircraft hangars.
Thank you for your report. I think I've fixed it. Please confirm.