-
Notifications
You must be signed in to change notification settings - Fork 0
/
HACKING
118 lines (78 loc) · 3.87 KB
/
HACKING
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
109
110
111
112
113
114
115
116
117
118
USING ANONYMOUS CVS:
After downloading via anonymous CVS, you'll need to:
./autogen.sh # See REQUIRED TOOLS below
# for what you need for this to work
./configure --enable-maintainer-mode --enable-warnings ... other flags ...
make -k
Most of the time only the last line is needed; as soon as you have
configured once with --enable-maintainer-mode, make should rebuild
those files automatically. You may need to rerun autogen.sh
after doing a "cvs update -dP" to ensure that new subdirectories and
changes to some of the building meta files are handled properly.
DEBIAN TIPS
After upgrading a bunch of Debian 2.1 packages to unstable 2.2 packages,
Robert J. Chassell used:
make distclean
./autogen.sh
./ltconfig --cache-file=./config.cache --with-gcc \
--with-gnu-ld ./ltmain.sh i686-pc-linux-gnu
./configure --enable-maintainer-mode
make -k
to build Scwm out of CVS w/o Cassowary.
RUNNING SCWM WITHOUT INSTALLING IT:
To run Scwm without installing it, you should be sure
that your $SCWM_LOAD_PATH environment variable points at the
top-level scwm directory containing the checked-out module.
The scwm/app subdirectory should have a symlink scwm->../scheme.
Also, to use any un-installed C modules with Scwm, be sure your
$SCWM_LOAD_PATH includes scwm/modules/lib and you have run
make-devtest from within scwm/modules (and after building with
"make all").
Note that SCWM_LOAD_PATH and GUILE_LOAD_PATH are both searched for
files. See the Guile variables: %load-path, %load-extensions for
more information about the exact details of loading.
REQUIRED TOOLS:
Scwm requires at least autoconf, automake and libtool to generate some
of the automatically generated files for the build process. You don't
need these if you are just compiling a release or a snapshot, but if
you are going to hack on the code and change the Makefiles and such,
or if you use the versions from anonymous CVS, you will probably need
them. The following are some reccomended versions and
locations. Earlier versions may work but we don't guarantee this.
autoconf 2.13:
ftp://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.13.tar.gz
automake 1.4a:
ftp://ftp.gnu.org/pub/gnu/automake/automake-1.4a.tar.gz
libtool 1.3.3:
ftp://ftp.gnu.org/pub/gnu/libtool/libtool-1.3.3.tar.gz
Some of these packages may be available as .rpm or .deb packages, or
other system-specific packages, but I haven't checked.
If you have these tools, and especially if you are hacking the CVS
version, it is strongly reccomended that you run configure with the
--enable-maintainer-mode flag - this will cause "make" to regenerate
automatically generated files as needed, including Makefiles, thus
largely removing the need to run the various "auto" tools by
hand. However, it may sometimes be necessary to run them without
having the Makefile or configure handy. In this case you can run
autogen.sh, which will call all these programs for you.
DOCUMENTATION TOOLS:
To regenerate the documentation from source, you will need the
following tools:
perl 5.004 or higher (until we start using the Guile version).
Parse-RecDescent package from CPAN, version 1.51 or higher
(see http://www.metronet.com/perl/authors/Damian_Conway/ --
the package includes the Text::Balanced module which we use)
makeinfo 1.67 or higher (it's in Texinfo 3.9 for example).
PROJECT IDEAS:
All contributions are welcome. See doc/dev/projects for ideas!
PREFERRED PATCH FORMAT:
If you send in a patch, please do so using "diff -u" if you have a
diff that supports it (like GNU diff), or else "diff -c". Patches
relative to the current head of the relevant CVS branch are the most
useful.
SESSION MANAGEMENT PROTOCOL:
For details on libSM and libICE, see:
ftp://ftp.x.org/pub/R6.4/xc/doc/hardcopy/{SM,ICE}/*.PS.gz
BUILDING RPMS:
If you would like to help us by building binary RPMs for your platform,
see the instructions in doc/dev/scwm-packaging-rpm.txt.