macOS Build
When trying to build the project on macOS, besides what I fixed so far [in my buidlMacOs branch](https://gitlab.com/cimnine/armagetronad/-/compare/trunk...buildMacOs?w=1), I hit the following roadblock, which I don't know how to circumvent for now: ``` g++ -iquote ../../src/tools -iquote ../../src/tools/values -iquote ../../src/resource -iquote ../../src/thirdparty/mathexpr -iquote ../../src/thirdparty/utf8 -iquote ../../src/protobuf -iquote protobuf -iquote ../../src/render -iquote ../../src/ui -iquote ../../src/thirdparty/shttpd -iquote ../../src/thirdparty/scrap -iquote ../../src/network -iquote ../../src/engine -iquote ../../src/engine/sound -iquote ../../src/engine/sound/sdl_mixer -iquote ../../src/thirdparty/particles -iquote ../../src/tron -iquote ../../src/tron/cockpit -iquote ../../src/tron/zone -O2 -std=c++11 -D_THREAD_SAFE -I/usr/local/Cellar/libpng/1.6.37/include/libpng16 -o armagetronad_main tron/armagetronad_main-gFloor.o tron/cockpit/armagetronad_main-cCockpit.o tron/cockpit/armagetronad_main-cMap.o tron/cockpit/armagetronad_main-cCamview.o tron/zone/armagetronad_main-zFortress.o libtron.a libenginecore.a libengine.a libnetwork.a libui.a librender.a libtools.a protobuf/libprotobuf.a thirdparty/mathexpr/libmathexpr.a thirdparty/particles/libparticles.a thirdparty/scrap/libscrap.a -lSDL2_image -lSDL2_mixer -L/usr/local/lib -lSDL2 -lprotobuf -lpthread -lxml2 -L/usr/local/Cellar/libpng/1.6.37/lib -lpng16 -lz -L/usr/local/Cellar/ftgl/2.1.3-rc5/lib -lftgl -L/usr/local/opt/freetype/lib -lfreetype Undefined symbols for architecture x86_64: "_CFRelease", referenced from: sg_OpenURI(char const*) in libtron.a(libtron_a-gStuff.o) sg_OpenDirectory(char const*) in libtron.a(libtron_a-gStuff.o) "_CFURLCreateFromFileSystemRepresentation", referenced from: sg_OpenDirectory(char const*) in libtron.a(libtron_a-gStuff.o) "_CFURLCreateWithBytes", referenced from: sg_OpenURI(char const*) in libtron.a(libtron_a-gStuff.o) "_CFURLGetFSRef", referenced from: sg_OpenDirectory(char const*) in libtron.a(libtron_a-gStuff.o) "_LSOpenCFURLRef", referenced from: sg_OpenURI(char const*) in libtron.a(libtron_a-gStuff.o) "_LSOpenFSRef", referenced from: sg_OpenDirectory(char const*) in libtron.a(libtron_a-gStuff.o) "_glAlphaFunc", referenced from: sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) uAnimationPlayer::Render(tRectangle&) in libui.a(libui_a-uMenu.o) cWidget::Rectangle::Render() in libtron.a(libtron_a-cRectangle.o) "_glBegin", referenced from: cWidget::Map::ClipperRect::Begin(cWidget::Map&, tCoord const&, tCoord const&) in armagetronad_main-cMap.o cWidget::Map::ClipperCircle::Begin(cWidget::Map&, tCoord const&, tCoord const&) in armagetronad_main-cMap.o cWidget::Map::DrawRimWalls(tList<eWallRim, false, false>&) in armagetronad_main-cMap.o cWidget::Map::DrawWalls(tList<gNetPlayerWall, false, false>&) in armagetronad_main-cMap.o gCycle::Render2D(tCoord) const in libtron.a(libtron_a-gCycle.o) sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) glRenderer::BeginLines() in librender.a(librender_a-rGLRender.o) ... "_glBindTexture", referenced from: rISurfaceTexture::OnSelect(bool) in librender.a(librender_a-rTexture.o) rTextureRenderTarget::OnSelect(bool) in librender.a(librender_a-rTextureRenderTarget.o) "_glBlendFunc", referenced from: sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) zShapeCircle::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) zShapePolygon::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) rFontContainer::Render(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, float, tCoord const&) in librender.a(librender_a-rFont.o) paint_sr_lowerSky(eGrid*, int, bool, eCamera*) in libengine.a(libengine_a-eDisplay.o) eGrid::display_simple(eCamera*, int, bool, bool, bool, float, bool, bool, float&) in libengine.a(libengine_a-eDisplay.o) ... "_glCallList", referenced from: rDisplayList::OnCall() in librender.a(librender_a-rDisplayList.o) rDisplayListAlphaSensitive::OnCall() in librender.a(librender_a-rDisplayList.o) "_glClear", referenced from: cWidget::Camview::Render() in armagetronad_main-cCamview.o eCamera::Render() in libengine.a(libengine_a-eCamera.o) rSysDep::SwapGL() in librender.a(librender_a-rSysdep.o) rSysDep::ClearGL() in librender.a(librender_a-rSysdep.o) rSwapTime::Finish(bool) in librender.a(librender_a-rSysdep.o) rSwapTime::ThroughputSwap(bool) in librender.a(librender_a-rSysdep.o) rSwapTime::LatencySwap(bool) in librender.a(librender_a-rSysdep.o) ... "_glClearColor", referenced from: rSysDep::SwapGL() in librender.a(librender_a-rSysdep.o) rSysDep::ClearGL() in librender.a(librender_a-rSysdep.o) rSwapTime::Finish(bool) in librender.a(librender_a-rSysdep.o) rSwapTime::ThroughputSwap(bool) in librender.a(librender_a-rSysdep.o) rSwapTime::LatencySwap(bool) in librender.a(librender_a-rSysdep.o) "_glClipPlane", referenced from: cWidget::Map::ClipperRect::Begin(cWidget::Map&, tCoord const&, tCoord const&) in armagetronad_main-cMap.o cWidget::Map::ClipperCircle::Clip(int, tCoord const&, tCoord const&) in armagetronad_main-cMap.o "_glColor3f", referenced from: rViewportConfiguration::DemonstrateViewport(tString*) in librender.a(librender_a-rViewport.o) gTextureCycle::OnSelect(bool) in libtron.a(libtron_a-gCycle.o) gLaggometer::LagOMeterRenderer::render(float) in libtron.a(libtron_a-gCycle.o) gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) gLaggometer::AxesIndicator::line(int) in libtron.a(libtron_a-gCycle.o) rTextField::~rTextField() in librender.a(librender_a-rFont.o) ArmageTron_color_menuitem::RenderBackground() in libtron.a(libtron_a-gMenus.o) ... "_glColor4f", referenced from: cWidget::Map::DrawRimWalls(tList<eWallRim, false, false>&) in armagetronad_main-cMap.o cWidget::Map::DrawWalls(tList<gNetPlayerWall, false, false>&) in armagetronad_main-cMap.o uMenu::OnEnter() in libui.a(libui_a-uMenu.o) uMenu::GenericBackground(float) in libui.a(libui_a-uMenu.o) gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) gCycle::Render2D(tCoord) const in libtron.a(libtron_a-gCycle.o) gCycle::RenderName(eCamera const*) in libtron.a(libtron_a-gCycle.o) ... "_glColorMask", referenced from: eCamera::Render() in libengine.a(libengine_a-eCamera.o) "_glDeleteLists", referenced from: rDisplayList::~rDisplayList() in librender.a(librender_a-rDisplayList.o) rDisplayList::Clear(int) in librender.a(librender_a-rDisplayList.o) rDisplayList::OnCall() in librender.a(librender_a-rDisplayList.o) rDisplayList::ClearAll() in librender.a(librender_a-rDisplayList.o) rDisplayList::Cancel() in librender.a(librender_a-rDisplayList.o) rDisplayListAlphaSensitive::OnCall() in librender.a(librender_a-rDisplayList.o) "_glDeleteTextures", referenced from: rGLuintObjectTexture::DoDelete() in librender.a(librender_a-rTexture.o) rGLuintObjectTexture::DoDelete() in librender.a(librender_a-rTextureRenderTarget.o) "_glDepthFunc", referenced from: sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) eGrid::display_simple(eCamera*, int, bool, bool, bool, float, bool, bool, float&) in libengine.a(libengine_a-eDisplay.o) "_glDepthMask", referenced from: zShapeCircle::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) zShapePolygon::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) eGrid::display_simple(eCamera*, int, bool, bool, bool, float, bool, bool, float&) in libengine.a(libengine_a-eDisplay.o) "_glDisable", referenced from: cCockpit::Render() in armagetronad_main-cCockpit.o cWidget::Map::ClipperRect::End() in armagetronad_main-cMap.o cWidget::Map::ClipperCircle::Begin(cWidget::Map&, tCoord const&, tCoord const&) in armagetronad_main-cMap.o cWidget::Map::ClipperCircle::End() in armagetronad_main-cMap.o cWidget::Map::Render() in armagetronad_main-cMap.o cWidget::Map::DrawRimWalls(tList<eWallRim, false, false>&) in armagetronad_main-cMap.o sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) ... "_glDisableClientState", referenced from: rModel::Render() in librender.a(librender_a-rModel.o) "_glDrawBuffer", referenced from: sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) "_glDrawElements", referenced from: rModel::Render() in librender.a(librender_a-rModel.o) "_glEnable", referenced from: cCockpit::Render() in armagetronad_main-cCockpit.o cWidget::Map::ClipperRect::Begin(cWidget::Map&, tCoord const&, tCoord const&) in armagetronad_main-cMap.o cWidget::Map::ClipperCircle::Clip(int, tCoord const&, tCoord const&) in armagetronad_main-cMap.o sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) sr_DepthOffset(bool) in librender.a(librender_a-rScreen.o) rISurfaceTexture::OnSelect(bool) in librender.a(librender_a-rTexture.o) uAnimationPlayer::Render(tRectangle&) in libui.a(libui_a-uMenu.o) ... "_glEnableClientState", referenced from: rModel::Render() in librender.a(librender_a-rModel.o) "_glEnd", referenced from: cWidget::Map::ClipperRect::Begin(cWidget::Map&, tCoord const&, tCoord const&) in armagetronad_main-cMap.o cWidget::Map::ClipperCircle::Begin(cWidget::Map&, tCoord const&, tCoord const&) in armagetronad_main-cMap.o cWidget::Map::DrawRimWalls(tList<eWallRim, false, false>&) in armagetronad_main-cMap.o cWidget::Map::DrawWalls(tList<gNetPlayerWall, false, false>&) in armagetronad_main-cMap.o gCycle::Render2D(tCoord) const in libtron.a(libtron_a-gCycle.o) sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) glRenderer::End(bool) in librender.a(librender_a-rGLRender.o) ... "_glEndList", referenced from: rDisplayList::Cancel() in librender.a(librender_a-rDisplayList.o) rDisplayListFiller::Stop() in librender.a(librender_a-rDisplayList.o) rDisplayListFiller::~rDisplayListFiller() in librender.a(librender_a-rDisplayList.o) rDisplayListFiller::~rDisplayListFiller() in librender.a(librender_a-rDisplayList.o) "_glFinish", referenced from: rSwapTime::ThroughputSwap(bool) in librender.a(librender_a-rSysdep.o) rSwapTime::LatencySwap(bool) in librender.a(librender_a-rSysdep.o) "_glFlush", referenced from: rSwapTime::Finish(bool) in librender.a(librender_a-rSysdep.o) "_glFrontFace", referenced from: eGrid::Render(eCamera*, int, float&) in libengine.a(libengine_a-eDisplay.o) "_glFrustum", referenced from: rViewport::Perspective(float, float, float, float) in librender.a(librender_a-rViewport.o) "_glGenLists", referenced from: rDisplayListFiller::rDisplayListFiller(rDisplayList&, bool) in librender.a(librender_a-rDisplayList.o) rDisplayListFiller::Start(bool) in librender.a(librender_a-rDisplayList.o) rDisplayListFiller::rDisplayListFiller(rDisplayList&, bool) in librender.a(librender_a-rDisplayList.o) "_glGenTextures", referenced from: rGLuintObjectTexture::DoGen() in librender.a(librender_a-rTexture.o) rGLuintObjectTexture::DoGen() in librender.a(librender_a-rTextureRenderTarget.o) "_glGetFloatv", referenced from: gCycle::RenderName(eCamera const*) in libtron.a(libtron_a-gCycle.o) "_glGetIntegerv", referenced from: cWidget::Map::ClipperCircle::ClipperCircle() in armagetronad_main-cMap.o cWidget::Map::ClipperCircle::ClipperCircle() in armagetronad_main-cMap.o cWidget::Map::ClipperCircle::create() in armagetronad_main-cMap.o rISurfaceTexture::Upload(rSurface const&) in librender.a(librender_a-rTexture.o) "_glGetString", referenced from: lowlevel_sr_InitDisplay() in librender.a(librender_a-rScreen.o) "_glGetTexLevelParameteriv", referenced from: rISurfaceTexture::Upload(rSurface const&) in librender.a(librender_a-rTexture.o) "_glHint", referenced from: cWidget::Map::Render() in armagetronad_main-cMap.o sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) "_glIsEnabled", referenced from: cCockpit::Render() in armagetronad_main-cCockpit.o "_glLightfv", referenced from: gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) "_glLoadIdentity", referenced from: MenuBackground() in armagetronad_main-gFloor.o cWidget::Map::Render() in armagetronad_main-cMap.o cWidget::Camview::Render() in armagetronad_main-cCamview.o sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) gCycle::RenderName(eCamera const*) in libtron.a(libtron_a-gCycle.o) eCamera::Render() in libengine.a(libengine_a-eCamera.o) sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) ... "_glLoadMatrixf", referenced from: MenuBackground() in armagetronad_main-gFloor.o "_glMaterialfv", referenced from: gTextureCycle::OnSelect(bool) in libtron.a(libtron_a-gCycle.o) gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) "_glMatrixMode", referenced from: cWidget::Map::Render() in armagetronad_main-cMap.o cWidget::Camview::Render() in armagetronad_main-cCamview.o sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) eCamera::Render() in libengine.a(libengine_a-eCamera.o) sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) glRenderer::ProjMatrix() in librender.a(librender_a-rGLRender.o) glRenderer::ModelMatrix() in librender.a(librender_a-rGLRender.o) ... "_glMultMatrixf", referenced from: cWidget::Map::DrawMap(bool, bool, double, double, double, double, double, double, double, double, double, double) in armagetronad_main-cMap.o gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) gCycle::Render2D(tCoord) const in libtron.a(libtron_a-gCycle.o) zShapeCircle::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) zShapeCircle::Render2D(tCoord) const in libtron.a(libtron_a-zShape.o) glRenderer::MultMatrix(float (*) [4]) in librender.a(librender_a-rGLRender.o) "_glNewList", referenced from: rDisplayListFiller::rDisplayListFiller(rDisplayList&, bool) in librender.a(librender_a-rDisplayList.o) rDisplayListFiller::Start(bool) in librender.a(librender_a-rDisplayList.o) rDisplayListFiller::rDisplayListFiller(rDisplayList&, bool) in librender.a(librender_a-rDisplayList.o) "_glNormal3f", referenced from: Vec3::RenderNormal() in librender.a(librender_a-rModel.o) "_glNormal3fv", referenced from: rModel::Render() in librender.a(librender_a-rModel.o) "_glNormalPointer", referenced from: rModel::Render() in librender.a(librender_a-rModel.o) "_glPolygonOffset", referenced from: sr_DepthOffset(bool) in librender.a(librender_a-rScreen.o) "_glPopMatrix", referenced from: cWidget::Map::DrawMap(bool, bool, double, double, double, double, double, double, double, double, double, double) in armagetronad_main-cMap.o cWidget::Camview::Render() in armagetronad_main-cCamview.o gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) gCycle::Render2D(tCoord) const in libtron.a(libtron_a-gCycle.o) gCycle::RenderName(eCamera const*) in libtron.a(libtron_a-gCycle.o) zShapeCircle::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) zShapeCircle::Render2D(tCoord) const in libtron.a(libtron_a-zShape.o) ... "_glPushMatrix", referenced from: cWidget::Map::DrawMap(bool, bool, double, double, double, double, double, double, double, double, double, double) in armagetronad_main-cMap.o cWidget::Camview::Render() in armagetronad_main-cCamview.o gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) gCycle::Render2D(tCoord) const in libtron.a(libtron_a-gCycle.o) gCycle::RenderName(eCamera const*) in libtron.a(libtron_a-gCycle.o) zShapeCircle::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) zShapeCircle::Render2D(tCoord) const in libtron.a(libtron_a-zShape.o) ... "_glRasterPos2f", referenced from: rTextField::FlushLine(int, bool) in librender.a(librender_a-rFont.o) rFontContainer::Render(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, float, tCoord const&) in librender.a(librender_a-rFont.o) "_glReadPixels", referenced from: make_screenshot() in librender.a(librender_a-rSysdep.o) "_glRectf", referenced from: rViewportConfiguration::DemonstrateViewport(tString*) in librender.a(librender_a-rViewport.o) uMenu::GenericBackground(float) in libui.a(libui_a-uMenu.o) ArmageTron_color_menuitem::RenderBackground() in libtron.a(libtron_a-gMenus.o) rConsole::Render() in librender.a(librender_a-rConsoleGraph.o) "_glRotatef", referenced from: zShapePolygon::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) zShapePolygon::Render2D(tCoord) const in libtron.a(libtron_a-zShape.o) rFontContainer::Render(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, float, tCoord const&) in librender.a(librender_a-rFont.o) "_glScalef", referenced from: cWidget::Map::DrawMap(bool, bool, double, double, double, double, double, double, double, double, double, double) in armagetronad_main-cMap.o gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) zShapePolygon::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) zShapePolygon::Render2D(tCoord) const in libtron.a(libtron_a-zShape.o) eCamera::Render() in libengine.a(libengine_a-eCamera.o) rFontContainer::Render(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, float, tCoord const&) in librender.a(librender_a-rFont.o) glRenderer::ScaleMatrix(float) in librender.a(librender_a-rGLRender.o) ... "_glShadeModel", referenced from: sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) "_glTexCoord2d", referenced from: MenuBackground() in armagetronad_main-gFloor.o "_glTexCoord2f", referenced from: gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) rGradient::DrawAt(tCoord const&) in librender.a(librender_a-rGradient.o) gNetPlayerWall::RenderNormal(tCoord const&, tCoord const&, float, float, float, float, float, float, gNetPlayerWall::gWallRenderMode) in libtron.a(libtron_a-gWall.o) gNetPlayerWall::RenderBegin(tCoord const&, tCoord const&, float, float, float, float, float, float, float, float, gNetPlayerWall::gWallRenderMode) in libtron.a(libtron_a-gWall.o) sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) glRenderer::TexCoord(float, float) in librender.a(librender_a-rGLRender.o) glRenderer::TexVertex(float, float, float, float, float) in librender.a(librender_a-rGLRender.o) ... "_glTexCoord3f", referenced from: glRenderer::TexCoord(float, float, float) in librender.a(librender_a-rGLRender.o) "_glTexCoord3fv", referenced from: rModel::Render() in librender.a(librender_a-rModel.o) "_glTexCoord4f", referenced from: glRenderer::TexCoord(float, float, float, float) in librender.a(librender_a-rGLRender.o) infinity_xy_plane(tCoord const&, tCoord const&, float) in libengine.a(libengine_a-eDisplay.o) "_glTexCoordPointer", referenced from: rModel::Render() in librender.a(librender_a-rModel.o) "_glTexImage2D", referenced from: rISurfaceTexture::Upload(rSurface const&) in librender.a(librender_a-rTexture.o) "_glTexParameteri", referenced from: rISurfaceTexture::Upload(rSurface const&) in librender.a(librender_a-rTexture.o) rISurfaceTexture::OnSelect(bool) in librender.a(librender_a-rTexture.o) rResourceTexture::Select() in librender.a(librender_a-rTexture.o) uAnimationPlayer::Render(tRectangle&) in libui.a(libui_a-uMenu.o) sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) "_glTranslatef", referenced from: cWidget::Map::DrawMap(bool, bool, double, double, double, double, double, double, double, double, double, double) in armagetronad_main-cMap.o rViewport::Perspective(float, float, float, float) in librender.a(librender_a-rViewport.o) gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) gCycle::RenderName(eCamera const*) in libtron.a(libtron_a-gCycle.o) zShapePolygon::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) zShapePolygon::Render2D(tCoord) const in libtron.a(libtron_a-zShape.o) eCamera::Render() in libengine.a(libengine_a-eCamera.o) ... "_glVertex2f", referenced from: MenuBackground() in armagetronad_main-gFloor.o cWidget::Map::ClipperCircle::Begin(cWidget::Map&, tCoord const&, tCoord const&) in armagetronad_main-cMap.o cWidget::Map::DrawRimWalls(tList<eWallRim, false, false>&) in armagetronad_main-cMap.o cWidget::Map::DrawWalls(tList<gNetPlayerWall, false, false>&) in armagetronad_main-cMap.o rViewportConfiguration::DemonstrateViewport(tString*) in librender.a(librender_a-rViewport.o) gLaggometer::LagOMeterRenderer::drawTriangle(tCoord, int, float, int) in libtron.a(libtron_a-gCycle.o) gCycle::Render2D(tCoord) const in libtron.a(libtron_a-gCycle.o) ... "_glVertex3f", referenced from: gCycle::Render(eCamera const*) in libtron.a(libtron_a-gCycle.o) zShapeCircle::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) zShapePolygon::Render(eCamera const*) in libtron.a(libtron_a-zShape.o) gNetPlayerWall::RenderNormal(tCoord const&, tCoord const&, float, float, float, float, float, float, gNetPlayerWall::gWallRenderMode) in libtron.a(libtron_a-gWall.o) gNetPlayerWall::RenderBegin(tCoord const&, tCoord const&, float, float, float, float, float, float, float, float, gNetPlayerWall::gWallRenderMode) in libtron.a(libtron_a-gWall.o) glRenderer::Vertex(float, float, float) in librender.a(librender_a-rGLRender.o) glRenderer::TexVertex(float, float, float, float, float) in librender.a(librender_a-rGLRender.o) ... "_glVertex3fv", referenced from: glRenderer::Vertex3(float*) in librender.a(librender_a-rGLRender.o) rModel::Render() in librender.a(librender_a-rModel.o) "_glVertex4f", referenced from: glRenderer::Vertex(float, float, float, float) in librender.a(librender_a-rGLRender.o) infinity_xy_plane(tCoord const&, tCoord const&, float) in libengine.a(libengine_a-eDisplay.o) "_glVertexPointer", referenced from: rModel::Render() in librender.a(librender_a-rModel.o) "_glViewport", referenced from: cCockpit::Render() in armagetronad_main-cCockpit.o cWidget::Camview::Render() in armagetronad_main-cCamview.o sr_ResetRenderState(bool) in librender.a(librender_a-rScreen.o) rViewport::Select() in librender.a(librender_a-rViewport.o) rViewportConfiguration::Select(int) in librender.a(librender_a-rViewport.o) rViewportConfiguration::DemonstrateViewport(tString*) in librender.a(librender_a-rViewport.o) sr_MotionBlurCore(float, rTextureRenderTarget&) in librender.a(librender_a-rSysdep.o) ... "_gluBuild2DMipmaps", referenced from: rISurfaceTexture::Upload(rSurface const&) in librender.a(librender_a-rTexture.o) "_gluLookAt", referenced from: eCamera::Render() in libengine.a(libengine_a-eCamera.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: *** [armagetronad_main] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 ``` Here's something about the Mac I'm using: ```bash $ uname -a Darwin hostname 20.2.0 Darwin Kernel Version 20.2.0: Wed Dec 2 20:39:59 PST 2020; root:xnu-7195.60.75~1/RELEASE_X86_64 x86_64 i386 MacBookPro16,1 Darwin ``` I must say that my experience with Autoconf/Automake is fairly limited, to not say non-existant. So even basic tips are very welcome :)
issue