Jakz / retro8

PICO-8 implementation with SDL2/SDL1.2 and RetroArch back-ends
GNU General Public License v3.0
253 stars 29 forks source link

Compiling Fails (OSX) #12

Closed zach-morris closed 4 years ago

zach-morris commented 4 years ago

Perhaps it's too early to create an issue for this, so if so feel free to close/delete this.

Attempting to compile on OSX fails as follows:

xxxs-MacBook-Pro:~ xxx$ cd /Volumes/xxx/GIT/retro8/
xxxs-MacBook-Pro:retro8 xxx$ make -j$(nproc)
-bash: nproc: command not found
CC src/lua/lapi.c
CC src/lua/lauxlib.c
CC src/lua/lbaselib.c
CC src/lua/lbitlib.c
CC src/lua/lcode.c
CC src/lua/lcorolib.c
CC src/lua/lctype.c
CC src/lua/ldblib.c
CC src/lua/ldebug.c
CC src/lua/ldo.c
CC src/lua/ldump.c
CC src/lua/lfunc.c
CC src/lua/lgc.c
CC src/lua/linit.c
CC src/lua/liolib.c
CC src/lua/llex.c
CC src/lua/lmathlib.c
CC src/lua/lmem.c
CC src/lua/loadlib.c
CC src/lua/lobject.c
CC src/lua/lopcodes.c
CC src/lua/loslib.c
CC src/lua/lparser.c
CC src/lua/lstate.c
CC src/lua/lstring.c
CC src/lua/lstrlib.c
CC src/lua/ltable.c
CC src/lua/ltablib.c
CC src/lua/ltests.c
CC src/lua/ltm.c
CC src/lua/lundump.c
CC src/lua/lutf8lib.c
CC src/lua/lvm.c
CC src/lua/lzio.c
CXX src/io/loader.cpp
CXX src/io/picopng.cpp
CXX src/io/stegano.cpp
CXX src/retroarch/libretro.cpp
CXX src/vm/gfx.cpp
CXX src/vm/lua_bridge.cpp
CXX src/vm/machine.cpp
CXX src/vm/memory.cpp
CXX src/vm/sound.cpp
In file included from src/io/picopng.cpp:2:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
In file included from src/vm/sound.cpp:1:
In file included from ./src/vm/sound.h:3:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
In file included from src/vm/gfx.cpp:1:
In file included from ./src/vm/gfx.h:3:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h./src/vm/defines.h::3236::2621::  warningwarning: : aliasalias  declarationsdeclarations  areare  aa  C++11C++11  extensionextension  [-Wc++11-extensions][-Wc++11-extensions]

  using address_t = int32_t;
  using sprite_flags_t = uint8_t;
                    ^                         ^

./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/gfx.cpp:1:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/retroarch/libretro.cpp:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
In file included from src/retroarch/libretro.cpp:4:
In file included from ./src/vm/gfx.h:3:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/io/stegano.cpp:1:
In file included from ./src/io/stegano.h:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
In file included from src/io/stegano.cpp:1:
In file included from ./src/io/stegano.h:5:
In file included from ./src/vm/machine.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
In file included from src/io/loader.cpp:1:
In file included from ./src/io/loader.h:1:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declaraIn file included from src/retroarch/libretro.cpp:4:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
tions are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
In file included from src/io/loader.cpp:1:
In file included from ./src/io/loader.h:3:
In file included from ./src/vm/machine.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/memory.cpp:1:
In file included from ./src/vm/memory.h:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
In file included from src/vm/sound.cpp:1:
In file included from ./src/vm/sound.h:4:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/io/loader.cpp:1:
In file included from ./src/io/loader.h:3:
In file included from ./src/vm/machine.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
In file included from src/io/stegano.cpp:1:
In file included from ./src/io/stegano.h:5:
In file included from ./src/vm/machine.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
In file included from src/vm/memory.cpp:1:
In file included from ./src/vm/memory.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26./src/vm/gfx.h:: 17:12error::  expectederror : ';' afterunknown  toptype  levelname  declarator'constexpr'

    static constexpr size_t GLYPH_WIDTH = 4;
           ^
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/memory.cpp:1:
In file included from ./src/vm/memory.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
In file included from src/vm/machine.cpp:1:
In file included from ./src/vm/machine.h:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
In file included from src/vm/machine.cpp:1:
In file included from ./src/vm/machine.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
10 warnings and 20 errors generated.
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
make: *** [src/vm/gfx.o] Error 1
make: *** Waiting for unfinished jobs....
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/machine.cpp:1:
In file included from ./src/vm/machine.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from src/vm/lua_bridge.cpp:3:
In file included from ./src/vm/machine.h:3:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
In file included from src/vm/lua_bridge.cpp:3:
In file included from ./src/vm/machine.h:4:
./src/vm/defines.h:7:8: error: ISO C++ forbids forward references to 'enum' types
  enum color_t : uint8_t
       ^
./src/vm/defines.h:7:16: error: expected unqualified-id
  enum color_t : uint8_t
               ^
./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
  enum class button_t
       ^
./src/vm/defines.h:25:10: error: unknown type name 'constexpr'
  static constexpr size_t BUTTON_COUNT = 6;
         ^
./src/vm/defines.h:25:26: error: expected ';' after top level declarator
  static constexpr size_t BUTTON_COUNT = 6;
                         ^
                         ;
./src/vm/defines.h:26:10: error: unknown type name 'constexpr'
  static constexpr size_t PLAYER_COUNT = 2;
         ^
./src/vm/defines.h:26:26: error: expected ';' after top level declarator
  static constexpr size_t PLAYER_COUNT = 2;
                         ^
                         ;
./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using coord_t = int32_t;
                  ^
./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using amount_t = int32_t;
                   ^
./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using index_t = uint32_t;
                  ^
./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_index_t = uint8_t;
                         ^
./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using sprite_flags_t = uint8_t;
                         ^
./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using integral_t = int32_t;
                     ^
./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using color_index_t = uint8_t;
                        ^
./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using palette_index_t = size_t;
                          ^
./src/vm/defines.h:35:27: error: unknown type name 'size_t'
./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using address_t = int32_t;
                    ^
./src/vm/defines.h:39:10: error: unknown type name 'constexpr'
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
         ^
./src/vm/defines.h:39:27: error: expected ';' after top level declarator
  static constexpr coord_t TEXT_LINE_HEIGHT = 6;
                          ^
                          ;
In file included from src/vm/lua_bridge.cpp:3:
In file included from ./src/vm/machine.h:5:
./src/vm/gfx.h:12:12: error: unknown type name 'constexpr'
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
           ^
./src/vm/gfx.h:12:28: error: expected ';' after top level declarator
    static constexpr size_t PIXEL_TO_BYTE_RATIO = 2;
                           ^
                           ;
./src/vm/gfx.h:14:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_WIDTH = 8;
           ^
./src/vm/gfx.h:14:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_WIDTH = 8;
                           ^
                           ;
./src/vm/gfx.h:15:12: error: unknown type name 'constexpr'
    static constexpr size_t SPRITE_HEIGHT = 8;
           ^
./src/vm/gfx.h:15:28: error: expected ';' after top level declarator
    static constexpr size_t SPRITE_HEIGHT = 8;
                           ^
                           ;
./src/vm/gfx.h:17:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_WIDTH = 4;
           ^
./src/vm/gfx.h:17:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_WIDTH = 4;
                           ^
                           ;
./src/vm/gfx.h:18:12: error: unknown type name 'constexpr'
    static constexpr size_t GLYPH_HEIGHT = 6;
           ^
./src/vm/gfx.h:18:28: error: expected ';' after top level declarator
    static constexpr size_t GLYPH_HEIGHT = 6;
                           ^
                           ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from src/vm/sound.cpp:1:
./src/vm/sound.h:18:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using volume_t = int32_t;
                     ^
./src/vm/sound.h:19:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using pitch_t = int32_t;
                    ^
./src/vm/sound.h:20:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using frequency_t = int32_t;
                        ^
./src/vm/sound.h:21:29: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using channel_index_t = int32_t;
                            ^
./src/vm/sound.h:22:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using sound_index_t = int32_t;
                          ^
