Trying to compile random_image.adb from Rosetta Code, two problems found

Hi All (esp. Jeff);

My attempt to compile random_image.adb from Rosetta Code fails.

First is a spurious “end.” at the bottom of the code (perhaps someone accidently added something incorrect to your code? Removingthe spurious “end.” seems to help a little bit.

Second is that two spec files cannot be found.

I did a git clone of Ada_Gui from GitHub.

I’m using GNAT 14.2 (thank you Simon!) and I specify the relocated Ada_GUI pkg.

Here’s my results:

/opt/gcc-14.2.0-1-aarch64/bin/gnatmake -I/opt/ext_ada_lib/Ada_GUI ./random_image.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- ./random_image.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-application.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-colors.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-element.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-element-canvas.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-element-canvas-context_2d.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-element-common.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-element-form.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-element-multimedia.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-view.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-view-console.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-view-grid.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-gui-window.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/strings_edit.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/strings_edit-utf8.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/strings_edit-utf8-handling.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-server.adb
gcc -c -I./ -I/opt/ext_ada_lib/Ada_GUI -I- /opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-server-connection.adb
ada_gui-gnoga-server-connection.adb:51:06: error: file "g-socser.ads" not found
ada_gui-gnoga-server-connection.adb:52:06: error: file "g-scstma.ads" not found
gnatmake: "/opt/ext_ada_lib/Ada_GUI/ada_gui-gnoga-server-connection.adb" compilation error

I must be missing something obvious…where are those two missing spec files?

Thanks,
Retired Build Engineer (R. B. E.)

I don’t know where that end. came from. I’ve removed it.

It’s important to build (and test) Ada GUI separately. Then GNAT will take into account the Source_File_Name pragmas in gnat.adc.