add scons script for enabling large files with special linux support
This commit is contained in:
parent
748e529b27
commit
2a52e5b0ff
10
SConstruct
10
SConstruct
|
|
@ -62,6 +62,7 @@ from mandir import autodetectMandir
|
||||||
from clients import checkForBuildingClients
|
from clients import checkForBuildingClients
|
||||||
from sysconfdir import checkForUserSysconfdir
|
from sysconfdir import checkForUserSysconfdir
|
||||||
from sgmldoc import checkForSGMLFMT
|
from sgmldoc import checkForSGMLFMT
|
||||||
|
from largefiles import enableLargeFiles
|
||||||
|
|
||||||
conf = Configure(env,{'checkForCCOption':checkForCCOption,
|
conf = Configure(env,{'checkForCCOption':checkForCCOption,
|
||||||
'MAINTAINER_MODE':checkForMaintainerMode,
|
'MAINTAINER_MODE':checkForMaintainerMode,
|
||||||
|
|
@ -100,9 +101,6 @@ SGML=conf.checkForSGMLFMT()
|
||||||
# Portability build time config
|
# Portability build time config
|
||||||
if conf.CheckFunc('srandomdev'):
|
if conf.CheckFunc('srandomdev'):
|
||||||
conf.env.Append(CPPFLAGS = '-DHAVE_SRANDOMDEV')
|
conf.env.Append(CPPFLAGS = '-DHAVE_SRANDOMDEV')
|
||||||
fseeko=conf.CheckFunc('fseeko')
|
|
||||||
if fseeko:
|
|
||||||
conf.env.Append(CPPFLAGS = '-DHAVE_FSEEKO')
|
|
||||||
if conf.CheckFunc('random'):
|
if conf.CheckFunc('random'):
|
||||||
conf.env.Append(CPPFLAGS = '-DHAVE_RANDOM')
|
conf.env.Append(CPPFLAGS = '-DHAVE_RANDOM')
|
||||||
if conf.CheckFunc('fork'):
|
if conf.CheckFunc('fork'):
|
||||||
|
|
@ -128,13 +126,9 @@ env.Append(CPPFLAGS = '-DSIZEOF_LONG='+conf.sizeOf("long"))
|
||||||
env.Append(CPPFLAGS = '-DSIZEOF_SHORT='+conf.sizeOf("short"))
|
env.Append(CPPFLAGS = '-DSIZEOF_SHORT='+conf.sizeOf("short"))
|
||||||
env.Append(CPPFLAGS = '-DSIZEOF_UNSIGNED='+conf.sizeOf("unsigned"))
|
env.Append(CPPFLAGS = '-DSIZEOF_UNSIGNED='+conf.sizeOf("unsigned"))
|
||||||
env.Append(CPPFLAGS = '-DSIZEOF_VOID='+conf.sizeOf("void"))
|
env.Append(CPPFLAGS = '-DSIZEOF_VOID='+conf.sizeOf("void"))
|
||||||
offt=conf.sizeOf("off_t")
|
|
||||||
env.Append(CPPFLAGS = '-DSIZEOF_OFF_T='+offt)
|
|
||||||
if fseeko and int(offt)>=8:
|
|
||||||
conf.env.Append(CPPFLAGS = '-DNATIVE_LARGEFILES')
|
|
||||||
if not conf.CheckType("union semun", "#include <sys/types.h>\n#include <sys/ipc.h>\n#include <sys/sem.h>",'c'):
|
if not conf.CheckType("union semun", "#include <sys/types.h>\n#include <sys/ipc.h>\n#include <sys/sem.h>",'c'):
|
||||||
conf.env.Append(CPPFLAGS = "-D_SEM_SEMUN_UNDEFINED=1")
|
conf.env.Append(CPPFLAGS = "-D_SEM_SEMUN_UNDEFINED=1")
|
||||||
|
enableLargeFiles(conf)
|
||||||
conf.checkForLockingType(conf)
|
conf.checkForLockingType(conf)
|
||||||
if conf.checkReliableSignals():
|
if conf.checkReliableSignals():
|
||||||
conf.env.Append(CPPFLAGS = '-DRELIABLE_SIGNALS')
|
conf.env.Append(CPPFLAGS = '-DRELIABLE_SIGNALS')
|
||||||
|
|
|
||||||
26
site_scons/largefiles.py
Normal file
26
site_scons/largefiles.py
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
#
|
||||||
|
# SCons Largefile enablement
|
||||||
|
#
|
||||||
|
# Version 1.0
|
||||||
|
# 21-Sep-2009
|
||||||
|
#
|
||||||
|
|
||||||
|
def enableLargeFiles(conf):
|
||||||
|
"""Tries to enable 64-bit off_t on linux platform"""
|
||||||
|
fseeko=conf.CheckFunc('fseeko')
|
||||||
|
if fseeko:
|
||||||
|
conf.env.Append(CPPFLAGS = '-DHAVE_FSEEKO')
|
||||||
|
offt=conf.CheckTypeSize('off_t','#include <stdio.h>')
|
||||||
|
if offt<8 and offt>0:
|
||||||
|
flags=conf.env.Dictionary()['CPPFLAGS']
|
||||||
|
conf.env.Append(CPPFLAGS='-D_FILE_OFFSET_BITS=64')
|
||||||
|
offt=conf.CheckTypeSize('off_t','#include <stdio.h>')
|
||||||
|
if offt < 8:
|
||||||
|
env.Replace(CPPFLAGS=flags)
|
||||||
|
conf.env.Append(CPPFLAGS = '-DSIZEOF_OFF_T='+str(offt))
|
||||||
|
if fseeko and int(offt)>=8:
|
||||||
|
conf.env.Append(CPPFLAGS = '-DNATIVE_LARGEFILES')
|
||||||
|
rc=True
|
||||||
|
else:
|
||||||
|
rc=False
|
||||||
|
return rc
|
||||||
Loading…
Reference in New Issue
Block a user