Makefile.libretro 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. # Makefile for PicoDrive (libretro)
  2. ifeq ($(platform),)
  3. platform = unix
  4. ifeq ($(shell uname -a),)
  5. platform = win
  6. else ifneq ($(findstring MINGW,$(shell uname -a)),)
  7. platform = win
  8. else ifneq ($(findstring Darwin,$(shell uname -a)),)
  9. platform = osx
  10. else ifneq ($(findstring win,$(shell uname -a)),)
  11. platform = win
  12. endif
  13. endif
  14. CC ?= gcc
  15. CXX ?= g++
  16. AS ?= as
  17. CC_AS ?= $(CC)
  18. CFLAGS ?=
  19. TARGET_NAME := picodrive
  20. asm_memory = 0
  21. asm_render = 0
  22. asm_ym2612 = 0
  23. asm_misc = 0
  24. asm_cdpico = 0
  25. asm_cdmemory = 0
  26. asm_mix = 0
  27. ifeq ($(platform), unix)
  28. TARGET := $(TARGET_NAME)_libretro.so
  29. SHARED := -shared
  30. else ifeq ($(platform), osx)
  31. TARGET := $(TARGET_NAME)_libretro.dylib
  32. SHARED := -dynamiclib
  33. else ifeq ($(platform), ios)
  34. TARGET := $(TARGET_NAME)_libretro_ios.dylib
  35. SHARED := -dynamiclib
  36. CC = clang -arch armv7 -isysroot $(IOSSDK)
  37. CXX = clang++ -arch armv7 -isysroot $(IOSSDK)
  38. CC_AS = perl ./tools/gas-preprocessor.pl $(CC)
  39. CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -marm
  40. ASFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon
  41. CFLAGS += -DIOS
  42. ARCH := arm
  43. use_cyclone = 0
  44. use_fame = 1
  45. use_drz80 = 0
  46. use_cz80 = 1
  47. use_sh2mame = 0
  48. use_sh2drc = 1
  49. use_svpdrc = 1
  50. else ifeq ($(platform), ps3)
  51. TARGET := $(TARGET_NAME)_libretro_ps3.a
  52. CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
  53. AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
  54. CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  55. else ifeq ($(platform), sncps3)
  56. TARGET := $(TARGET_NAME)_libretro_ps3.a
  57. CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
  58. AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
  59. CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  60. else ifeq ($(platform), psl1ght)
  61. TARGET := $(TARGET_NAME)_libretro_psl1ght.a
  62. CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT)
  63. AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT)
  64. CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  65. else ifeq ($(platform), psp1)
  66. TARGET := $(TARGET_NAME)_libretro_psp1.a
  67. CC = psp-gcc$(EXE_EXT)
  68. AR = psp-ar$(EXE_EXT)
  69. CFLAGS += -DPSP -G0
  70. else ifeq ($(platform), xenon)
  71. TARGET := $(TARGET_NAME)_libretro_xenon360.a
  72. CC = xenon-gcc$(EXE_EXT)
  73. AR = xenon-ar$(EXE_EXT)
  74. CFLAGS += -D__LIBXENON__ -m32 -D__ppc__
  75. else ifeq ($(platform), ngc)
  76. TARGET := $(TARGET_NAME)_libretro_ngc.a
  77. CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
  78. AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
  79. CFLAGS += -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  80. else ifeq ($(platform), wii)
  81. TARGET := libretro_$(TARGET_NAME)_wii.a
  82. CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
  83. AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
  84. CFLAGS += -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  85. else ifeq ($(platform), qnx)
  86. TARGET := $(TARGET_NAME)_libretro_qnx.so
  87. CC = qcc -Vgcc_ntoarmv7le
  88. CC_AS = $(CC)
  89. CFLAGS += -DBASE_ADDR_FIXED=0 -D__BLACKBERRY_QNX__ -marm -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp
  90. ASFLAGS += -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp
  91. ARCH = arm
  92. ARM_ASM = 1
  93. else ifneq (,$(findstring armv,$(platform)))
  94. TARGET := $(TARGET_NAME)_libretro.so
  95. SHARED := -shared -Wl,--no-undefined
  96. ifneq (,$(findstring cortexa8,$(platform)))
  97. CFLAGS += -marm -mcpu=cortex-a8
  98. ASFLAGS += -mcpu=cortex-a8
  99. else ifneq (,$(findstring cortexa9,$(platform)))
  100. CFLAGS += -marm -mcpu=cortex-a9
  101. ASFLAGS += -mcpu=cortex-a9
  102. endif
  103. CFLAGS += -marm
  104. ifneq (,$(findstring neon,$(platform)))
  105. CFLAGS += -mfpu=neon
  106. ASFLAGS += -mfpu=neon
  107. endif
  108. ifneq (,$(findstring softfloat,$(platform)))
  109. CFLAGS += -mfloat-abi=softfp
  110. ASFLAGS += -mfloat-abi=softfp
  111. else ifneq (,$(findstring hardfloat,$(platform)))
  112. CFLAGS += -mfloat-abi=hard
  113. ASFLAGS += -mfloat-abi=hard
  114. endif
  115. ifneq (,$(findstring armasm,$(platform)))
  116. ARM_ASM = 1
  117. endif
  118. ARCH = arm
  119. else
  120. TARGET := $(TARGET_NAME)_retro.dll
  121. CC = gcc
  122. LD_FLAGS := -fPIC
  123. SHARED := -shared -static-libgcc -static-libstdc++
  124. CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
  125. endif
  126. ifeq ($(ARM_ASM),1)
  127. asm_memory = 1
  128. asm_render = 1
  129. asm_ym2612 = 1
  130. asm_misc = 1
  131. asm_cdpico = 1
  132. asm_cdmemory = 1
  133. asm_mix = 1
  134. endif
  135. CFLAGS += -fPIC
  136. LDLIBS += -lm
  137. SHARED ?= -shared
  138. LDFLAGS += $(SHARED)
  139. PLATFORM = libretro
  140. NO_CONFIG_MAK = yes
  141. include Makefile