./src/vm/sound.h:23:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
    using music_index_t = int32_t;
                          ^
./src/vm/sound.h:25:10: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
    enum class Waveform
         ^
./src/vm/sound.h:30:10: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
    enum class Effect
         ^
./src/vm/sound.h:35:10: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions]
    enum class Tone { C, CS, D, DS, E, F, FS, G, GS, A, AS, B };
         ^
./src/vm/sound.h:39:7: error: unknown type name 'constexpr'
      constexpr static std::array<float, 12> frequencies = {
      ^
./src/vm/sound.h:39:17: error: expected member name or ';' after declaration specifiers
      constexpr static std::array<float, 12> frequencies = {
      ~~~~~~~~~ ^
./src/vm/sound.h:46:76: error: use of undeclared identifier 'frequencies'; did you mean 'frequency'?
      static frequency_t frequency(Tone tone, int32_t octave = 1) { return frequencies[size_t(tone)] * octave; };
                                                                           ^~~~~~~~~~~
                                                                           frequency
./src/vm/sound.h:47:28: note: 'frequency' declared here
        static frequency_t frequency(pitch_t pitch) { return frequencies[pitch % 12] / 2 * (1 << (pitch / 12)); }
                           ^
./src/vm/sound.h:47:62: error: use of undeclared identifier 'frequencies'
        static frequency_t frequency(pitch_t pitch) { return frequencies[pitch % 12] / 2 * (1 << (pitch / 12)); }
                                                             ^
./src/vm/sound.h:52:14: error: unknown type name 'constexpr'
      static constexpr uint16_t EffectMask = 0x7000;
             ^
./src/vm/sound.h:52:32: error: expected ';' at end of declaration list
      static constexpr uint16_t EffectMask = 0x7000;
                               ^
                               ;
./src/vm/sound.h:53:14: error: unknown type name 'constexpr'
      static constexpr uint16_t VolumeMask = 0x0E00;
             ^
./src/vm/sound.h:53:32: error: expected ';' at end of declaration list
      static constexpr uint16_t VolumeMask = 0x0E00;
                               ^
                               ;
./src/vm/sound.h:54:14: error: unknown type name 'constexpr'
      static constexpr uint16_t WaveformMask = 0x01C0;
             ^
./src/vm/sound.h:54:32: error: expected ';' at end of declaration list
      static constexpr uint16_t WaveformMask = 0x01C0;
                               ^
                               ;
fatal error: too many errors emitted, stopping now [-ferror-limit=]
16 warnings and 20 errors generated.
16 warnings and 20 errors generated.
make: *** [src/io/stegano.o] Error 1
make: *** [src/retroarch/libretro.o] Error 1
16 warnings and 20 errors generated.
make: *** [src/vm/memory.o] Error 1
16 warnings and 20 errors generated.
16 warnings and 20 errors generated.
make: *** [src/io/loader.o] Error 1
make: *** [src/vm/machine.o] Error 1
25 warnings and 20 errors generated.
make: *** [src/vm/sound.o] Error 1
16 warnings and 20 errors generated.
make: *** [src/vm/lua_bridge.o] Error 1
6 warnings generated.
In file included from src/io/picopng.cpp:2:
./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u32 = uint32_t;
            ^
./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using u16 = uint16_t;
            ^
./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s32 = int32_t;
            ^
./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using s64 = int64_t;
            ^
./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using byte = uint8_t;
             ^
./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
  using utype = typename std::underlying_type<T>::type;
                ^
6 warnings generated.

Anything specific to configure for compiling?

gingerbeardman commented 4 years ago

Strange, you should definitely have nproc on macOS.

I just built it successfully on Mojave and got a lot further.

Details $ make CC src/lua/lapi.c CC src/lua/lauxlib.c CC src/lua/lbaselib.c CC src/lua/lbitlib.c CC src/lua/lcode.c CC src/lua/lcorolib.c CC src/lua/lctype.c CC src/lua/ldblib.c CC src/lua/ldebug.c CC src/lua/ldo.c CC src/lua/ldump.c CC src/lua/lfunc.c CC src/lua/lgc.c CC src/lua/linit.c CC src/lua/liolib.c CC src/lua/llex.c CC src/lua/lmathlib.c CC src/lua/lmem.c CC src/lua/loadlib.c CC src/lua/lobject.c CC src/lua/lopcodes.c CC src/lua/loslib.c CC src/lua/lparser.c CC src/lua/lstate.c CC src/lua/lstring.c CC src/lua/lstrlib.c CC src/lua/ltable.c CC src/lua/ltablib.c CC src/lua/ltests.c CC src/lua/ltm.c CC src/lua/lundump.c CC src/lua/lutf8lib.c CC src/lua/lvm.c CC src/lua/lzio.c CXX src/io/loader.cpp In file included from src/io/loader.cpp:1: In file included from ./src/io/loader.h:1: ./src/common.h:7:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using u32 = uint32_t; ^ ./src/common.h:8:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using u16 = uint16_t; ^ ./src/common.h:10:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using s32 = int32_t; ^ ./src/common.h:11:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using s64 = int64_t; ^ ./src/common.h:13:14: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using byte = uint8_t; ^ ./src/common.h:18:17: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using utype = typename std::underlying_type::type; ^ In file included from src/io/loader.cpp:1: In file included from ./src/io/loader.h:3: In file included from ./src/vm/machine.h:4: ./src/vm/defines.h:15:8: warning: scoped enumerations are a C++11 extension [-Wc++11-extensions] enum class button_t ^ ./src/vm/defines.h:25:10: error: unknown type name 'constexpr' static constexpr size_t BUTTON_COUNT = 6; ^ ./src/vm/defines.h:25:26: error: expected ';' after top level declarator static constexpr size_t BUTTON_COUNT = 6; ^ ; ./src/vm/defines.h:26:10: error: unknown type name 'constexpr' static constexpr size_t PLAYER_COUNT = 2; ^ ./src/vm/defines.h:26:26: error: expected ';' after top level declarator static constexpr size_t PLAYER_COUNT = 2; ^ ; ./src/vm/defines.h:28:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using coord_t = int32_t; ^ ./src/vm/defines.h:29:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using amount_t = int32_t; ^ ./src/vm/defines.h:30:19: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using index_t = uint32_t; ^ ./src/vm/defines.h:31:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using sprite_index_t = uint8_t; ^ ./src/vm/defines.h:32:26: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using sprite_flags_t = uint8_t; ^ ./src/vm/defines.h:33:22: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using integral_t = int32_t; ^ ./src/vm/defines.h:34:25: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using color_index_t = uint8_t; ^ ./src/vm/defines.h:35:27: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using palette_index_t = size_t; ^ ./src/vm/defines.h:35:27: error: unknown type name 'size_t' ./src/vm/defines.h:36:21: warning: alias declarations are a C++11 extension [-Wc++11-extensions] using address_t = int32_t; ^ ./src/vm/defines.h:39:10: error: unknown type name 'constexpr' static constexpr coord_t TEXT_LINE_HEIGHT = 6; ^ ./src/vm/defines.h:39:27: error: expected ';' after top level declarator static constexpr coord_t TEXT_LINE_HEIGHT = 6; ^ ; In file included from src/io/loader.cpp:1: In file included from ./src/io/loader.h:3: In file included from ./src/vm/machine.h:5: ./src/vm/gfx.h:12:12: error: unknown type name 'constexpr' static constexpr size_t PIXEL_TO_BYTE_RATIO = 2; ^ ./src/vm/gfx.h:12:28: error: expected ';' after top level declarator static constexpr size_t PIXEL_TO_BYTE_RATIO = 2; ^ ; ./src/vm/gfx.h:14:12: error: unknown type name 'constexpr' static constexpr size_t SPRITE_WIDTH = 8; ^ ./src/vm/gfx.h:14:28: error: expected ';' after top level declarator static constexpr size_t SPRITE_WIDTH = 8; ^ ; ./src/vm/gfx.h:15:12: error: unknown type name 'constexpr' static constexpr size_t SPRITE_HEIGHT = 8; ^ ./src/vm/gfx.h:15:28: error: expected ';' after top level declarator static constexpr size_t SPRITE_HEIGHT = 8; ^ ; ./src/vm/gfx.h:17:12: error: unknown type name 'constexpr' static constexpr size_t GLYPH_WIDTH = 4; ^ ./src/vm/gfx.h:17:28: error: expected ';' after top level declarator static constexpr size_t GLYPH_WIDTH = 4; ^ ; ./src/vm/gfx.h:18:12: error: unknown type name 'constexpr' static constexpr size_t GLYPH_HEIGHT = 6; ^ ./src/vm/gfx.h:18:28: error: expected ';' after top level declarator static constexpr size_t GLYPH_HEIGHT = 6; ^ ; ./src/vm/gfx.h:20:12: error: unknown type name 'constexpr' static constexpr size_t SPRITE_BYTES_PER_SPRITE_ROW = SPRITE_WIDTH / PIXEL_TO_... ^ ./src/vm/gfx.h:20:28: error: expected ';' after top level declarator static constexpr size_t SPRITE_BYTES_PER_SPRITE_ROW = SPRITE_WIDTH / PIXEL_TO_... ^ ; fatal error: too many errors emitted, stopping now [-ferror-limit=] 16 warnings and 20 errors generated. make: *** [src/io/loader.o] Error 1
zach-morris commented 4 years ago

Ah, i didn't even realize it didn't find nproc at the top. I tried just make, make -j2, and make -j$(sysctl -n hw.physicalcpu). All fail in a similar manner and dont complete the build.

gingerbeardman commented 4 years ago

I believe it fails because this code uses modern C++ features

So, changing: https://github.com/Jakz/retro8/blob/96e26e7b7052e23e04682661b6ad7760e72966dc/Makefile#L140-L141

To:

 CFLAGS   += -Wall -D__LIBRETRO__ $(fpic) $(INCFLAGS) -stdlib=libc++ -std=gnu++11
 CXXFLAGS += -Wall -D__LIBRETRO__ $(fpic) $(INCFLAGS) -stdlib=libc++ -std=gnu++11

...gets us down to only 3 errors:

src/vm/lua_bridge.cpp:677:36: error: unexpected type name 'data_t': expected expression
    lua_pushnumber(L, std::bit_not<data_t>()(a));
                                   ^
src/vm/lua_bridge.cpp:677:28: error: no member named 'bit_not' in namespace 'std'
    lua_pushnumber(L, std::bit_not<data_t>()(a));
                      ~~~~~^
src/vm/lua_bridge.cpp:677:44: error: expected expression
    lua_pushnumber(L, std::bit_not<data_t>()(a));
                                           ^

Almost there!

gingerbeardman commented 4 years ago

So, changing: https://github.com/Jakz/retro8/blob/96e26e7b7052e23e04682661b6ad7760e72966dc/Makefile#L140-L141

To:

CFLAGS   += -Wall -D__LIBRETRO__ $(fpic) $(INCFLAGS) -stdlib=libc++ -std=c++17
CXXFLAGS += -Wall -D__LIBRETRO__ $(fpic) $(INCFLAGS) -stdlib=libc++ -std=c++17

And it compiles!

Though there appear to be some issues, compare these to this repo readme:

Jakz commented 4 years ago

I added a Xcode project that you can try with SDL back-end standalone to check if it's an issue with RetroArch core or with emulation in general.

gingerbeardman commented 4 years ago

I do not have libSDL2.abut rather SDL2.framework and building against that I cannot get it to launch:

$ ./retro8 api.p8 
Using renderer pixel format: SDL_PIXELFORMAT_ARGB8888
Error on lua_pcall on init
attempt to get length of a nil value

and no screen appears.

Jakz commented 4 years ago

yes I'm using the brew supplied SDL2 to use standard paths instead of shipping the repository with the framework.

gingerbeardman commented 4 years ago

I have brew SDL2 installed but Xcode couldn't find libSDL2.a

leolobato commented 4 years ago

@Jakz I've create a pull request that fixes linking to SDL2. It was pointing to a specific relative path on your machine before.

I was able to build and run it using my fork.

Jakz commented 4 years ago

👍 I close the issue then, thanks for fixes!