Makefile 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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 acces
  51. asm_cdpico = 0
  52. asm_cdmemory = 0
  53. endif
  54. # common
  55. OBJS += platform/common/main.o platform/common/emu.o \
  56. platform/common/menu_pico.o platform/common/config_file.o
  57. # libpicofe
  58. OBJS += platform/libpicofe/input.o platform/libpicofe/readpng.o \
  59. platform/libpicofe/fonts.o platform/libpicofe/linux/in_evdev.o \
  60. platform/libpicofe/linux/plat.o
  61. # libpicofe - sound
  62. OBJS += platform/libpicofe/sndout.o
  63. ifneq ($(findstring oss,$(SOUND_DRIVERS)),)
  64. platform/libpicofe/sndout.o: CFLAGS += -DHAVE_OSS
  65. OBJS += platform/libpicofe/linux/sndout_oss.o
  66. endif
  67. ifneq ($(findstring alsa,$(SOUND_DRIVERS)),)
  68. platform/libpicofe/sndout.o: CFLAGS += -DHAVE_ALSA
  69. OBJS += platform/libpicofe/linux/sndout_alsa.o
  70. endif
  71. ifneq ($(findstring sdl,$(SOUND_DRIVERS)),)
  72. platform/libpicofe/sndout.o: CFLAGS += -DHAVE_SDL
  73. OBJS += platform/libpicofe/sndout_sdl.o
  74. endif
  75. # frontend
  76. OBJS += platform/common/mp3_dummy.o
  77. ifeq "$(PLATFORM)" "generic"
  78. OBJS += platform/linux/emu.o platform/linux/blit.o # FIXME
  79. OBJS += platform/common/plat_sdl.o
  80. OBJS += platform/libpicofe/plat_sdl.o platform/libpicofe/in_sdl.o
  81. OBJS += platform/libpicofe/plat_dummy.o
  82. endif
  83. ifeq "$(PLATFORM)" "pandora"
  84. platform/common/menu_pico.o: CFLAGS += -DPANDORA
  85. OBJS += platform/pandora/plat.o
  86. OBJS += platform/pandora/asm_utils.o
  87. OBJS += platform/common/arm_utils.o
  88. OBJS += platform/libpicofe/linux/fbdev.o
  89. OBJS += platform/libpicofe/linux/xenv.o
  90. OBJS += platform/libpicofe/pandora/plat.o
  91. endif
  92. ifeq "$(ARCH)" "arm"
  93. OBJS += platform/libpicofe/arm_linux.o
  94. OBJS += pico/sound/mix_arm.o
  95. else
  96. OBJS += pico/sound/mix.o
  97. endif
  98. # zlib
  99. OBJS += zlib/gzio.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o \
  100. zlib/deflate.o zlib/crc32.o zlib/adler32.o zlib/zutil.o zlib/compress.o zlib/uncompr.o
  101. # unzip
  102. OBJS += unzip/unzip.o unzip/unzip_stream.o
  103. include platform/common/common.mak
  104. target_: $(TARGET)
  105. clean:
  106. $(RM) $(TARGET) $(OBJS)
  107. $(TARGET): $(OBJS)
  108. $(CC) -o $@ $(CFLAGS) $^ $(LDFLAGS) $(LDLIBS) -Wl,-Map=$(TARGET).map
  109. pprof: platform/linux/pprof.c
  110. $(CC) -O2 -ggdb -DPPROF -DPPROF_TOOL -I../../ -I. $^ -o $@
  111. # ----------- release -----------
  112. VER ?= $(shell head -n 1 platform/common/version.h | \
  113. sed 's/.*"\(.*\)\.\(.*\)".*/\1\2/g')
  114. ifeq "$(PLATFORM)" "pandora"
  115. PND_MAKE ?= $(HOME)/dev/pnd/src/pandora-libraries/testdata/scripts/pnd_make.sh
  116. /tmp/readme.txt: tools/textfilter platform/base_readme.txt
  117. tools/textfilter platform/base_readme.txt $@ PANDORA
  118. /tmp/PicoDrive.pxml: platform/pandora/PicoDrive.pxml.template
  119. platform/pandora/make_pxml.sh $^ $@
  120. rel: PicoDrive platform/pandora/PicoDrive.run platform/pandora/picorestore \
  121. pico/carthw.cfg /tmp/readme.txt platform/pandora/skin \
  122. platform/pandora/PicoDrive.png platform/pandora/PicoDrive_p.png \
  123. /tmp/PicoDrive.pxml
  124. rm -rf out
  125. mkdir out
  126. cp -r $^ out/
  127. $(PND_MAKE) -p PicoDrive_$(VER).pnd -d out -x out/PicoDrive.pxml -i out/PicoDrive.png -c
  128. endif