File: scons.patch

package info (click to toggle)
atom4 4.1-10
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 908 kB
  • sloc: cpp: 4,451; makefile: 25; perl: 6
file content (108 lines) | stat: -rw-r--r-- 2,166 bytes parent folder | download
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
98
99
100
101
102
103
104
105
106
107
108
--- /dev/null
+++ b/SConstruct
@@ -0,0 +1,105 @@
+import os
+import glob
+from SCons.Script import *
+
+vars = Variables()
+vars.Add('BINDIR',      'Binary install dir',   '/usr/games')
+vars.Add('DATADIR',     'Data install dir',     '/usr/share/games/atom4')
+vars.Add('MANDIR',      'Manpage dir',          '/usr/share/man')
+vars.Add('REALDATADIR', 'Runtime data dir',     None)
+
+env = Environment(
+    variables=vars,
+    CXX=os.environ.get('CXX', 'g++'),
+)
+
+Help(vars.GenerateHelpText(env))
+
+def split_flags(name):
+    return os.environ.get(name, '').split()
+
+env.Append(
+    CCFLAGS   = split_flags('CFLAGS'),
+    CPPFLAGS  = split_flags('CPPFLAGS'),
+    LINKFLAGS = split_flags('LDFLAGS'),
+)
+
+env.Append(CCFLAGS=['-O2'])
+
+if env.get('REALDATADIR') is None:
+    env['REALDATADIR'] = env['DATADIR']
+
+env.Append(
+    CPPDEFINES = {
+        'REALDATADIR': f"\"{env['REALDATADIR']}\"",
+    },
+)
+
+env.Append(
+    CPPPATH = [
+        '#',
+        '#engine',
+        '#general',
+        '#ncurses',
+        '#proglib/c++',
+        '#x',
+    ]
+)
+
+env['LINK'] = env['CXX']
+
+env.Append(
+    LIBPATH = [
+        '#proglib',
+        '/usr/X11R6/lib',
+    ],
+    LIBS = ['X11', 'Xpm', 'panel', 'ncurses'],
+)
+
+VariantDir('obj', '.', duplicate=0)
+
+sources = [
+    # top-level
+    'atom4.cc',
+    'interface.cc',
+
+    # engine
+    'engine/ai.cc',
+    'engine/board4.cc',
+    'engine/color4.cc',
+    'engine/game.cc',
+    'engine/triboard.cc',
+
+    # general utilities (NOT testtimer.cc!)
+    'general/event.cc',
+    'general/resource.cc',
+
+    # ncurses UI
+    'ncurses/textui.cc',
+
+    # X11 UI implementation
+    'x/xatom4.cc',
+    'x/xcursor.cc',
+    'x/xscoreboard.cc',
+    'x/xsprite.cc',
+    'x/xtriboard.cc',
+    'x/xutil.cc',
+
+    # prog/lib
+    'proglib/c++/dlist.cc',
+    'proglib/c++/exception.cc',
+    'proglib/c++/list.cc',
+    'proglib/c++/stack.cc',
+    'proglib/c++/txtutil.cc',
+]
+
+program = env.Program(
+    target='atom4',
+    source=sources,
+)
+
+env.Install(env['BINDIR'], program)
+env.Install(os.path.join(env['MANDIR'], 'man6'), 'atom4.6')
+
+Default(program)
+