Blob Blame History Raw
From ccf3bd265e4631376919dd3b5cbaf95f17f6cb8e Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Sat, 14 Nov 2015 18:14:43 +0100
Subject: [PATCH 5/7] Allow builds without bundling the libraries

---
 makefile              | 64 ++++++++++++++++++++++++++++++++++++++++-----------
 src/core/main.cpp     |  2 +-
 src/include/toolkit.h | 22 ++++--------------
 3 files changed, 56 insertions(+), 32 deletions(-)

diff --git a/makefile b/makefile
index 4d31b04..9386d70 100644
--- a/makefile
+++ b/makefile
@@ -95,43 +95,79 @@ src/chip/tflipflop.cpp \
 src/basecode/toolkit.cpp \
 src/core/wire.cpp \
 src/chip/xorchip.cpp \
-src/core/AtanuaConfig.cpp \
+src/core/AtanuaConfig.cpp
+
+atanua-c-src = \
+src/8051/core.c \
+src/8051/disasm.c \
+src/8051/opcodes.c
+
+atanua-obj = $(atanua-cpp-src:.cpp=.o) $(atanua-c-src:.c=.o)
+
+tinyxml-cpp-src = \
 src/tinyxml_2_5_3/tinyxml/tinystr.cpp \
 src/tinyxml_2_5_3/tinyxml/tinyxml.cpp \
 src/tinyxml_2_5_3/tinyxml/tinyxmlerror.cpp \
 src/tinyxml_2_5_3/tinyxml/tinyxmlparser.cpp \
 
-atanua-c-src = \
-src/8051/core.c \
-src/8051/disasm.c \
-src/8051/opcodes.c \
+tinyxml-obj = $(tinyxml-cpp-src:.cpp=.o)
+
+stb-c-src = \
 src/stb/stb_image.c \
-src/stb/stb_image_write.c \
+src/stb/stb_image_write.c
+
+stb-obj = $(stb-c-src:.c=.o)
+
+glee-c-src = \
 src/glee/GLee.c
 
-atanua-obj = $(atanua-cpp-src:.cpp=.o) $(atanua-c-src:.c=.o)
+glee-obj = $(glee-c-src:.c=.o)
 
 CXX = clang
 CC = clang
 CFLAGS = -O3
 
-gtk_CFLAGS = $(shell pkg-config --cflags gtk+-3.0)
 glib_CFLAGS = $(shell pkg-config --cflags glib-2.0)
-sdl_CFLAGS = $(shell pkg-config --cflags sdl)
-gtk_LDFLAGS = $(shell pkg-config --libs gtk+-3.0)
 glib_LDFLAGS = $(shell pkg-config --libs glib-2.0)
+
+gtk_CFLAGS = $(shell pkg-config --cflags gtk+-3.0)
+gtk_LDFLAGS = $(shell pkg-config --libs gtk+-3.0)
+
+sdl_CFLAGS = $(shell pkg-config --cflags sdl)
 sdl_LDFLAGS = $(shell pkg-config --libs sdl)
 
-override CFLAGS += $(gtk_CFLAGS)
+ifdef UNBUNDLE
+
+# Link against the system libraries
+tinyxml_LDFLAGS += -ltinyxml
+stb_LDFLAGS += -lstbi
+glee_LDFLAGS += -lGLee
+
+else
+
+# Build bundled copies
+tinyxml_CFLAGS = -Isrc/tinyxml_2_5_3/tinyxml
+stb_CFLAGS = -Isrc/stb
+glee_CFLAGS = -Isrc/glee
+atanua-obj += $(tinyxml-obj) $(stb-obj) $(glee-obj)
+
+endif
+
 override CFLAGS += $(glib_CFLAGS)
+override CFLAGS += $(gtk_CFLAGS)
 override CFLAGS += $(sdl_CFLAGS)
-override CFLAGS += -Isrc -Isrc/include -Isrc/tinyxml_2_5_3/tinyxml
-
+override CFLAGS += $(stb_CFLAGS)
+override CFLAGS += $(tinyxml_CFLAGS)
+override CFLAGS += $(glee_CFLAGS)
+override CFLAGS += -Isrc -Isrc/include -I/usr/include/GL -I/usr/include/OpenGL
 override CXXFLAGS += $(CFLAGS)
 
-override LDFLAGS += $(gtk_LDFLAGS)
 override LDFLAGS += $(glib_LDFLAGS)
+override LDFLAGS += $(gtk_LDFLAGS)
 override LDFLAGS += $(sdl_LDFLAGS)
+override LDFLAGS += $(stb_LDFLAGS)
+override LDFLAGS += $(tinyxml_LDFLAGS)
+override LDFLAGS += $(glee_LDFLAGS)
 override LDFLAGS += -lGL -lGLU -lm -ldl -lstdc++
 
 atanua: $(atanua-obj)
diff --git a/src/core/main.cpp b/src/core/main.cpp
index 635a669..a92d2bc 100644
--- a/src/core/main.cpp
+++ b/src/core/main.cpp
@@ -27,7 +27,7 @@ distribution.
 #include "basechipfactory.h"
 #include "pluginchipfactory.h"
 
-#include "stb/stb_image_write.h"
+#include <stb_image_write.h>
 
 #define C_MENUBG 0xff3f4f4f
 #define C_WIDGETBG 0xff3f5f6f
diff --git a/src/include/toolkit.h b/src/include/toolkit.h
index 061962a..f24ae43 100644
--- a/src/include/toolkit.h
+++ b/src/include/toolkit.h
@@ -54,35 +54,23 @@ distribution.
 #define LINUX_VERSION
 #endif
 
+#include <SDL/SDL.h>
+#include <stb_image.h>
+#include <GLee.h>
+#include <gl.h>
+#include <glu.h>
 
 #ifdef WINDOWS_VERSION
 #include <windows.h> // needed to get GL stuff to work
-#include <SDL.h>
-#include "stb/stb_image.h"
-#include "glee/glee.h"
-#include <GL/gl.h>
-#include <GL/glu.h>
 #define stricmp _stricmp
 #define strdup _strdup
 #endif
 
-
 #ifdef OSX_VERSION
-#include <SDL/SDL.h>
-#include "stb/stb_image.h"
-#include "glee/GLee.h"
-#include <OpenGL/gl.h>
-#include <OpenGL/glu.h>
 #define stricmp(a,b) strcasecmp((a),(b))
 #endif
 
-
 #ifdef LINUX_VERSION
-#include <SDL/SDL.h>
-#include "stb/stb_image.h"
-#include "glee/GLee.h"
-#include <GL/gl.h>
-#include <GL/glu.h>
 #define stricmp(a,b) strcasecmp((a),(b))
 #endif
 
-- 
2.5.0