Linux fix patch

Hi!
I can compile Supermodel with the patch below.
The patch basically fix the Unix makefile and give you the option to build with Glew and Minizip from the system or statically.
I'm not sure about "types.h", does it the right path on windows? On linux it needs to be <sys/types.h>
http://bazaar.launchpad.net/~random-stu ... uild.patch
Patch updated to svn 333
I can compile Supermodel with the patch below.
The patch basically fix the Unix makefile and give you the option to build with Glew and Minizip from the system or statically.
I'm not sure about "types.h", does it the right path on windows? On linux it needs to be <sys/types.h>
- Code: Select all
Index: trunk/Makefiles/Makefile.SDL.UNIX.GCC
===================================================================
--- trunk.orig/Makefiles/Makefile.SDL.UNIX.GCC 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Makefiles/Makefile.SDL.UNIX.GCC 2016-04-04 18:11:03.212520442 -0300
@@ -65,12 +65,27 @@
# Compiler and Linker
###############################################################################
+USE_MINIZIP_STATIC ?= 0
+USE_GLEW_STATIC ?= 0
+
CC = gcc
LD = gcc
COMPILER_FLAGS = $(SDL_CFLAGS) -ISrc/ -ISrc/OSD/SDL/ -ISrc/Pkgs/ -c -Wall -O3
-CFLAGS = $(COMPILER_FLAGS)
-CPPFLAGS = $(COMPILER_FLAGS)
-LFLAGS = -o $(OUTFILE) $(SDL_LIBFLAGS) -lGL -lGLU -lz -lm -lstdc++
+CFLAGS += $(COMPILER_FLAGS)
+CPPFLAGS += $(CXXFLAGS) $(COMPILER_FLAGS) -std=c++11
+LFLAGS += -o $(OUTFILE) $(SDL_LIBFLAGS) -lGL -lGLU -lz -lm -lstdc++
+
+ifeq ($(USE_GLEW_STATIC), 1)
+ COMPILER_FLAGS += -DGLEW_STATIC
+else
+ LFLAGS += -lGLEW
+endif
+
+ifeq ($(USE_MINIZIP_STATIC), 1)
+ COMPILER_FLAGS += -DMINIZIP_STATIC
+else
+ LFLAGS += -lminizip
+endif
#
# Build options...
@@ -91,8 +106,10 @@
#
HEADERS = Src/Supermodel.h Src/Games.h Src/OSD/SDL/Types.h
OBJ = $(OBJ_DIR)/PPCDisasm.o $(OBJ_DIR)/Games.o $(OBJ_DIR)/Config.o $(OBJ_DIR)/INIFile.o $(OBJ_DIR)/BlockFile.o $(OBJ_DIR)/93C46.o \
- $(OBJ_DIR)/ROMLoad.o $(OBJ_DIR)/unzip.o $(OBJ_DIR)/ioapi.o $(OBJ_DIR)/Error.o $(OBJ_DIR)/glew.o $(OBJ_DIR)/Shader.o \
- $(OBJ_DIR)/Real3D.o $(OBJ_DIR)/Render3D.o $(OBJ_DIR)/Models.o $(OBJ_DIR)/TextureRefs.o $(OBJ_DIR)/Render2D.o $(OBJ_DIR)/TileGen.o \
+ $(OBJ_DIR)/ROMLoad.o $(OBJ_DIR)/Error.o $(OBJ_DIR)/Shader.o \
+ $(OBJ_DIR)/Real3D.o $(OBJ_DIR)/Legacy3D.o $(OBJ_DIR)/Models.o $(OBJ_DIR)/TextureRefs.o \
+ $(OBJ_DIR)/New3D.o $(OBJ_DIR)/Mat4.o $(OBJ_DIR)/Model.o $(OBJ_DIR)/PolyHeader.o $(OBJ_DIR)/Texture.o $(OBJ_DIR)/TextureSheet.o $(OBJ_DIR)/VBO.o $(OBJ_DIR)/Vec.o $(OBJ_DIR)/R3DShader.o \
+ $(OBJ_DIR)/Render2D.o $(OBJ_DIR)/TileGen.o \
$(OBJ_DIR)/Model3.o $(OBJ_DIR)/ppc.o $(OBJ_DIR)/Main.o $(OBJ_DIR)/Audio.o $(OBJ_DIR)/Thread.o $(OBJ_DIR)/SoundBoard.o \
$(OBJ_DIR)/SCSP.o $(OBJ_DIR)/SCSPDSP.o $(OBJ_DIR)/68K.o $(OBJ_DIR)/m68kcpu.o $(OBJ_DIR)/m68kopnz.o $(OBJ_DIR)/m68kopdm.o \
$(OBJ_DIR)/m68kopac.o $(OBJ_DIR)/m68kops.o $(OBJ_DIR)/DSB.o $(OBJ_DIR)/Z80.o \
@@ -102,7 +119,16 @@
$(OBJ_DIR)/Outputs.o \
$(OBJ_DIR)/amp_audio.o $(OBJ_DIR)/amp_dump.o $(OBJ_DIR)/amp_getbits.o $(OBJ_DIR)/amp_getdata.o $(OBJ_DIR)/amp_huffman.o \
$(OBJ_DIR)/amp_layer2.o $(OBJ_DIR)/amp_layer3.o $(OBJ_DIR)/amp_misc2.o $(OBJ_DIR)/amp_position.o $(OBJ_DIR)/amp_transform.o \
- $(OBJ_DIR)/amp_util.o
+ $(OBJ_DIR)/amp_util.o \
+ $(OBJ_DIR)/Crypto.o
+
+ifeq ($(USE_GLEW_STATIC), 1)
+ OBJ += $(OBJ_DIR)/glew.o
+endif
+
+ifeq ($(USE_MINIZIP_STATIC), 1)
+ OBJ += $(OBJ_DIR)/unzip.o $(OBJ_DIR)/ioapi.o
+endif
# If built-in debugger enabled, include all debugging classes
ifeq ($(strip $(ENABLE_DEBUGGER)),yes)
@@ -172,12 +198,18 @@
$(OBJ_DIR)/%.o: Src/Model3/%.cpp Src/Model3/%.h $(HEADERS)
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
-$(OBJ_DIR)/%.o: Src/Graphics/%.cpp Src/Graphics/%.h $(HEADERS)
- $(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
-
-$(OBJ_DIR)/%.o: Src/Graphics/%.cpp $(HEADERS)
- $(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
-
+$(OBJ_DIR)/%.o: Src/Graphics/%.cpp Src/Graphics/Shaders2D.h
+ $(CXX) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
+
+$(OBJ_DIR)/%.o: Src/Graphics/Legacy3D/%.cpp Src/Graphics/Legacy3D/%.h Src/Graphics/Legacy3D/Shaders3D.h
+ $(CXX) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
+
+$(OBJ_DIR)/%.o: Src/Graphics/Legacy3D/%.cpp
+ $(CXX) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
+
+$(OBJ_DIR)/%.o: Src/Graphics/New3D/%.cpp Src/Graphics/New3D/%.h
+ $(CXX) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
+
$(OBJ_DIR)/%.o: Src/Sound/%.cpp Src/Sound/%.h $(HEADERS)
$(CC) $< $(CPPFLAGS) -o $(OBJ_DIR)/$(*F).o
Index: trunk/Src/Graphics/Render2D.cpp
===================================================================
--- trunk.orig/Src/Graphics/Render2D.cpp 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/Render2D.cpp 2016-04-04 18:11:03.212520442 -0300
@@ -269,7 +269,11 @@
*/
#include <cstring>
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h"
+#else
+#include <GL/glew.h>
+#endif
#include "Supermodel.h"
#include "Graphics/Shaders2D.h" // fragment and vertex shaders
Index: trunk/Src/Graphics/Render2D.h
===================================================================
--- trunk.orig/Src/Graphics/Render2D.h 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/Render2D.h 2016-04-04 18:11:03.212520442 -0300
@@ -28,7 +28,11 @@
#ifndef INCLUDED_RENDER2D_H
#define INCLUDED_RENDER2D_H
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h"
+#else
+#include <GL/glew.h>
+#endif
/*
Index: trunk/Src/Graphics/Shader.cpp
===================================================================
--- trunk.orig/Src/Graphics/Shader.cpp 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/Shader.cpp 2016-04-04 18:11:03.212520442 -0300
@@ -44,7 +44,11 @@
#include <new>
#include <cstdio>
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h"
+#else
+#include <GL/glew.h>
+#endif
#include "Supermodel.h"
Index: trunk/Src/Graphics/Shader.h
===================================================================
--- trunk.orig/Src/Graphics/Shader.h 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/Shader.h 2016-04-04 18:11:03.212520442 -0300
@@ -28,7 +28,11 @@
#ifndef INCLUDED_SHADER_H
#define INCLUDED_SHADER_H
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h"
+#else
+#include <GL/glew.h>
+#endif
/*
* LoadShaderProgram(shaderProgramPtr, vertexShaderPtr, fragmentShaderPtr,
Index: trunk/Src/OSD/SDL/Main.cpp
===================================================================
--- trunk.orig/Src/OSD/SDL/Main.cpp 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/OSD/SDL/Main.cpp 2016-04-04 18:11:03.212520442 -0300
@@ -43,7 +43,11 @@
#include <cstdio>
#include <cstring>
#include <cstdarg>
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h"
+#else
+#include <GL/glew.h>
+#endif
#ifdef SUPERMODEL_OSX
#include <SDL/SDL.h>
#else
Index: trunk/Src/Graphics/Legacy3D/Legacy3D.h
===================================================================
--- trunk.orig/Src/Graphics/Legacy3D/Legacy3D.h 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/Legacy3D/Legacy3D.h 2016-04-04 18:11:03.212520442 -0300
@@ -30,7 +30,11 @@
#define INCLUDED_LEGACY3D_H
#include "Graphics/IRender3D.h"
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h"
+#else
+#include <GL/glew.h>
+#endif
namespace Legacy3D {
Index: trunk/Src/Graphics/New3D/New3D.h
===================================================================
--- trunk.orig/Src/Graphics/New3D/New3D.h 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/New3D/New3D.h 2016-04-04 18:11:03.212520442 -0300
@@ -28,7 +28,11 @@
#ifndef INCLUDED_NEW3D_H
#define INCLUDED_NEW3D_H
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h"
+#else
+#include <GL/glew.h>
+#endif
#include "Types.h"
#include "TextureSheet.h"
#include "Graphics/IRender3D.h"
Index: trunk/Src/Graphics/New3D/R3DShader.h
===================================================================
--- trunk.orig/Src/Graphics/New3D/R3DShader.h 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/New3D/R3DShader.h 2016-04-04 18:11:03.212520442 -0300
@@ -1,7 +1,11 @@
#ifndef _R3DSHADER_H_
#define _R3DSHADER_H_
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h"
+#else
+#include <GL/glew.h>
+#endif
#include "Model.h"
namespace New3D {
@@ -64,4 +68,4 @@
} // New3D
-#endif
\ No newline at end of file
+#endif
Index: trunk/Src/Graphics/New3D/Texture.h
===================================================================
--- trunk.orig/Src/Graphics/New3D/Texture.h 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/New3D/Texture.h 2016-04-04 18:11:03.212520442 -0300
@@ -2,7 +2,11 @@
#define _TEXTURE_H_
#include "Types.h"
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h" //arg
+#else
+#include <GL/glew.h> //arg
+#endif
namespace New3D {
Index: trunk/Src/Graphics/New3D/VBO.h
===================================================================
--- trunk.orig/Src/Graphics/New3D/VBO.h 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/New3D/VBO.h 2016-04-04 18:11:03.212520442 -0300
@@ -1,7 +1,11 @@
#ifndef _VBO_H_
#define _VBO_H_
+#ifdef GLEW_STATIC
#include "Pkgs/glew.h"
+#else
+#include <GL/glew.h>
+#endif
namespace New3D {
Index: trunk/Src/Graphics/New3D/Model.h
===================================================================
--- trunk.orig/Src/Graphics/New3D/Model.h 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/New3D/Model.h 2016-04-04 18:11:38.229037419 -0300
@@ -1,7 +1,11 @@
#ifndef _MODEL_H_
#define _MODEL_H_
+#ifdef SUPERMODEL_WIN32
#include "Types.h"
+#else
+#include <sys/types.h>
+#endif
#include <vector>
#include <unordered_map>
#include <map>
@@ -126,4 +130,4 @@
} // New3D
-#endif
\ No newline at end of file
+#endif
Index: trunk/Src/Graphics/New3D/Vec.cpp
===================================================================
--- trunk.orig/Src/Graphics/New3D/Vec.cpp 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/Graphics/New3D/Vec.cpp 2016-04-04 18:11:03.212520442 -0300
@@ -1,6 +1,10 @@
+#ifdef SUPERMODEL_WIN32
#include <windows.h>
-#include "Vec.h"
#include <Math.h>
+#else
+#include <math.h>
+#endif
+#include "Vec.h"
namespace New3D {
Index: trunk/Makefiles/Makefile.SDL.Win32.GCC
===================================================================
--- trunk.orig/Makefiles/Makefile.SDL.Win32.GCC 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Makefiles/Makefile.SDL.Win32.GCC 2016-04-04 18:11:03.212520442 -0300
@@ -97,7 +97,7 @@
CC = gcc
CXX = g++
LD = g++
-COMPILER_FLAGS = -I$(SDL_INCLUDEPATH) -ISrc/ -ISrc/OSD/ -ISrc/OSD/SDL/ -ISrc/OSD/Windows/ -c -Wall -DSUPERMODEL_WIN32 -DGLEW_STATIC -O3
+COMPILER_FLAGS = -I$(SDL_INCLUDEPATH) -ISrc/ -ISrc/OSD/ -ISrc/OSD/SDL/ -ISrc/OSD/Windows/ -c -Wall -DSUPERMODEL_WIN32 -DGLEW_STATIC -DMINIZIP_STATIC -O3
CFLAGS = $(COMPILER_FLAGS)
CPPFLAGS = $(COMPILER_FLAGS) -I$(BOOST_INCLUDEPATH) -std=c++11
LFLAGS = -o $(OUTFILE) $(OBJ) -L$(SDL_LIBPATH) -lmingw32 -lSDLmain -lSDL -lopengl32 -lglu32 -ldinput8 -ldxguid -lole32 -loleaut32 -lwbemuuid -lz -s #-l:$(WINSDK_LIBPATH)/WbemUuid.lib -s
Index: trunk/Src/ROMLoad.cpp
===================================================================
--- trunk.orig/Src/ROMLoad.cpp 2016-04-04 18:11:03.216520502 -0300
+++ trunk/Src/ROMLoad.cpp 2016-04-04 18:11:03.216520502 -0300
@@ -28,7 +28,11 @@
#include <new>
#include <cstring>
#include "Supermodel.h"
+#ifdef MINIZIP_STATIC
#include "Pkgs/unzip.h"
+#else
+#include <minizip/unzip.h>
+#endif
static bool IsPowerOfTwo(long x)
{
http://bazaar.launchpad.net/~random-stu ... uild.patch
Patch updated to svn 333