Browse Source

Compilation compatibility for non-WIN32 platforms

louyihua 8 years ago
parent
commit
25fbf23041
4 changed files with 68 additions and 32 deletions
  1. 17 6
      Makefile
  2. 17 5
      Makefile.sdl2
  3. 30 18
      common.h
  4. 4 3
      global.c

+ 17 - 6
Makefile

@@ -6,20 +6,31 @@ HOST =
 
 ADPLUG_FILES = adplug/rix.cpp adplug/player.cpp adplug/binio.cpp \
 	adplug/fprovide.cpp adplug/binfile.cpp adplug/dosbox_opl.cpp \
-	adplug/fmopl.c adplug/surroundopl.cpp adplug/emuopl.cpp \
-	adplug/demuopl.cpp
+	adplug/fmopl.c adplug/dbopl.cpp adplug/surroundopl.cpp \
+	adplug/emuopl.cpp adplug/demuopl.cpp adplug/dbemuopl.cpp
 
 LIBMAD_FILES = libmad/bit.c libmad/decoder.c libmad/fixed.c libmad/frame.c \
 	libmad/huffman.c libmad/layer12.c libmad/layer3.c libmad/music_mad.c \
 	libmad/stream.c libmad/synth.c libmad/timer.c
 
-FILES = rixplay.cpp text.c font.c itemmenu.c scene.c palcommon.c script.c \
-	util.c play.c getopt.c input.c uibattle.c game.c magicmenu.c map.c \
-	ending.c uigame.c rngplay.c ui.c global.c main.c fight.c mp3play.c \
-	video.c palette.c sound.c res.c battle.c yj1.c oggplay.c 
+LIBOGGVORBIS_FILES = liboggvorbis/src/analysis.c liboggvorbis/src/bitrate.c \
+    liboggvorbis/src/bitwise.c liboggvorbis/src/block.c liboggvorbis/src/codebook.c \
+    liboggvorbis/src/envelope.c liboggvorbis/src/floor0.c liboggvorbis/src/floor1.c \
+    liboggvorbis/src/framing.c liboggvorbis/src/info.c liboggvorbis/src/lookup.c \
+    liboggvorbis/src/lpc.c liboggvorbis/src/lsp.c liboggvorbis/src/mapping0.c \
+    liboggvorbis/src/mdct.c liboggvorbis/src/psy.c liboggvorbis/src/registry.c \
+    liboggvorbis/src/res0.c liboggvorbis/src/sharedbook.c liboggvorbis/src/smallft.c \
+    liboggvorbis/src/synthesis.c liboggvorbis/src/vorbisenc.c liboggvorbis/src/vorbisfile.c \
+    liboggvorbis/src/window.c
+
+FILES = battle.c ending.c fight.c font.c game.c getopt.c global.c input.c \
+    itemmenu.c magicmenu.c main.c map.c mp3play.c oggplay.c palcommon.c \
+	palette.c play.c res.c resampler.c rixplay.cpp rngplay.c scene.c script.c \
+	sound.c text.c ui.c uibattle.c uigame.c util.c video.c yj1.c 
 
 FILES += $(ADPLUG_FILES)
 FILES += $(LIBMAD_FILES)
+FILES += $(LIBOGGVORBIS_FILES)
 
 CFLAGS = `sdl-config --cflags` -g -Wall -O2 -fno-strict-aliasing
 LDFLAGS = `sdl-config --libs` -lstdc++ -lm

+ 17 - 5
Makefile.sdl2

@@ -6,19 +6,31 @@ HOST =
 
 ADPLUG_FILES = adplug/rix.cpp adplug/player.cpp adplug/binio.cpp \
 	adplug/fprovide.cpp adplug/binfile.cpp adplug/dosbox_opl.cpp \
-	adplug/fmopl.c adplug/surroundopl.cpp adplug/emuopl.cpp
+	adplug/fmopl.c adplug/dbopl.cpp adplug/surroundopl.cpp \
+	adplug/emuopl.cpp adplug/demuopl.cpp adplug/dbemuopl.cpp
 
 LIBMAD_FILES = libmad/bit.c libmad/decoder.c libmad/fixed.c libmad/frame.c \
 	libmad/huffman.c libmad/layer12.c libmad/layer3.c libmad/music_mad.c \
 	libmad/stream.c libmad/synth.c libmad/timer.c
 
-FILES = rixplay.cpp text.c font.c itemmenu.c scene.c palcommon.c script.c \
-	util.c play.c getopt.c input.c uibattle.c game.c magicmenu.c map.c \
-	ending.c uigame.c rngplay.c ui.c global.c main.c fight.c \
-	video.c palette.c sound.c res.c battle.c yj1.c
+LIBOGGVORBIS_FILES = liboggvorbis/src/analysis.c liboggvorbis/src/bitrate.c \
+    liboggvorbis/src/bitwise.c liboggvorbis/src/block.c liboggvorbis/src/codebook.c \
+    liboggvorbis/src/envelope.c liboggvorbis/src/floor0.c liboggvorbis/src/floor1.c \
+    liboggvorbis/src/framing.c liboggvorbis/src/info.c liboggvorbis/src/lookup.c \
+    liboggvorbis/src/lpc.c liboggvorbis/src/lsp.c liboggvorbis/src/mapping0.c \
+    liboggvorbis/src/mdct.c liboggvorbis/src/psy.c liboggvorbis/src/registry.c \
+    liboggvorbis/src/res0.c liboggvorbis/src/sharedbook.c liboggvorbis/src/smallft.c \
+    liboggvorbis/src/synthesis.c liboggvorbis/src/vorbisenc.c liboggvorbis/src/vorbisfile.c \
+    liboggvorbis/src/window.c
+
+FILES = battle.c ending.c fight.c font.c game.c getopt.c global.c input.c \
+    itemmenu.c magicmenu.c main.c map.c mp3play.c oggplay.c palcommon.c \
+	palette.c play.c res.c resampler.c rixplay.cpp rngplay.c scene.c script.c \
+	sound.c text.c ui.c uibattle.c uigame.c util.c video.c yj1.c 
 
 FILES += $(ADPLUG_FILES)
 FILES += $(LIBMAD_FILES)
+FILES += $(LIBOGGVORBIS_FILES)
 
 CFLAGS = `sdl2-config --cflags` -g -Wall -O2 -fno-strict-aliasing
 LDFLAGS = `sdl2-config --libs` -lstdc++ -lm

+ 30 - 18
common.h

@@ -123,29 +123,37 @@ FILE *MY_fopen(const char *path, const char *mode);
 
 #else
 
-#define PAL_HAS_JOYSTICKS     1
-#ifndef _WIN32_WCE
-#if SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION <= 2
-#define PAL_ALLOW_KEYREPEAT   1
-#define PAL_HAS_SDLCD         1
-#else
-#define PAL_HAS_SDLCD         0
-#endif
+# define PAL_HAS_JOYSTICKS     1
 
-#ifndef PAL_PREFIX
-#define PAL_PREFIX            "./"
-#endif
-#ifndef PAL_SAVE_PREFIX
-#define PAL_SAVE_PREFIX       "./"
-#endif
+# ifndef _WIN32_WCE
 
-#endif
+#  if SDL_MAJOR_VERSION == 1 && SDL_MINOR_VERSION <= 2
+#   define PAL_ALLOW_KEYREPEAT   1
+#   define PAL_HAS_SDLCD         1
+#  endif
+
+#  ifndef PAL_PREFIX
+#   define PAL_PREFIX            "./"
+#  endif
+
+#  ifndef PAL_SAVE_PREFIX
+#   define PAL_SAVE_PREFIX       "./"
+#  endif
+
+# endif
+
+//# if !defined (CYGWIN) && !defined (DINGOO) && !defined (GPH)
+//#  define PAL_HAS_MP3         1
+//# endif
 
-#if !defined (CYGWIN) && !defined (DINGOO) && !defined (GPH) && !defined (GEKKO) && !defined (__WINPHONE__)
-#define PAL_HAS_MP3           1
 #endif
+
+#ifndef PAL_HAS_SDLCD
+#define PAL_HAS_SDLCD         0
 #endif
-#define PAL_HAS_OGG           1
+
+#define PAL_HAS_MP3           1   /* Try always enable MP3. If compilation/run failed, please change this value to 0. */
+#define PAL_HAS_OGG           1   /* Try always enable OGG. If compilation/run failed, please change this value to 0. */
 #define PAL_HAS_MAME          1   /* Should not be enabled for now, until M.A.M.E goes open source licenses */
 
 #ifndef SDL_INIT_CDROM
@@ -217,6 +225,10 @@ typedef const WCHAR        *LPCWSTR;
 
 #endif
 
+#ifndef PAL_HAS_NATIVEMIDI
+#define PAL_HAS_NATIVEMIDI  0
+#endif
+
 #if defined (__SYMBIAN32__)
 #define PAL_LARGE           static
 #else

+ 4 - 3
global.c

@@ -544,7 +544,7 @@ PAL_LoadDefaultGame(
       //
       // Convert the DOS-style data structure to WIN-style data structure
       //
-      for (int i = 0; i < MAX_OBJECTS; i++)
+      for (i = 0; i < MAX_OBJECTS; i++)
       {
          memcpy(&p->rgObject[i], &objects[i], sizeof(OBJECT_DOS));
 	     if (i >= OBJECT_ITEM_START && i <= OBJECT_MAGIC_END)
@@ -751,6 +751,7 @@ PAL_LoadGame_DOS(
 {
    FILE                     *fp;
    PAL_LARGE SAVEDGAME_DOS   s;
+   int                       i;
 
    //
    // Try to open the specified file
@@ -786,7 +787,7 @@ PAL_LoadGame_DOS(
    //
    // Convert the DOS-style data structure to WIN-style data structure
    //
-   for (int i = 0; i < MAX_OBJECTS; i++)
+   for (i = 0; i < MAX_OBJECTS; i++)
    {
       memcpy(&gpGlobals->g.rgObject[i], &s.rgObject[i], sizeof(OBJECT_DOS));
 	  if (i >= OBJECT_ITEM_START && i <= OBJECT_MAGIC_END)
@@ -954,7 +955,7 @@ PAL_SaveGame_DOS(
    //
    // Convert the WIN-style data structure to DOS-style data structure
    //
-   for (int i = 0; i < MAX_OBJECTS; i++)
+   for (i = 0; i < MAX_OBJECTS; i++)
    {
       memcpy(&s.rgObject[i], &gpGlobals->g.rgObject[i], sizeof(OBJECT_DOS));
 	  if (i >= OBJECT_ITEM_START && i <= OBJECT_MAGIC_END)