Fixing makefiles for binreloc I made it use flags like other
authorKent Mein <mein@cs.umn.edu>
Fri, 18 Jan 2008 21:39:47 +0000 (21:39 +0000)
committerKent Mein <mein@cs.umn.edu>
Fri, 18 Jan 2008 21:39:47 +0000 (21:39 +0000)
things default on for linux.  ideasman helped me get scons working.
Cmake still needs some love...

Kent

13 files changed:
CMakeLists.txt
config/linux2-config.py
extern/CMakeLists.txt
extern/Makefile
extern/binreloc/CMakeLists.txt [new file with mode: 0644]
extern/binreloc/Makefile [new file with mode: 0644]
source/Makefile
source/creator/CMakeLists.txt
source/creator/Makefile
source/creator/SConscript
source/creator/creator.c
source/nan_definitions.mk
tools/btools.py

index 0227c51f39d17a3ff8fbc28324e14e4af3805016..16818b4a8462b08523ab3527239ed7bc97f60af8 100644 (file)
@@ -67,6 +67,7 @@ OPTION(WITH_OPENEXR           "Enable OpenEXR Support (http://www.openexr.com)"       OFF)
 OPTION(WITH_FFMPEG             "Enable FFMPeg Support (http://ffmpeg.mplayerhq.hu/)"   OFF)
 OPTION(WITH_OPENAL             "Enable OpenAL Support (http://www.openal.org)" ON)
 OPTION(YESIAMSTUPID            "Enable execution on 64-bit platforms"                                  OFF)
+OPTION(WITH_BINRELOC           "Enable binreloc filepath support"                              OFF)
 
 IF(NOT WITH_GAMEENGINE AND WITH_PLAYER)
   MESSAGE("WARNING: WITH_PLAYER needs WITH_GAMEENGINE")
@@ -256,6 +257,9 @@ IF(WIN32)
   SET(FFMPEG_LIB avcodec-51 avformat-51 avutil-49)
   SET(FFMPEG_LIBPATH ${FFMPEG}/lib)
 
+  SET(BINRELC ${LIBDIR}/binreloc)
+  SET(BINRELC_INC ${BINRELOC}/include)
+
   SET(LLIBS kernel32 user32 gdi32 comdlg32 advapi32 shell32 ole32 oleaut32 uuid ws2_32 vfw32 winmm)
   IF(WITH_OPENAL)
     SET(LLIBS ${LLIBS} dxguid)
index 4bf7e755c49292429ce6d58e871c836178344788..abba0f97ef251528822e05f4c9814cf53a87366d 100644 (file)
@@ -114,6 +114,8 @@ BF_ICONV_INC = '${BF_ICONV}/include'
 BF_ICONV_LIB = 'iconv'
 BF_ICONV_LIBPATH = '${BF_ICONV}/lib'
 
+WITH_BF_BINRELOC = 'true'
+
 # enable ffmpeg  support
 WITH_BF_FFMPEG = 'true'  # -DWITH_FFMPEG
 BF_FFMPEG = '#extern/ffmpeg'
index 0f07bde72d5271c9de85d9fd5708195311b86665..1842aa05246d28d1bd9d08367a02e8d2ecee4fff 100644 (file)
@@ -43,3 +43,6 @@ IF(WITH_VERSE)
   SUBDIRS(verse)
 ENDIF(WITH_VERSE)
 
+if(WITH_BINRELOC)
+  SUBDIRS(binreloc)
+ENDIF(WITH_BINRELOC)
index 04b282a89263da331f61a50c289d172b7543b277..4ca63b6e7f9786ba0836fa8d749afdf7625cc784 100644 (file)
@@ -56,6 +56,10 @@ ifneq ($(NAN_NO_KETSJI), true)
     DIRS += bullet2
 endif
 
+ifeq ($(WITH_BINRELOC), true)
+    DIRS += binreloc
+endif
+
 TARGET =
 ifneq ($(OS),irix)
   TARGET=solid
