FWIW re "Apple has deprecated a whole bunch of things with Mojave and later. Including Open GL Open CL."
<https://www.phoronix.com/scan.php?page=news_item&px=GTK4-macOS-Improved <https://www.phoronix.com/scan.php?page=news_item&px=GTK4-macOS-Improved>> "GTK4 is bringing with it a new macOS back-end that helps improve the performance. The new macOS back-end supports software-based rendering via Cairo or GPU-accelerated rendering by means of OpenGL. Yes, OpenGL is deprecated on macOS but does remain available with macOS 11.0 Big Sur. There isn't yet any Apple Metal or Vulkan-on-MoltenVK support for the macOS back-end with GTK 4.0." My emphasis with BU > On Mar 21, 2021, at 1:11 PM, Peter Teeson <peter.tee...@me.com> wrote: > > Jürgen you are clearly a 10th degree black belt when it comes to the GNU > build system, > At one point I did dig into the relationships and functions of the autotools. > But I am too old a dog beyond basic understanding. Xcode is just as complex > btw but it does have a nice GUI. > > Your explanation below is truly educational in a beautifully terse text. And > I am grateful for your time and patience. > > From a pragmatic POV John & I only discovered the dependancies after we had > built apl and got the SYNTAX error. > Admittedly the ./configure log did flag the missing libs and that resulted in > a non-functional ⎕PLOT. > > Neither of us knew to check for that. Perhaps a Warning echo could be > helpful? > Now we know, thanks to your lucid explanation. > > This thread is going to be saved for inclusion, as an appendix, in version > 2.0 of “A Brief Installation Guide” > > Lastly I am going to check GTK 3 and X11 support for Apple’s metal graphics. > Apple has deprecated a whole bunch of things with Mojave and later. Including > Open GL Open CL. > <https://developer.apple.com/documentation/macos-release-notes/macos-mojave-10_14-release-notes > > <https://developer.apple.com/documentation/macos-release-notes/macos-mojave-10_14-release-notes>> > <https://developer.apple.com/metal/ <https://developer.apple.com/metal/>> > > It crystal clear that Apple is moving to it’s own silicon over the next 2 > years. Gives them ironclad control of everything. > So 3rd party SW does it their way or not at all. I suspect that at some point > they might not permit non-Apple libs. > Maybe I’m too pessimistic - but platform control is their long established > DNA. > > respect > > Peter > > >> On Mar 21, 2021, at 7:30 AM, Dr. Jürgen Sauermann >> <m...@xn--jrgen-sauermann-zvb.de <mailto:m...@xn--jrgen-sauermann-zvb.de>> >> wrote: >> >> Hi Peter, >> >> 1. most ⎕-functions have no dependencies. All remaining dependencies >> are (ideally) determined by ./configue. The result of that is stored in >> config.h by ./configure and you can easily check it with: >> >> grep HAVE_ config.h >> >> in the top-level directory (and after ./configure). >> >> 2. To see who cares for what you can then: >> >> grep HAVE_ src/*hh src/*cc >> >> 3. of all HAVE_ macroa shown, only the following ones are related >> to ⎕-functions in some way: >> >> src/Quad_RVAL.hh:#if HAVE_LIBC >> src/Quad_RE.hh:#ifdef HAVE_LIBPCRE2_32 >> src/Plot_xcb.cc <http://plot_xcb.cc/>:#if HAVE_LIBX11 && HAVE_LIBXCB && >> HAVE_LIBX11_XCB && HAVE_X11_XLIB_XCB_H >> src/Quad_FFT.cc <http://quad_fft.cc/>:#if defined(HAVE_LIBFFTW3) && >> defined(HAVE_FFTW3_H) >> src/Quad_PLOT.cc <http://quad_plot.cc/>:# if defined( HAVE_LIBX11 ) >> src/Quad_PLOT.cc <http://quad_plot.cc/>:# if defined( HAVE_LIBXCB ) >> src/Quad_PLOT.cc <http://quad_plot.cc/>:#i >> src/Quad_RE.cc <http://quad_re.cc/>:#if HAVE_LIBPCRE2_32 >> >> which boils down to ⎕RVAL, ⎕RE, ⎕FFT, and ⎕PLOT being dependent on >> additional libraries, >> >> 4. Not all libraries are always needed, though. For example: >> >> ⎕PLOT can switch between GTK3 and XCB and then uses the better (= GTK3) of >> them, >> ⎕SQL adapts itself to different SQL providers SQLITE3 and POSTGRES and then >> uses all of them, >> >> The HAVE_ macros are not only used to control the behaviour of ⎕-functions >> but to deal >> with platform differences in general. Forr that reason there are more HAVE_ >> macros than >> optional libraries. >> >> 5. The ./configure script not only #defines or #undefs the HAVE_ macros in >> config.h but >> also manipulates the compiler and linker flags in the various Makefiles. So >> that at the end >> of the day only existing librariees and header files are being used in the >> build process. >> >> 6. The test for libraries and header files themselves are located in either >> configure.ac (from >> which ./configure is created) or in one of the m4/*.m4 files (which are all >> included by configure.ac). >> The test are the point where the build preferences of the user are combined >> with the existing >> libraries. A well-supported library comes with a .m4 file that checks its >> installation. Most of the >> autoconf magic happens here, the rest above is only the results of the magic. >> >> >> Best Regards, >> Jürgen >> >> >> >> On 3/20/21 8:45 PM, Peter Teeson wrote: >>> Hi Jürgen: >>> >>> It does indeed >>> >>> Gandalf:~ pteeson$ pkg-config --version >>> 0.29.2 >>> >>> I will look into installing GTK 3, re-builing & testing, and will report >>> back. >>> >>> Homebrew has installer for version 3 for Mojave, Catalina, and Big Sur. >>> <https://formulae.brew.sh/formula/gtk+3#default >>> <https://formulae.brew.sh/formula/gtk+3#default>> >>> >>> I have a question though - >>> >>> How do I find out what the dependancies are for the various add-on System >>> Quad functions? >>> >>> respect…. >>> >>> Peter >>>> On Mar 19, 2021, at 3:41 PM, Dr. Jürgen Sauermann >>>> <m...@xn--jrgen-sauermann-zvb.de <mailto:m...@xn--jrgen-sauermann-zvb.de>> >>>> wrote: >>>> >>>> Hi Peter, >>>> >>>> for GTK you need gtk+-3.0, The version on your box looks too old. >>>> >>>> Does Apple support pkg-config? In that case (and if gtk+3 is installed) >>>> then ./configure should find everything and pkg-config should say (e.g.): >>>> >>>> eedjsa@server68:~$ pkg-config --cflags gtk+-3.0 >>>> -pthread -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 >>>> -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 >>>> -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gtk-3.0 >>>> -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 >>>> -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 >>>> -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 >>>> -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 >>>> -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 >>>> -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include >>>> >>>> eedjsa@server68:~$ pkg-config --libs gtk+-3.0 >>>> -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject >>>> -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 >>>> >>>> Best Regards, >>>> Jürgen >>>> >>>> >>>> On 3/19/21 5:12 PM, Peter Teeson wrote: >>>>> Thanks very much Jürgen.. >>>>> >>>>> build log shows >>>>> ~/Desktop/ForJohn.txt:207: checking for gtk_init in -lgtk-3... no >>>>> >>>>> locate shows >>>>> /usr/local/opt/gtk >>>>> /usr/local/opt/gtk+ >>>>> >>>>> I don’t recall when or why I installed these libs. Maybe because Doxygen >>>>> required one or the other. >>>>> Anyhow it doesn’t really matter why they are there; my ./configure needs >>>>> fixing if I want to use ⎕PLOT. >>>>> >>>>> Since ⎕PLOT is an “extra” to APL I will file this thread so I can >>>>> remember these libs are needed. >>>>> My understanding of ./configure is that all of these additional System >>>>> functions are included by default in the build process. >>>>> >>>>> In this case it was only when trying to plot that the issue surfaced. >>>>> Well we learned a lot. >>>>> >>>>> respect >>>>> >>>>> Peter >>>>> >>>>>> On Mar 19, 2021, at 8:41 AM, Dr. Jürgen Sauermann >>>>>> <m...@xn--jrgen-sauermann-zvb.de >>>>>> <mailto:m...@xn--jrgen-sauermann-zvb.de>> wrote: >>>>>> >>>>>> Gentlemen, >>>>>> >>>>>> I suppose all you need is to tell ./configure where to find the >>>>>> additional include >>>>>> and library files for X11, e.g.: >>>>>> >>>>>> CXXFLAGS="-I /an_extra_include_path -I /another_include_path" \ >>>>>> LDFLAGS="-L /an_extra_library_path -L /another_library_path" \ >>>>>> ./configure <your-configure-options> >>>>>> >>>>>> Note that \ is THE trailing character in the first two lines (so that >>>>>> the above >>>>>> becomes a single line) and that there are NO whitespace before =. >>>>>> >>>>>> Then check the output of ./configure as to if all relevant components >>>>>> for ⎕PLOT were found: >>>>>> >>>>>> checking xcb/xcb.h usability... yes >>>>>> checking xcb/xcb.h presence... yes >>>>>> checking for xcb/xcb.h... yes >>>>>> checking X11/Xlib.h usability... yes >>>>>> checking X11/Xlib.h presence... yes >>>>>> checking for X11/Xlib.h... yes >>>>>> checking X11/Xlib-xcb.h usability... yes >>>>>> checking X11/Xlib-xcb.h presence... yes >>>>>> checking for X11/Xlib-xcb.h... yes >>>>>> checking X11/Xutil.h usability... yes >>>>>> checking X11/Xutil.h presence... yes >>>>>> checking for X11/Xutil.h... yes >>>>>> >>>>>> Note also that xcb has some issues with Unicode characters that make >>>>>> in particular APL characters in window titles and inside the plot windows >>>>>> unreadable. Try to use GTK3 instead. >>>>>> >>>>>> Best Regards, >>>>>> Jürgen >>>>>> >>>>>> >>>>>> On 3/19/21 3:52 AM, Peter Teeson wrote: >>>>>>> P.S. Gandalf:~ pteeson$ ls -al /usr/X11 >>>>>>> lrwxr-xr-x 1 root wheel 8 9 Jul 2020 /usr/X11 -> /opt/X11 >>>>>>> Gandalf:~ pteeson$ ls -al /opt/X11 >>>>>>> total 0 >>>>>>> drwxr-xr-x 9 root wheel 288 27 Sep 2016 . >>>>>>> drwxr-xr-x 3 root wheel 96 26 Sep 2016 .. >>>>>>> drwxr-xr-x 128 root wheel 4096 9 Jul 2020 bin >>>>>>> drwxr-xr-x 4 root wheel 128 29 Oct 2016 etc >>>>>>> drwxr-xr-x 19 root wheel 608 9 Jul 2020 include >>>>>>> drwxr-xr-x 204 root wheel 6528 9 Jul 2020 lib >>>>>>> drwxr-xr-x 4 root wheel 128 26 Oct 2016 libexec >>>>>>> drwxr-xr-x 14 root wheel 448 27 Sep 2016 share >>>>>>> drwxr-xr-x 5 root wheel 160 27 Sep 2016 var >>>>>>> >>>>>>>> On Mar 18, 2021, at 10:32 PM, Peter Teeson <peter.tee...@me.com >>>>>>>> <mailto:peter.tee...@me.com>> wrote: >>>>>>>> >>>>>>>> Hi John: >>>>>>>> >>>>>>>> Same issue here…(svn 1410) on Mojave 10.14.6. >>>>>>>> I have copied the list. >>>>>>>> >>>>>>>> ⎕PLOT '' >>>>>>>> SYNTAX ERROR+ >>>>>>>> ⎕PLOT ‘' >>>>>>>> >>>>>>>> I searched the bug-app archives and there was a bunch of emails last >>>>>>>> summer about missing X11. >>>>>>>> <https://lists.gnu.org/archive/html/bug-apl/2020-08/msg00000.html >>>>>>>> <https://lists.gnu.org/archive/html/bug-apl/2020-08/msg00000.html>> >>>>>>>> <— read this >>>>>>>> >>>>>>>> Never use ⎕PLOT myself. But I did find X11 in my build log: >>>>>>>> >>>>>>>> checking for XGetXCBConnection in -lX11-xcb... no >>>>>>>> checking for XOpenDisplay in -lX11... no >>>>>>>> >>>>>>>> When I do locate X11 in Terminal I get this >>>>>>>> /opt/X11 >>>>>>>> /usr/X11 >>>>>>>> >>>>>>>> So maybe that’s the issue? >>>>>>>> Need to fix $PATH for GNU APL build?? >>>>>>>> >>>>>>>> respect >>>>>>>> >>>>>>>> Peter >>>>>>>>> On Mar 18, 2021, at 4:25 PM, John Helm <jh...@usa.net >>>>>>>>> <mailto:jh...@usa.net>> wrote: >>>>>>>>> Hello Peter - >>>>>>>>> >>>>>>>>> Please forgive me in advance for reaching out directly, but I fear I >>>>>>>>> have a local problem and don't want to spam the list. >>>>>>>>> >>>>>>>>> I just tried your clone suggestion below and it fails for me... >>>>>>>>> >>>>>>>>> I built a VMware Fusion virtual machine with a clean install of >>>>>>>>> Mojave 10.14.6 >>>>>>>>> Installed the XCode command line tools >>>>>>>>> Ran: git clone https://git.savannah.gnu.org/git/apl.git >>>>>>>>> <https://git.savannah.gnu.org/git/apl.git> >>>>>>>>> cd trunk, followed by ./configure, make, sudo make install >>>>>>>>> Installed the apl keyboard and tested with ⎕plot '', which returns a >>>>>>>>> syntax error instead of the ⎕plot message. >>>>>>>>> I have repeated this exercise with High Sierra and Catalina on >>>>>>>>> physical machines with the same result. >>>>>>>>> >>>>>>>>> Also, I performed a MacPorts install on High Sierra and Catalina on >>>>>>>>> physical machines; again, with the same result. >>>>>>>>> >>>>>>>>> I spend much of my time in OS X command shell (iTerm2, to be >>>>>>>>> specific) and seldom have this much difficulty doing builds. >>>>>>>>> Nonetheless, I'm okay with being guilty of user-error until proven >>>>>>>>> innocent. In any case it seems clear that something big-and-basic is >>>>>>>>> wrong. >>>>>>>>> >>>>>>>>> Would you be willing to send me the console log of one of your >>>>>>>>> successful builds? This would let me do a diff against my build logs >>>>>>>>> and possibly give me some clues as to what I'm doing wrong. >>>>>>>>> >>>>>>>>> Kind regards, >>>>>>>>> >>>>>>>>> John >>>>>>>>> >>>>>>>>> On 3/7/21 9:59 PM, Peter Teeson wrote: >>>>>>>>>> Hi Jürgen: >>>>>>>>>> >>>>>>>>>> As promised a brief update note. >>>>>>>>>> >>>>>>>>>> On a clean install of macOS Mojave 10.14.6 I confirm that using >>>>>>>>>> git clone https://git.savannah.gnu.org/git/apl.git >>>>>>>>>> <https://git.savannah.gnu.org/git/apl.git> just works. >>>>>>>>>> >>>>>>>>>> And with the default settings the Terminal waltz builds clean. >>>>>>>>>> And APL executes. >>>>>>>>>> >>>>>>>>>> My hardware is an Early 2009 Mac Pro and so far there has never been >>>>>>>>>> a need >>>>>>>>>> to patch the installer from 2009 Snow Leopard 10.6 thru to 2018 >>>>>>>>>> Mojave 10.14. >>>>>>>>>> >>>>>>>>>> I did apply a patch to the firmware to make it a 5,1 from the >>>>>>>>>> original 4,1. >>>>>>>>>> Will look into whether it’s reasonable to install Catalina and Bug >>>>>>>>>> Sur. >>>>>>>>>> >>>>>>>>>> respect >>>>>>>>>> >>>>>>>>>> Peter >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >