Bumped version in configure.ac to 1.5.6 (assuming that "1.5f" is

the next version released).
Updated files in mk/autoconf and mk/jam with copies from CS; fixes a 
  GLU detection issue on MinGW.
Set msvc/bullet_ico.ico as the default application icon.
Disabled exceptions for gcc builds.
This commit is contained in:
res2002
2006-06-17 18:17:17 +00:00
parent 51a645bb4a
commit 495349f97d
66 changed files with 14471 additions and 14337 deletions

View File

@@ -36,6 +36,8 @@ Help distclean : "Remove built targets and configuration" ;
Help maintainerclean :
"Remove built targets, configuration, and generated files." ;
ApplicationIconDefault win32 : all : bullet_ico.ico : $(TOP) msvc ;
MsvcGenSubDir TOP msvc : common ;
MsvcGenSubDir TOP msvc 6 : 6 ;
MsvcGenSubDir TOP msvc 7 : 7 ;

View File

@@ -1,6 +1,14 @@
Bullet Continuous Collision Detection and Physics Library
Erwin Coumans
2006 June 17 Frank Richter <resqu@gmx.ch>
Bumped version in configure.ac to 1.5.6 (assuming that "1.5f" is
the next version released).
Updated files in mk/autoconf and mk/jam with copies from CS; fixes a
GLU detection issue on MinGW.
Set msvc/bullet_ico.ico as the default application icon.
Disabled exceptions for gcc builds.
2006 May 24
Improved GJK accuracy, fixed GjkConvexCast issue, thanks to ~MyXa~ for reporting

0
configure vendored Normal file → Executable file
View File

View File