diff --git a/extern/binreloc/CMakeLists.txt b/extern/binreloc/CMakeLists.txt
new file mode 100644 (file)
index 0000000..ee4dccf
--- /dev/null
@@ -0,0 +1,26 @@
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+# The Original Code is Copyright (C) 2008 by The Blender Foundation
+# All rights reserved.
+#
+
+SET(INC ./include ${WINTAB_INC})
+ADD_DEFINITIONS(-DWITH_BINRELOC)
+FILE(GLOB SRC *.c)
+
+BLENDERLIB(binreloc "${SRC}" "${INC}")
+#, libtype=['core','player'], priority = [25,15] ) 
diff --git a/extern/binreloc/Makefile b/extern/binreloc/Makefile
new file mode 100644 (file)
index 0000000..dbd0935
--- /dev/null
@@ -0,0 +1,37 @@
+#
+# ***** BEGIN GPL LICENSE BLOCK *****
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+# The Original Code is Copyright (C) 2008 by The Blender Foundation
+# All rights reserved.
+#
+#
+
+LIBNAME = binreloc
+DIR = $(OCGDIR)/extern/$(LIBNAME)
+
+include nan_definitions.mk
+
+CPPFLAGS += -I./include
+
+
+include nan_compile.mk
+
+
+install: all debug
+       @[ -d $(DIR) ] || mkdir $(DIR)
+       @[ -d $(DIR)/include ] || mkdir $(DIR)/include
+       @../../intern/tools/cpifdiff.sh include/*.h $(DIR)/include/
index ff5c6d5551e2f8258167fd6ea13cf2377c0d79b6..793d38a08ad8fccaf55ff6bd6e9ff700d36d594b 100644 (file)
@@ -173,6 +173,10 @@ ifeq ($(WITH_DDS), true)
     COMLIB += $(OCGDIR)/blender/imbuf/dds/$(DEBUG_DIR)libdds.a
 endif
 
+ifeq ($(WITH_BINRELOC), true)
+    COMLIB += $(OCGDIR)/extern/binreloc/$(DEBUG_DIR)libbinreloc.a
+endif
+
 ifeq ($(WITH_FREETYPE2), true)
     COMLIB += $(OCGDIR)/blender/ftfont/$(DEBUG_DIR)libftfont.a
     ifeq ($(OS), windows)
index a34ed069b020db3f71c36408580b17ccf6b1c63d..7b9da71a5019fab00348f6a78f544233c5c24837 100644 (file)
@@ -42,12 +42,17 @@ INCLUDE_DIRECTORIES(../../intern/guardedalloc
   ../blender/makesdna
   ../kernel/gen_messaging
   ../kernel/gen_system
+  ../../extern/binreloc/include
 )
 
 IF(WITH_QUICKTIME)
   ADD_DEFINITIONS(-DWITH_QUICKTIME)
 ENDIF(WITH_QUICKTIME)
 
+IF(WITH_BINRELOC)
+  ADD_DEFINITIONS(-DWITH_BINRELOC)
+endif(WITH_VINRELOC)
+
 IF(YESIAMSTUPID)
   ADD_DEFINITIONS(-DYESIAMSTUPID)
 ENDIF(YESIAMSTUPID)
index 5fba2a1bb7049cbb7e71e3ab9da43d55a74f7f99..a7f2dfeecb68b5d914c67c5448fc7c61dcb265d9 100644 (file)
@@ -42,9 +42,7 @@ CFLAGS += $(LEVEL_1_C_WARNINGS)
 
 CPPFLAGS += -I../blender/render/extern/include
 CPPFLAGS += -I../blender/radiosity/extern/include
-ifeq ($(OS),linux)
-       CPPFLAGS += -I$(OCGDIR)/extern/binreloc/include
-endif
+
 # two needed for the kernel
 CPPFLAGS += -I../blender/imbuf
 CPPFLAGS += -I../blender/makesdna
@@ -62,6 +60,10 @@ ifeq ($(WITH_QUICKTIME), true)
        CPPFLAGS += -I$(NAN_QUICKTIME)/include -DWITH_QUICKTIME
 endif
 
+ifeq ($(WITH_BINRELOC), true)
+       CPPFLAGS += -I$(OCGDIR)/extern/binreloc/include -DWITH_BINRELOC
+endif
+
 ifeq ($(NAN_YESIAMSTUPID), true)
        CPPFLAGS += -DYESIAMSTUPID
 endif
index b09229a16412ff72fcf7ed70980ed0bf2aac9959..833b56eccd88bb4f9c49a17a48011741f3de5631 100644 (file)
@@ -15,7 +15,8 @@ if env['WITH_BF_QUICKTIME']==1:
     incs += ' ' + env['BF_QUICKTIME_INC']
     defs.append('WITH_QUICKTIME')
 
-if env['OURPLATFORM'] == 'linux2':
-       incs += ' ../../extern/binreloc/include'
+if env['WITH_BF_BINRELOC']==1:
+    incs += ' ../../extern/binreloc/include'
+    defs.append('WITH_BINRELOC')
 
 env.BlenderLib ( libname = 'blender_creator', sources = Split(sources), includes = Split(incs), defines = defs, libtype='core', priority = 1 )
index 7e4262883400e1e07893553e40e748bd3fdd3ce4..11065155f12a8dac1b6768e7bc78ffa40a41ed8f 100644 (file)
@@ -97,7 +97,7 @@
 # include <sys/rtprio.h>
 #endif
 
-#ifdef __linux__
+#ifdef WITH_BINRELOC
 #include "binreloc.h"
 #endif
 
@@ -258,8 +258,7 @@ int main(int argc, char **argv)
 #endif
 
        
-#ifdef __linux__
-       /* linux uses binrealoc to know its binary path */
+#ifdef WITH_BINRELOC
        br_init( NULL );
 #endif
 
index 246be668f5bb775dfbea2e38bdfe17930732e382..36b140c1ffbd638a49005945abed8426ff21b18c 100644 (file)
@@ -416,6 +416,8 @@ endif
     # enable freetype2 support for text objects
     export WITH_FREETYPE2 ?= true
 
+    export WITH_BINRELOC ?= true
+
     # enable ffmpeg support
     ifndef NAN_NO_FFMPEG
          export WITH_FFMPEG ?= true
index 9f5a028f845f91d14e6fdd4b9eac5c95c07d00d7..913e086a79213f5b1f69a55c2c9ae0c4257ffa73 100755 (executable)
@@ -47,6 +47,7 @@ def validate_arguments(args, bc):
             'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC', 'BF_OPENGL_LINKFLAGS',
             'WITH_BF_FTGL', 'BF_FTGL', 'BF_FTGL_INC', 'BF_FTGL_LIB',
             'WITH_BF_PLAYER',
+            'WITH_BF_BINRELOC',        
             'CFLAGS', 'CCFLAGS', 'CPPFLAGS', 
             'REL_CFLAGS', 'REL_CCFLAGS',
             'C_WARN', 'CC_WARN', 'LLIBS', 'PLATFORM_LINKFLAGS',
@@ -300,6 +301,7 @@ def read_opts(cfg, args):
         (BoolOption('BF_SPLIT_SRC', 'Split src lib into several chunks if true', 'false')),
         (BoolOption('WITHOUT_BF_INSTALL', 'dont install if true', 'false')),
         (BoolOption('BF_FANCY', 'Enable fancy output if true', 'true')),
+       (BoolOption('WITH_BF_BINRELOC', 'Enable relocatable binary (linux only)', 'true')),
 
     ) # end of opts.AddOptions()