Makefile 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. TARGET ?= PicoDrive
  2. CFLAGS += -Wall -ggdb -falign-functions=2
  3. CFLAGS += -I.
  4. # FIXME
  5. CFLAGS += -Iplatform/linux/
  6. ifndef DEBUG
  7. CFLAGS += -O2 -DNDEBUG
  8. endif
  9. all: config.mak target_
  10. ifndef NO_CONFIG_MAK
  11. ifneq ($(wildcard config.mak),)
  12. config.mak: ./configure
  13. @echo $@ is out-of-date, running configure
  14. @sed -n "/.*Configured with/s/[^:]*: //p" $@ | sh
  15. include config.mak
  16. else
  17. config.mak:
  18. @echo "Please run ./configure before running make!"
  19. @exit 1
  20. endif
  21. else # NO_CONFIG_MAK
  22. config.mak:
  23. endif
  24. # default settings
  25. ifeq "$(ARCH)" "arm"
  26. use_cyclone ?= 1
  27. use_drz80 ?= 1
  28. use_sh2drc ?= 1
  29. asm_memory = 1
  30. asm_render = 1
  31. asm_ym2612 = 1
  32. asm_misc = 1
  33. asm_cdpico = 1
  34. asm_cdmemory = 1
  35. else # if not arm
  36. ifneq "$(ARCH)" "x86_64"
  37. # no 64bit support
  38. use_fame ?= 1
  39. else
  40. use_musashi ?= 1
  41. endif
  42. use_cz80 ?= 1
  43. use_sh2mame ?= 1
  44. endif
  45. #drc_debug = 3
  46. #drc_debug_interp = 1
  47. #profile = 1
  48. -include Makefile.local
  49. ifeq "$(use_musashi)" "1"
  50. # due to CPU stop flag access
  51. asm_cdpico = 0
  52. asm_cdmemory = 0
  53. endif
  54. # frontend
  55. ifeq "$(PLATFORM)" "generic"
  56. OBJS += platform/linux/emu.o platform/linux/blit.o # FIXME
  57. OBJS += platform/common/plat_sdl.o
  58. OBJS += platform/libpicofe/plat_sdl.o platform/libpicofe/in_sdl.o
  59. OBJS += platform/libpicofe/plat_dummy.o
  60. USE_FRONTEND = 1
  61. endif
  62. ifeq "$(PLATFORM)" "pandora"
  63. platform/common/menu_pico.o: CFLAGS += -DPANDORA
  64. OBJS += platform/pandora/plat.o
  65. OBJS += platform/pandora/asm_utils.o
  66. OBJS += platform/common/arm_utils.o
  67. OBJS += platform/libpicofe/linux/fbdev.o
  68. OBJS += platform/libpicofe/linux/xenv.o
  69. OBJS += platform/libpicofe/pandora/plat.o
  70. USE_FRONTEND = 1
  71. endif
  72. ifeq "$(PLATFORM)" "libretro"
  73. OBJS += platform/libretro.o
  74. endif
  75. ifeq "$(USE_FRONTEND)" "1"
  76. # common
  77. OBJS += platform/common/main.o platform/common/emu.o \
  78. platform/common/menu_pico.o platform/common/config_file.o
  79. # libpicofe
  80. OBJS += platform/libpicofe/input.o platform/libpicofe/readpng.o \
  81. platform/libpicofe/fonts.o platform/libpicofe/linux/in_evdev.o \
  82. platform/libpicofe/linux/plat.o
  83. # libpicofe - sound
  84. OBJS += platform/libpicofe/sndout.o
  85. ifneq ($(findstring oss,$(SOUND_DRIVERS)),)
  86. platform/libpicofe/sndout.o: CFLAGS += -DHAVE_OSS
  87. OBJS += platform/libpicofe/linux/sndout_oss.o
  88. endif
  89. ifneq ($(findstring alsa,$(SOUND_DRIVERS)),)
  90. platform/libpicofe/sndout.o: CFLAGS += -DHAVE_ALSA
  91. OBJS += platform/libpicofe/linux/sndout_alsa.o
  92. endif
  93. ifneq ($(findstring sdl,$(SOUND_DRIVERS)),)
  94. platform/libpicofe/sndout.o: CFLAGS += -DHAVE_SDL
  95. OBJS += platform/libpicofe/sndout_sdl.o
  96. endif
  97. ifeq "$(ARCH)" "arm"
  98. OBJS += platform/libpicofe/arm_linux.o
  99. endif
  100. endif # USE_FRONTEND
  101. OBJS += platform/common/mp3_dummy.o
  102. # zlib
  103. OBJS += zlib/gzio.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o \
  104. zlib/deflate.o zlib/crc32.o zlib/adler32.o zlib/zutil.o zlib/compress.o zlib/uncompr.o
  105. # unzip
  106. OBJS += unzip/unzip.o unzip/unzip_stream.o
  107. include platform/common/common.mak
  108. OBJS += $(OBJS_COMMON)
  109. CFLAGS += $(addprefix -D,$(DEFINES))
  110. target_: $(TARGET)
  111. clean:
  112. $(RM) $(TARGET) $(OBJS)
  113. $(TARGET): $(OBJS)
  114. $(CC) -o $@ $(CFLAGS) $^ $(LDFLAGS) $(LDLIBS) -Wl,-Map=$(TARGET).map
  115. pprof: platform/linux/pprof.c
  116. $(CC) -O2 -ggdb -DPPROF -DPPROF_TOOL -I../../ -I. $^ -o $@
  117. tools/textfilter: tools/textfilter.c
  118. make -C tools/ textfilter
  119. .s.o:
  120. $(CC) $(CFLAGS) -c $< -o $@
  121. # random deps
  122. pico/carthw/svp/compiler.o : cpu/drc/emit_$(ARCH).c
  123. cpu/sh2/compiler.o : cpu/drc/emit_$(ARCH).c
  124. cpu/sh2/mame/sh2pico.o : cpu/sh2/mame/sh2.c
  125. pico/pico.o pico/cd/pico.o : pico/pico_cmn.c pico/pico_int.h
  126. pico/memory.o pico/cd/memory.o : pico/pico_int.h pico/memory.h
  127. cpu/fame/famec.o: cpu/fame/famec.c cpu/fame/famec_opcodes.h
  128. # ----------- release -----------
  129. VER ?= $(shell head -n 1 platform/common/version.h | \
  130. sed 's/.*"\(.*\)\.\(.*\)".*/\1\2/g')
  131. ifeq "$(PLATFORM)" "pandora"
  132. PND_MAKE ?= $(HOME)/dev/pnd/src/pandora-libraries/testdata/scripts/pnd_make.sh
  133. /tmp/readme.txt: tools/textfilter platform/base_readme.txt
  134. tools/textfilter platform/base_readme.txt $@ PANDORA
  135. /tmp/PicoDrive.pxml: platform/pandora/PicoDrive.pxml.template
  136. platform/pandora/make_pxml.sh $^ $@
  137. rel: PicoDrive platform/pandora/PicoDrive.run platform/pandora/picorestore \
  138. pico/carthw.cfg /tmp/readme.txt platform/pandora/skin \
  139. platform/pandora/PicoDrive.png platform/pandora/PicoDrive_p.png \
  140. /tmp/PicoDrive.pxml
  141. rm -rf out
  142. mkdir out
  143. cp -r $^ out/
  144. $(PND_MAKE) -p PicoDrive_$(VER).pnd -d out -x out/PicoDrive.pxml -i out/PicoDrive.png -c
  145. endif