File: SConstruct

package info (click to toggle)
fsplib 0.14-5.1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 236 kB
  • sloc: ansic: 1,581; python: 117; makefile: 11; sh: 8
file content (97 lines) | stat: -rw-r--r-- 3,250 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# Process this file with http://www.scons.org to build FSPlib.

import os
# init Scons
EnsureSConsVersion(3,0)
PACKAGE='fsplib'
VERSION='0.14'

#Defaults
PREFIX='/usr/local'
SHARED=0

env = Environment()
# Turn CPPFLAGS to list
env.Append( CPPFLAGS = [])

############## Imports #################
from maintainer import checkForMaintainerMode
from compilertest import checkForCCOption
from buildshared import checkForBuildingSharedLibrary
from dirent import checkForDirentMember
from lockprefix import checkForLockPrefix
from locktype import checkForLockingType
from prefix import checkForUserPrefix

################### Functions ######################
def importEnv(list=None, prefix=None):
   if list:
       for i in list:
           if os.environ.get(i):
               kw={}
               kw[i]=os.environ.get(i)
               kw={ 'ENV': kw }
               env.Append(**kw)
   if prefix:
       for i in os.environ.keys():
           if i.startswith(prefix):
               kw={}
               kw[i]=os.environ.get(i)
               kw={ 'ENV': kw }
               env.Append(**kw)

#import environment
importEnv(['HOME','CC'])
importEnv(prefix='DISTCC_')
importEnv(prefix='CCACHE_')
if env['ENV'].get('CC'):
    env.Replace( CC = env['ENV'].get('CC'))
# Get CC from commandline
if ARGUMENTS.get('CC', 0):
    env.Replace(CC =  ARGUMENTS.get('CC'))

############# Custom configure tests ###################

#Start configuration
conf = Configure(env,{
                       'checkForGCCOption':checkForCCOption,
                       'MAINTAINER_MODE':checkForMaintainerMode,
                       'checkForLockPrefix':checkForLockPrefix,
                       'checkPrefix':checkForUserPrefix,
                       'checkDirentFor':checkForDirentMember,
                       'ENABLE_SHARED':checkForBuildingSharedLibrary,
                       'checkForLockingType':checkForLockingType
                      }
                      )
for option in Split("""
      -Wall -W -Wstrict-prototypes -Wmissing-prototypes -Wshadow
      -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings
      -Waggregate-return -Wmissing-declarations
      -Wmissing-format-attribute -Wnested-externs
      -ggdb -fno-common -Wchar-subscripts -Wcomment
      -Wimplicit -Wsequence-point -Wreturn-type
      -Wfloat-equal -Wno-system-headers -Wredundant-decls
      -Wmissing-noreturn -pedantic
      -Wlong-long -Wundef -Winline
      -Wpointer-arith -Wno-unused-parameter
      -Wno-cast-align
"""):
       conf.checkForGCCOption(option)
#portability checks       
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.checkDirentFor('d_namlen','HAVE_DIRENT_NAMLEN')
conf.checkDirentFor('d_fileno','HAVE_DIRENT_FILENO')
conf.checkDirentFor('d_type','HAVE_DIRENT_TYPE')
if conf.CheckCHeader('stdint.h'):
       conf.env.Append(CPPFLAGS = "-DHAVE_STDINT_H")
conf.checkForLockingType(conf)
conf.checkForLockPrefix()
PREFIX = conf.checkPrefix(PREFIX)
SHARED = conf.ENABLE_SHARED()
conf.MAINTAINER_MODE()
conf.Finish()

# process build rules
Export( Split("env PREFIX PACKAGE VERSION SHARED"))
env.SConscript(dirs=['.'])