Makefile.libretro 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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_sh2drc = 1
  48. use_svpdrc = 1
  49. else ifeq ($(platform), ps3)
  50. TARGET := $(TARGET_NAME)_libretro_ps3.a
  51. CC = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-gcc.exe
  52. AR = $(CELL_SDK)/host-win32/ppu/bin/ppu-lv2-ar.exe
  53. CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  54. else ifeq ($(platform), sncps3)
  55. TARGET := $(TARGET_NAME)_libretro_ps3.a
  56. CC = $(CELL_SDK)/host-win32/sn/bin/ps3ppusnc.exe
  57. AR = $(CELL_SDK)/host-win32/sn/bin/ps3snarl.exe
  58. CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  59. else ifeq ($(platform), psl1ght)
  60. TARGET := $(TARGET_NAME)_libretro_psl1ght.a
  61. CC = $(PS3DEV)/ppu/bin/ppu-gcc$(EXE_EXT)
  62. AR = $(PS3DEV)/ppu/bin/ppu-ar$(EXE_EXT)
  63. CFLAGS += -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  64. else ifeq ($(platform), psp1)
  65. TARGET := $(TARGET_NAME)_libretro_psp1.a
  66. CC = psp-gcc$(EXE_EXT)
  67. AR = psp-ar$(EXE_EXT)
  68. CFLAGS += -DPSP -G0
  69. else ifeq ($(platform), xenon)
  70. TARGET := $(TARGET_NAME)_libretro_xenon360.a
  71. CC = xenon-gcc$(EXE_EXT)
  72. AR = xenon-ar$(EXE_EXT)
  73. CFLAGS += -D__LIBXENON__ -m32 -D__ppc__
  74. else ifeq ($(platform), ngc)
  75. TARGET := $(TARGET_NAME)_libretro_ngc.a
  76. CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
  77. AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
  78. CFLAGS += -DGEKKO -DHW_DOL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  79. else ifeq ($(platform), wii)
  80. TARGET := libretro_$(TARGET_NAME)_wii.a
  81. CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT)
  82. AR = $(DEVKITPPC)/bin/powerpc-eabi-ar$(EXE_EXT)
  83. CFLAGS += -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float -DBLARGG_BIG_ENDIAN=1 -D__ppc__
  84. else ifeq ($(platform), qnx)
  85. TARGET := $(TARGET_NAME)_libretro_qnx.so
  86. CC = qcc -Vgcc_ntoarmv7le
  87. CC_AS = $(CC)
  88. CFLAGS += -DBASE_ADDR_FIXED=0 -D__BLACKBERRY_QNX__ -marm -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp
  89. ASFLAGS += -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=softfp
  90. ARCH = arm
  91. ARM_ASM = 1
  92. else ifneq (,$(findstring armv,$(platform)))
  93. TARGET := $(TARGET_NAME)_libretro.so
  94. SHARED := -shared -Wl,--no-undefined
  95. ifneq (,$(findstring cortexa8,$(platform)))
  96. CFLAGS += -marm -mcpu=cortex-a8
  97. ASFLAGS += -mcpu=cortex-a8
  98. else ifneq (,$(findstring cortexa9,$(platform)))
  99. CFLAGS += -marm -mcpu=cortex-a9
  100. ASFLAGS += -mcpu=cortex-a9
  101. endif
  102. CFLAGS += -marm
  103. ifneq (,$(findstring neon,$(platform)))
  104. CFLAGS += -mfpu=neon
  105. ASFLAGS += -mfpu=neon
  106. endif
  107. ifneq (,$(findstring softfloat,$(platform)))
  108. CFLAGS += -mfloat-abi=softfp
  109. ASFLAGS += -mfloat-abi=softfp
  110. else ifneq (,$(findstring hardfloat,$(platform)))
  111. CFLAGS += -mfloat-abi=hard
  112. ASFLAGS += -mfloat-abi=hard
  113. endif
  114. ifneq (,$(findstring armasm,$(platform)))
  115. ARM_ASM = 1
  116. endif
  117. ARCH = arm
  118. else
  119. TARGET := $(TARGET_NAME)_retro.dll
  120. CC = gcc
  121. LD_FLAGS := -fPIC
  122. SHARED := -shared -static-libgcc -static-libstdc++
  123. CFLAGS += -D__WIN32__ -D__WIN32_LIBRETRO__
  124. endif
  125. ifeq ($(ARM_ASM),1)
  126. asm_memory = 1
  127. asm_render = 1
  128. asm_ym2612 = 1
  129. asm_misc = 1
  130. asm_cdpico = 1
  131. asm_cdmemory = 1
  132. asm_mix = 1
  133. endif
  134. CFLAGS += -fPIC
  135. LDLIBS += -lm
  136. SHARED ?= -shared
  137. LDFLAGS += $(SHARED)
  138. PLATFORM = libretro
  139. NO_CONFIG_MAK = yes
  140. include Makefile