1 |
Hacking It Yourself ================================================== |
Hacking It Yourself ================================================== |
2 |
|
|
3 |
As distributed, Guile needs only an ANSI C compiler and a Unix system |
When Guile is obtained from CVS, a few extra steps must be taken |
4 |
to compile. However, Guile's makefiles, configuration scripts, and a |
before the usual configure, make, make install. You will need to have |
5 |
few other files are automatically generated, not written by hand. If |
up-to-date versions of the tools listed below, correctly installed. |
6 |
you want to make changes to the system (which we encourage!) you will |
i.e., they must be found in the current PATH and not shadowed or |
7 |
find it helpful to have the tools we use to develop Guile. They |
otherwise broken by files left behind from other versions. |
8 |
are the following: |
|
9 |
|
"up-to-date" means the latest released versions at the time that Guile |
10 |
|
was obtained from CVS. Sometimes older or newer versions will work. |
11 |
|
|
12 |
|
Then you must run the autogen.sh script, as described below. |
13 |
|
|
14 |
|
In case of problems, it may be worth getting a fresh copy of Guile |
15 |
|
from CVS: synchronisation problems have been known to occur |
16 |
|
occasionally. |
17 |
|
|
18 |
|
The same procedure can be used to regenerate the files in released |
19 |
|
versions of Guile. In that case the headers of the original generated |
20 |
|
files (e.g., configure, Makefile.in, ltmain.sh) can be used to |
21 |
|
identify which tool versions may be required. |
22 |
|
|
23 |
Autoconf 2.13 --- a system for automatically generating `configure' |
Autoconf --- a system for automatically generating `configure' |
24 |
scripts from templates which list the non-portable features a |
scripts from templates which list the non-portable features a |
25 |
program would like to use. Available in |
program would like to use. Available in |
26 |
"ftp://ftp.gnu.org/pub/gnu/autoconf" |
"ftp://ftp.gnu.org/pub/gnu/autoconf" |
27 |
|
|
28 |
Automake 1.4 --- a system for automatically generating Makefiles that |
Automake --- a system for automatically generating Makefiles that |
29 |
conform to the (rather Byzantine) GNU coding standards. The |
conform to the (rather Byzantine) GNU coding standards. The |
30 |
nice thing is that it takes care of hairy targets like 'make |
nice thing is that it takes care of hairy targets like 'make |
31 |
dist' and 'make distclean', and automatically generates |
dist' and 'make distclean', and automatically generates |
32 |
Makefile dependencies. Automake is available in |
Makefile dependencies. Automake is available in |
33 |
"ftp://ftp.gnu.org/pub/gnu/automake" |
"ftp://ftp.gnu.org/pub/gnu/automake" |
34 |
|
|
35 |
Before using automake, you may need to copy `threads.m4' and |
libtool --- a system for managing the zillion hairy options needed |
|
`guile.m4' from the top directory of the Guile core disty to |
|
|
`/usr/local/share/aclocal. |
|
|
|
|
|
libtool 1.3.5 --- a system for managing the zillion hairy options needed |
|
36 |
on various systems to produce shared libraries. Available in |
on various systems to produce shared libraries. Available in |
37 |
"ftp://ftp.gnu.org/pub/gnu/libtool" |
"ftp://ftp.gnu.org/pub/gnu/libtool" |
38 |
|
|
39 |
You are lost in a little maze of automatically generated files, all |
One false move and you will be lost in a little maze of automatically |
40 |
different. |
generated files, all different. |
|
> |
|
41 |
|
|
42 |
|
|
43 |
Contributing Your Changes ============================================ |
Contributing Your Changes ============================================ |
295 |
--- cvs-1.10/src/cvs.h Mon Jul 27 04:54:11 1998 |
--- cvs-1.10/src/cvs.h Mon Jul 27 04:54:11 1998 |
296 |
+++ cvs-1.10.ignore-hack/src/cvs.h Sun Jan 23 12:58:09 2000 |
+++ cvs-1.10.ignore-hack/src/cvs.h Sun Jan 23 12:58:09 2000 |
297 |
@@ -516,7 +516,7 @@ |
@@ -516,7 +516,7 @@ |
298 |
|
|
299 |
extern int ign_name PROTO ((char *name)); |
extern int ign_name PROTO ((char *name)); |
300 |
void ign_add PROTO((char *ign, int hold)); |
void ign_add PROTO((char *ign, int hold)); |
301 |
-void ign_add_file PROTO((char *file, int hold)); |
-void ign_add_file PROTO((char *file, int hold)); |
335 |
free (line); |
free (line); |
336 |
+ return 1; |
+ return 1; |
337 |
} |
} |
338 |
|
|
339 |
/* Parse a line of space-separated wildcards and add them to the list. */ |
/* Parse a line of space-separated wildcards and add them to the list. */ |
340 |
@@ -375,6 +376,7 @@ |
@@ -375,6 +376,7 @@ |
341 |
struct stat sb; |
struct stat sb; |
342 |
char *file; |
char *file; |
343 |
char *xdir; |
char *xdir; |
344 |
+ char *cvsdotignore; |
+ char *cvsdotignore; |
345 |
|
|
346 |
/* Set SUBDIRS if we have subdirectory information in ENTRIES. */ |
/* Set SUBDIRS if we have subdirectory information in ENTRIES. */ |
347 |
if (entries == NULL) |
if (entries == NULL) |
348 |
@@ -397,7 +399,10 @@ |
@@ -397,7 +399,10 @@ |
349 |
if (dirp == NULL) |
if (dirp == NULL) |
350 |
return; |
return; |
351 |
|
|
352 |
- ign_add_file (CVSDOTIGNORE, 1); |
- ign_add_file (CVSDOTIGNORE, 1); |
353 |
+ cvsdotignore = getenv("CVSDOTIGNORE"); |
+ cvsdotignore = getenv("CVSDOTIGNORE"); |
354 |
+ if (cvsdotignore == NULL || !ign_add_file (cvsdotignore, 1)) |
+ if (cvsdotignore == NULL || !ign_add_file (cvsdotignore, 1)) |
355 |
+ ign_add_file (CVSDOTIGNORE, 1); |
+ ign_add_file (CVSDOTIGNORE, 1); |
356 |
+ |
+ |
357 |
wrap_add_file (CVSDOTWRAPPER, 1); |
wrap_add_file (CVSDOTWRAPPER, 1); |
358 |
|
|
359 |
while ((dp = readdir (dirp)) != NULL) |
while ((dp = readdir (dirp)) != NULL) |
360 |
=== patch end === |
=== patch end === |
361 |
|
|
370 |
Can only be used in the *cvs* buffer." |
Can only be used in the *cvs* buffer." |
371 |
(save-window-excursion |
(save-window-excursion |
372 |
- (set-buffer (find-file-noselect (expand-file-name ".cvsignore" dir))) |
- (set-buffer (find-file-noselect (expand-file-name ".cvsignore" dir))) |
373 |
+ (set-buffer (find-file-noselect |
+ (set-buffer (find-file-noselect |
374 |
+ (expand-file-name (or (getenv "CVSDOTIGNORE") |
+ (expand-file-name (or (getenv "CVSDOTIGNORE") |
375 |
+ ".cvsignore") |
+ ".cvsignore") |
376 |
+ dir))) |
+ dir))) |