@@ -9,7 +9,7 @@ AC_PREREQ([2.54])
#----------------------------------------------------------------------------
AC_INIT(
[bullet],
[1.1.2006.0319],
[1.5.6],
[bullet@erwincoumans.com])
CS_PACKAGEINFO(
[Bullet Continuous Collision Detection and Physics Library],
@@ -44,6 +44,16 @@ CS_EMIT_BUILD_PROPERTY([PERL], [$PERL])
CS_CHECK_TEMPLATE_TOOLKIT2([emit])
#----------------------------------------------------------------------------
# Check if C++ exceptions can be disabled.
#----------------------------------------------------------------------------
CS_EMIT_BUILD_FLAGS([how to disable C++ exceptions],
[cs_cv_prog_cxx_disable_exceptions], [CS_CREATE_TUPLE([-fno-exceptions])],
[C++], [COMPILER.C++FLAGS.EXCEPTIONS.DISABLE], [],
[CS_EMIT_BUILD_PROPERTY([COMPILER.C++FLAGS],
[$cs_cv_prog_cxx_disable_exceptions], [+])])
#----------------------------------------------------------------------------
# Determine system type
#----------------------------------------------------------------------------

View File

@@ -42,7 +42,7 @@ AC_DEFUN([CS_CHECK_COMMON_TOOLS_LINK],
CS_CHECK_TOOLS([STRINGS], [strings])
CS_EMIT_BUILD_PROPERTY([CMD.STRINGS], [$STRINGS])
CS_CHECK_TOOLS([STRINGS], [objcopy])
CS_CHECK_TOOLS([OBJCOPY], [objcopy])
CS_EMIT_BUILD_PROPERTY([CMD.OBJCOPY], [$OBJCOPY])
CS_CHECK_LIBTOOL

View File

@@ -145,7 +145,7 @@ AC_DEFUN([CS_CHECK_GLU],
# Windows?
AS_IF([test $cs_host_family = windows],
[cs_win32_gl=CS_CREATE_TUPLE([],[],[-lopengl32])])
[cs_win32_glu=CS_CREATE_TUPLE([],[],[-lglu32])])
# Check for GLU.
CS_CHECK_BUILD([for GLU], [cs_cv_libglu],

View File

@@ -93,6 +93,25 @@ AC_DEFUN([_CS_CHECK_MUTEX_FEATURE],
[$cs_cv_sys_pthread_libs])])],
[$2=no])])
#------------------------------------------------------------------------------
# CS_CHECK_PTHREAD_ATFORK(CACHE-VAR)
# Checks whether the pthread library contains pthread_atfork(). Sets
# CACHE-VAR to "yes" or "no", according to the test result.
#------------------------------------------------------------------------------
AC_DEFUN([CS_CHECK_PTHREAD_ATFORK],
[AS_IF([test $cs_cv_sys_pthread = yes],
[AC_CACHE_CHECK([for pthread_atfork support], [$1],
[CS_BUILD_IFELSE(
[AC_LANG_PROGRAM(
[[#include <pthread.h>]],
[pthread_atfork (0, 0, 0);])],
[], [],
[$1=yes], [$1=no],
[$cs_cv_sys_pthread_cflags -D_GNU_SOURCE],
[$cs_cv_sys_pthread_lflags],
[$cs_cv_sys_pthread_libs])])],
[$1=no])])
m4_define([cs_pthread_flags],
[CS_CREATE_TUPLE() \
CS_CREATE_TUPLE([], [], [-lpthread]) \

View File

@@ -73,6 +73,7 @@ AC_DEFUN([CS_PROG_CXX],[
])
AC_DEFUN([CS_PROG_LINK],[
AC_REQUIRE([CS_PROG_CXX])
AS_IF([test -n "$CXX"],
[CS_EMIT_BUILD_PROPERTY([CMD.LINK], [AS_ESCAPE([$(CMD.C++)])])],
[CS_EMIT_BUILD_PROPERTY([CMD.LINK], [AS_ESCAPE([$(CMD.CC)])])])
@@ -87,7 +88,7 @@ AC_DEFUN([CS_PROG_LINK],[
# promote the warning to an error, so we must instead scan the compiler's
# output for an appropriate diagnostic.
CS_CHECK_BUILD_FLAGS([if -shared is accepted], [cs_cv_prog_link_shared],
[CS_CREATE_TUPLE([-shared])], [C++],
[CS_CREATE_TUPLE([-shared $cs_cv_prog_cxx_pic])], [C++],
[CS_EMIT_BUILD_PROPERTY([PLUGIN.LFLAGS], [-shared], [+])], [],
[], [], [], [shared])

View File

@@ -55,11 +55,6 @@ rule Application
$(<)_SOURCES = $(sources) ;
$(<)_TARGET = $(target) ;
# create target clean rule
Always $(<)clean ;
NotFile $(<)clean ;
Clean $(<)clean : $(objects) ; # create target clean rule
# so 'jam foo' works when it's really foo.exe (Windows) or foo.app (MacOS/X)
if $(target) != $(<)
{
@@ -88,9 +83,27 @@ rule Application
MakeLocate $(target) : $(LOCATE.TARGETS) ;
SystemLinkApplication $(<) : $(objects) : $(3) ;
local cleanextra ;
if $(LINK.DEBUG.INFO.SEPARATE) = "yes"
{
local debugfile = [ SplitDebugInfo $(target) ] ;
cleanextra += $(debugfile) ;
if ! [ IsElem noinstall : $(3) ]
{
NoCare $(debugfile) ;
Depends install_bin : [ DoInstall $(debugfile) : $(bindir) : $(INSTALL_DATA) ] ;
}
}
CFlags $(<) : $(APPLICATION.CFLAGS) ;
LFlags $(<) : $(LINKLIBS) $(APPLICATION.LFLAGS) ;
# create target clean rule
Always $(<)clean ;
NotFile $(<)clean ;
Clean $(<)clean : $(objects) $(cleanextra) ;
Clean clean : $(cleanextra) ;
if ! [ IsElem nohelp : $(3) ]
{
local desc = [ Description $(<) ] ;

View File

@@ -49,6 +49,7 @@ include $(jamrulesdir)/objectivec.jam ;
include $(jamrulesdir)/assembler.jam ;
include $(jamrulesdir)/bisonflex.jam ;
include $(jamrulesdir)/swig.jam ;
include $(jamrulesdir)/strip.jam ;
include $(jamrulesdir)/flags.jam ;
include $(jamrulesdir)/library.jam ;

View File

@@ -67,11 +67,6 @@ rule Library
$(<)_SOURCES = $(sources) ;
$(<)_TARGET = $(target) ;
# create target clean rule
Always $(<)clean ;
NotFile $(<)clean ;
Clean $(<)clean : $(objects) ; # create target clean rule
# so 'jam foo' works when it's really foo.exe (Windows) or foo.app (MacOS/X)
if $(target) != $(<)
{
@@ -106,6 +101,12 @@ rule Library
CFlags $(<) : $(LIBRARY.CFLAGS) ;
LFlags $(<) : $(LIBRARY.LFLAGS) ;
# create target clean rule
Always $(<)clean ;
NotFile $(<)clean ;
Clean $(<)clean : $(objects) $($(<)_CLEANEXTRA) ;
Clean clean : $($(<)_CLEANEXTRA) ;
if ! [ IsElem nohelp : $(options) ]
{
local desc = [ Description $(<) ] ;
@@ -206,8 +207,6 @@ rule LibraryStatic
}
Archive $(target) : $(objects) ;
Clean $(<)clean : $(target) ;
Depends clean : $(<)clean ;
if $(RANLIB)
{
@@ -268,14 +267,24 @@ rule LibraryShared
SEARCH on $(linklib) = $(LOCATE.OBJECTS)/libs ;
}
Depends $(target) : $(objects) ;
Clean $(<)clean : $(linklib) $(target) ;
Depends clean : $(<)clean ;
$(<)_CLEANEXTRA += $(target) ;
Depends $(target) : $(deplibs) ;
CFlags $(<) : [ FDefines CS_$(<:U)_LIB ] ;
LFlags $(<) : $(LINKLIBS) ;
SystemLinkSharedLibrary $(target) : $(objects) $(deplibs) : $(linklib) ;
if $(LINK.DEBUG.INFO.SEPARATE) = "yes"
{
local debugfile = [ SplitDebugInfo $(target) ] ;
$(<)_CLEANEXTRA += $(debugfile) ;
if ! [ IsElem noinstall : $(options) ]
{
NoCare $(debugfile) ;
Depends install_lib : [ DoInstall $(debugfile) : $(libdir) : $(INSTALL_DATA) ] ;
}
}
}
rule ConstructLibraryTarget

View File

@@ -41,7 +41,7 @@
#
#==============================================================================
MSVCGEN_SUPPORTED_VERSIONS = 6 7 71 8 sn71 ;
MSVCGEN_SUPPORTED_VERSIONS = 6 7 71 8 ;
MSVCGEN_BUILD_ROOT ?= [ ConcatDirs $(BUILDTOP) out ] ;
MSVCGEN_BUILD_TEMP ?= [ ConcatDirs $(MSVCGEN_BUILD_ROOT) msvcgen ] ;
@@ -190,6 +190,13 @@ rule MsvcCFlags1 { }
rule MsvcLFlags { MsvcLFlags1 $(1) : $(2) : $(3) ; }
rule MsvcLFlags1 { }
## MsvcExtraFile target : files
## Use this rule to add extra file resources to the "Resource files"
## filter of the generated project. Commonly, those files are auxiliary
## files not specified in the source file list, e.g. ".inc" files.
rule MsvcExtraFile { MsvcExtraFile1 $(1) : $(2) ; }
rule MsvcExtraFile1 { }
## MsvcGenName target : name
## Assign an MSVC project name to 'target'. Normally, the project name is
## 'target' with a prefix of "app", "grp", "lib", "plg", or "wks", depending
@@ -440,18 +447,13 @@ if $(MSVC_VERSION) = 6
{
SUFPRJ = dsp ;
SUFWSP = dsw ;
MSVC_SUFLIB = lii6iiib ;
MSVC_SUFEXE = exe ;
MSVC_FORCE_CRLF = yes ;
MSVC_TEMPLATE_SUFFIX = 6 ;
}
else if $(MSVC_VERSION) = 7 || $(MSVC_VERSION) = 71 || $(MSVC_VERSION) = 8 || $(MSVC_VERSION) = sn71
else if $(MSVC_VERSION) = 7 || $(MSVC_VERSION) = 71 || $(MSVC_VERSION) = 8
{
SUFPRJ = vcproj ;
SUFWSP = sln ;
MSVC_SUFLIB = liiixxiib ;
MSVC_SUFEXE = exe ;
MSVC_FORCE_CRLF = no ;
MSVC_TEMPLATE_SUFFIX = 7 ;
if $(MSVC_VERSION) = 7
@@ -469,14 +471,6 @@ else if $(MSVC_VERSION) = 7 || $(MSVC_VERSION) = 71 || $(MSVC_VERSION) = 8 || $(
MSVC_FORMATVERSION_PRJ = 8.00 ;
MSVC_FORMATVERSION_WSP = 9.00 ;
}
else if $(MSVC_VERSION) = sn71
{
MSVC_FORMATVERSION_PRJ = 7.10 ;
MSVC_FORMATVERSION_WSP = 8.00 ;
MSVC_TEMPLATE_SUFFIX = sn71 ;
MSVC_SUFLIB = a ;
MSVC_SUFEXE = elf ;
}
}
else
{
@@ -681,6 +675,11 @@ rule MsvcProject
local sources = $(4) ;
local options = $(5) ;
local relpath = [ Property msvcgen : relpath$(MSVC_VERSION) ] ;
local relpathcommon = [ Property msvcgen : relpathcommon ] ;
if "$(relpathcommon)" = ""
{
relpathcommon = $(relpath) ;
}
local outdir = [ Property msvcgen : outdir$(MSVC_VERSION) ] ;
local outdircommon = [ Property msvcgen : outdircommon ] ;
if "$(outdircommon)" = ""
@@ -833,8 +832,7 @@ rule MsvcProject
{
local iconrc = $(resource:S=.iconrctmp) ;
# RELPATH includes trailing slash (hence the "" in ConcatDirs).
RELPATH on $(iconrc) =
[ ConcatDirs [ Property msvcgen : relpath$(MSVC_VERSION) ] "" ] ;
RELPATH on $(iconrc) = [ ConcatDirs $(relpathcommon) "" ] ;
MakeLocate $(iconrc) : $(workdircommon) ;
Depends $(iconrc) : $(icon) ;
Depends $(iconrc) : $(SUBDIR)/Jamfile ;
@@ -1034,7 +1032,7 @@ rule Application
{
projtype = appgui ;
}
MsvcProject $(<) : $(projtype) : $(<:S=.$(MSVC_SUFEXE)) : $(>) : $(3) ;
MsvcProject $(<) : $(projtype) : $(<:S=.exe) : $(>) : $(3) ;
CompileGroups $(<) : all apps ;
}
@@ -1070,7 +1068,7 @@ rule Library
{
RegisterWellKnownCompileGroup libs ;
$(<)_TYPE = library ;
MsvcProject $(<) : library : $(<:S=.$(MSVC_SUFLIB)) : $(>) ;
MsvcProject $(<) : library : $(<:S=.lib) : $(>) ;
CompileGroups $(<) : all libs ;
}
@@ -1085,10 +1083,11 @@ rule StaticPluginLibrary
{
targets = [ Filter $(targets) : $(rejects) ] ;
}
local sources ;
local sources extlibs ;
for t in $(targets)
{
sources += $(STATICPLUGINS.SOURCES.$(t)) ;
extlibs += $($(t).EXTERNALLIBS) ;
}
$(name)_STATIC = "yes" ;
@@ -1096,6 +1095,7 @@ rule StaticPluginLibrary
Library $(name) : $(sources) ;
MsvcDefine $(name) : CS_STATIC_LINKED ;
_MsvcDefine $(name) : $(STATICPLUGINS.MSVC_DEFINES) ;
ExternalLibs $(name) : [ RemoveDups $(extlibs) ] ;
# Write out needed CFLAGS, LFLAGS
local outdir = [ Property msvcgen : outdircommon ] ;
@@ -1129,12 +1129,12 @@ rule WriteDependencies
MakeLocate $(depfile_gristed) : [ on $(depfile) GetVar LOCATE ] ;
# "Artificially" insert static library itself
lflags.debug += $(MSVC.PREFIX.library)$(libname)_d.$(MSVC_SUFLIB) ;
lflags.release += $(MSVC.PREFIX.library)$(libname).$(MSVC_SUFLIB) ;
lflags.debug += $(MSVC.PREFIX.library)$(libname)_d.lib ;
lflags.release += $(MSVC.PREFIX.library)$(libname).lib ;
# Collect other libs
local libs = [ ResolveLibs $($(plugin).NEEDLIBS) ] ;
lflags.debug += $(MSVC.PREFIX.library)$(libs)_d.$(MSVC_SUFLIB) ;
lflags.release += $(MSVC.PREFIX.library)$(libs).$(MSVC_SUFLIB) ;
lflags.debug += $(MSVC.PREFIX.library)$(libs)_d.lib ;
lflags.release += $(MSVC.PREFIX.library)$(libs).lib ;
# Defines
local l ;
@@ -1352,6 +1352,20 @@ rule MsvcLFlags1
_MsvcRespEmit $(1) : $(2) : lflags : $(3) ;
}
# MsvcLFlags target : files
# (See documentation above.)
rule MsvcExtraFile1
{
local rawname = $(1) ;
local files = $(2) ;
local respfile = $($(rawname)_PRJ_RESPFILE) ;
local respdir = $($(rawname)_PRJ_RESPDIR) ;
ResponseFile $(respfile) : "file|$(files)" : notfile :
$(respdir) ;
}
# _MsvcIncDirs target : incdirs [ : mode ]
# Helper for ExternalLibs which processes the contents of TAG.INCDIRS for
# an external library.

View File

@@ -54,11 +54,6 @@ rule Plugin
$(<)_TARGET = $(target) ;
$(<)_METAFILE = $(metafile) ;
# create target clean rule
Always $(<)clean ;
NotFile $(<)clean ;
Clean $(<)clean : $(objects) ; # create target clean rule
# Create a target for eventual static linking
if ! $(NO_STATIC_LINKING)
{
@@ -116,9 +111,27 @@ rule Plugin
MakeLocate $(target) : $(LOCATE.TARGETS) ;
SystemLinkPlugin $(<) : $(objects) : $(3) ;
local cleanextra ;
if $(LINK.DEBUG.INFO.SEPARATE) = "yes"
{
local debugfile = [ SplitDebugInfo $(target) ] ;
cleanextra += $(debugfile) ;
if ! [ IsElem noinstall : $(3) ]
{
NoCare $(debugfile) ;
Depends install_plugin : [ DoInstall $(debugfile) : $(plugindir) : $(INSTALL_DATA) ] ;
}
}
CFlags $(<) : $(PLUGIN.CFLAGS) : nostatic ;
LFlags $(<) : $(LINKLIBS) $(PLUGIN.LFLAGS) : nostatic ;
# create target clean rule
Always $(<)clean ;
NotFile $(<)clean ;
Clean $(<)clean : $(objects) $(cleanextra) ;
Clean clean : $(cleanextra) ;
if ! [ IsElem nohelp : $(3) ]
{
local desc = [ Description $(<) ] ;

36
mk/jam/strip.jam Normal file
View File

@@ -0,0 +1,36 @@
#============================================================================
# Rules for stripping binaries
# Copyright (C)2006 by Frank Richter
#
# This library is free software; you can redistribute it and/or modify it
# under the terms of the GNU Library General Public License as published by
# the Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This library 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 Library General Public
# License for more details.
#
# You should have received a copy of the GNU Library General Public License
# along with this library; if not, write to the Free Software Foundation,
# Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#============================================================================
## SplitDebugInfo binary
## Strips the debugging information into a separate external file.
rule SplitDebugInfo
{
local binary = $(1) ;
DoSplitDebugInfo $(binary) ;
return $(binary).dbg ;
}
actions DoSplitDebugInfo
{
$(CMD.OBJCOPY) --only-keep-debug $(<) $(<).dbg
$(CMD.OBJCOPY) --strip-unneeded $(<)
$(CMD.OBJCOPY) --add-gnu-debuglink=$(<).dbg $(<)
if [ "$(CHMOD)" ] ; then $(CHMOD) a-x $(<).dbg ; fi
}

View File

@@ -117,7 +117,15 @@ rule SystemLinkSharedLibrary
{
LFlags $(<) : $(LINKLIBS) ;
Depends $(<) : $(>) ;
LinkSharedLibrary $(<) : $(>) : $(3) ;
local response = $(<).resp ;
MakeLocate $(response) : $(LOCATE.OBJECTS)/libs ;
ResponseFile $(response) : $(>) ;
# @@@ FIXME: response files are only supported on newer binutils
# But quite useful to avoid blowing jam's 10240 max action length.
#Depends $(response) : $(>) ;
#Depends $(<) : $(response) ;
#LinkSharedLibrary $(<) : $(response) ;
LinkSharedLibrary $(<) : $(>) ;
Clean clean : $(<) ;
Clean $(<)clean : $(<) ;