View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004198 | The Dark Mod | Design/Coding | public | 11.08.2015 10:54 | 15.08.2015 09:56 |
Reporter | NagaHuntress | Assigned To | SteveL | ||
Priority | normal | Severity | normal | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
OS | Linux | ||||
Target Version | TDM 2.04 | Fixed in Version | TDM 2.04 | ||
Summary | 0004198: A patch to compile libPNG under Linux | ||||
Description | When compiling under recent distros, the latest versions of libPNG some how include "/usr/include/zlib.h" instead of the zlib.h version included with the source. This causes compiler errors due to missing typedefs and defines and breaks the build process. As seen in this post: http://forums.thedarkmod.com/topic/15289-ubuntu-1310-64-bit-and-32-bit-libs/?p=371909 I've also experienced this under Linux Mint 17.2 (64 bit). The fix I found to this was just add the libPNG included in the source as part of the SCons build process. | ||||
Tags | No tags attached. | ||||
Attached Files | tdm-linux-scons-libpng-patch.diff (4,794 bytes)
Index: SConstruct =================================================================== --- SConstruct (revision 6527) +++ SConstruct (working copy) @@ -470,6 +470,7 @@ g_base_env.Append(CPPPATH = '#/include/zlib') g_base_env.Append(CPPPATH = '#/include/minizip') g_base_env.Append(CPPPATH = '#/include/libjpeg') +g_base_env.Append(CPPPATH = '#/include/libpng') g_base_env.Append(CPPPATH = '#/include/devil') g_base_env.Append(CPPPATH = '#/') Index: sys/scons/SConscript.core =================================================================== --- sys/scons/SConscript.core (revision 6527) +++ sys/scons/SConscript.core (working copy) @@ -313,10 +313,11 @@ sound_env.Append( CPPDEFINES = 'NO_ALSA' ) sound_lib = sound_env.StaticLibrary( 'sound', sound_list ) -local_env.Append( LIBS = [ 'pthread', 'dl', 'rt', 'png' ] ) # greebo: Added librt and libpng +local_env.Append( LIBS = [ 'pthread', 'dl', 'rt' ] ) #, 'png' # greebo: Added librt and libpng if ( local_dedicated == 0 ): local_env.Append( LIBS = [ 'X11', 'Xext', 'Xxf86vm' ] ) # 'Xxf86dga', - local_env.Append( LIBPATH = [ '/usr/X11R6/lib' ] ) +# local_env.Append( LIBPATH = [ '/usr/X11R6/lib' ] ) + local_env.Append( LIBPATH = [ '/usr/lib/i386-linux-gnu' ] ) # local_env.Append( LIBS = [ 'openal' ] ) # greebo: Add boost and image libraries @@ -342,6 +343,8 @@ # greebo: Use custom compiled devIL and libjpeg (since the engine requires 4 bytes per pixel format) in Linux source_list += SConscript( '../../sys/scons/SConscript.devil' ) source_list += SConscript( '../../sys/scons/SConscript.libjpeg' ) +source_list += SConscript( '../../sys/scons/SConscript.libpng' ) +source_list += SConscript( '../../sys/scons/SConscript.ziploader' ) source_list += g_env_noopt.StaticObject( '../../tools/compilers/dmap/optimize_gcc.cpp' ) Index: sys/scons/SConscript.game =================================================================== --- sys/scons/SConscript.game (revision 6527) +++ sys/scons/SConscript.game (working copy) @@ -305,7 +305,7 @@ # Link the runtime statically, link statically against libpng.a # the corresponding package libpng12-dev must be available on the system -local_env.Append( LINKFLAGS = [ '-lrt', '-lpng' ] ) +local_env.Append( LINKFLAGS = [ '-lrt' ] ) #, '-lpng' local_env.Append(LIBS = [ # Uncomment this if you're on a x64 system - there is no libpng.a on Ubuntu x64 for instance @@ -327,8 +327,9 @@ # greebo: Use custom compiled devIL and libjpeg in Linux devil_list = SConscript( '../../sys/scons/SConscript.devil' ) libjpeg_list = SConscript( '../../sys/scons/SConscript.libjpeg' ) +libpng_list = SConscript( '../../sys/scons/SConscript.libpng' ) -full_list = game_list + darkModList + idlib_objects + ziploader_list + devil_list + libjpeg_list +full_list = game_list + darkModList + idlib_objects + ziploader_list + devil_list + libjpeg_list + libpng_list ret = local_env.SharedLibrary('game', full_list ) Index: sys/scons/SConscript.libpng =================================================================== --- sys/scons/SConscript.libpng (revision 0) +++ sys/scons/SConscript.libpng (working copy) @@ -0,0 +1,60 @@ +#***************************************************************************** +# The Dark Mod GPL Source Code +# +# This file is part of the The Dark Mod Source Code, originally based +# on the Doom 3 GPL Source Code as published in 2011. +# +# The Dark Mod Source Code 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 3 of the License, +# or (at your option) any later version. For details, see LICENSE.TXT. +# +# Project: The Dark Mod (http://www.thedarkmod.com/) +# +# $Revision: 5572 $ (Revision of last commit) +# $Date: 2012-09-18 01:35:30 +0930 (Tue, 18 Sep 2012) $ (Date of last commit) +# $Author: greebo $ (Author of last commit) +# +#***************************************************************************** + +import scons_utils + +Import( 'GLOBALS' ) +Import( GLOBALS ) + +libpng_string = ' \ + png.c \ + pngerror.c \ + pngget.c \ + pngmem.c \ + pngpread.c \ + pngread.c \ + pngrio.c \ + pngrtran.c \ + pngrutil.c \ + pngset.c \ + pngtrans.c \ + pngwio.c \ + pngwrite.c \ + pngwtran.c \ + pngwutil.c' + + +libpng_list = scons_utils.BuildList( '', libpng_string ) + +# greebo: The source files are located in darkmod_src/lib/libpng, for all platforms + +for i in range( len( libpng_list ) ): + libpng_list[ i ] = '../../lib/libpng/' + libpng_list[ i ] + +local_env = g_env.Clone() + +# Use the libpng headers +local_env.Append(CPPPATH = '#/include/libpng') + +ret_list = [] + +for f in libpng_list: + ret_list += local_env.SharedObject( source = f ) + +Return( 'ret_list' ) | ||||
The patch makes TDM compile further on my system, so it looks good. Thank you! | |
Thanks for the test. Commited at rev 6530 /trunk/SConstruct /trunk/sys/scons/SConscript.core /trunk/sys/scons/SConscript.game /trunk/sys/scons/SConscript.libpng |
|
Date Modified | Username | Field | Change |
---|---|---|---|
11.08.2015 10:54 | NagaHuntress | New Issue | |
11.08.2015 10:54 | NagaHuntress | File Added: tdm-linux-scons-libpng-patch.diff | |
14.08.2015 18:44 | tels | Note Added: 0007717 | |
14.08.2015 19:05 | SteveL | Assigned To | => SteveL |
14.08.2015 19:05 | SteveL | Status | new => assigned |
15.08.2015 09:56 | SteveL | Note Added: 0007719 | |
15.08.2015 09:56 | SteveL | Status | assigned => resolved |
15.08.2015 09:56 | SteveL | Resolution | open => fixed |
15.08.2015 09:56 | SteveL | Fixed in Version | => TDM 2.04 |
15.08.2015 09:56 | SteveL | Target Version | => TDM 2.04 |