]> code.citadel.org Git - citadel.git/commitdiff
added "build.txt" to the techdoc directory, with LS's build notes
authorArt Cancro <ajc@citadel.org>
Sun, 1 Nov 1998 04:18:36 +0000 (04:18 +0000)
committerArt Cancro <ajc@citadel.org>
Sun, 1 Nov 1998 04:18:36 +0000 (04:18 +0000)
citadel/ChangeLog
citadel/techdoc/build.txt [new file with mode: 0644]

index 7dc3993ff22ce7f0e2064c1aed30cb4b1d1629d8..c690e6c2c5d89b4cb6aa22404200b9d6e492bbfc 100644 (file)
@@ -2,6 +2,7 @@ Sat Oct 31 20:48:44 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
        * More stoopid ANSI colour additions here and there.
        * ANSI colour selection is now in citadel.rc instead of an option in
          the configure script.  "on" "off" and "auto" are available.
+       * added "build.txt" to the techdoc directory, with LS's build notes
 
 1998-10-31 Nathan Bryant <bryant@cs.usm.maine.edu>
        * citadel.c, commands.c, commands.h: set background color to black
diff --git a/citadel/techdoc/build.txt b/citadel/techdoc/build.txt
new file mode 100644 (file)
index 0000000..cfe4810
--- /dev/null
@@ -0,0 +1,48 @@
+ Oct 28 01:57 1998 from LoanShark @uncnsrd 
+what i've done with the Makefile.in most recently is to replace all the 
+rules that explicitly generated .o files with a set of suffix rules. these 
+are the `.c.o:', `.c.mo:', and `.c.ro:' targets that appear in the 
+Makefile.in. the idea is, make now knows how to generate files named 
+`foo.o', `foo.mo', or `foo.ro' from a file `foo.c'. a .o file is compiled 
+with standard compiler flags; a .ro (reentrant object) file is also 
+compiled with -D_REENTRANT; and a .mo (module object) is compiled with 
+-D_REENTRANT plus -fPIC and -DPIC to produce position-independent code for 
+a shared library. the suffix rules, together with auto dependency 
+generation, accomplish two things: when you want to link a particular 
+module into a binary, all you have to do is list it, with the appropriate 
+extension, as a dependency of the binary, and add it to the link command 
+line for the target. you don't have to worry about writing a rule to 
+generate the object with the proper flags, or keep the header file 
+dependencies updated. secondly, using different file extensions allows us 
+to compile _REENTRANT and non-REENTRANT versions of files like config.c, 
+tools.c, and snprintf.c that are used in both the clients and the server. 
+
+  autodependency generation is implemented by generating a bunch of .d  
+files (with another suffix rule) using $(CC) - M and "-include"-ing them 
+from the main Makefile. the .d files are made to depend on the .c files 
+they correspond to, and the referenced header files, so they're updated as 
+needed. the only version of make that I know for sure works with this is 
+GNU make, but the Makefile should still work on other versions of Unix 
+make, just without the autodependency stuff. 
+
+
+ Oct 28 20:49 1998 from LoanShark @uncnsrd 
+one thing I forgot to mention about the autodependency generation: for a 
+file to be included in the autodepend process, it must be listed in the 
+SOURCES macro near the top of Makefile.in. 
+  also, I've added an 'install' target to the makefile. this will make it  
+possible to build RPM's, and bring the installation process closer to that 
+of other packages, which if you're using the new configure script goes 
+like this: 
+  ./configure [--enable-ansi-color] [--disable-auto-login] [--prefix=/foo] 
+  
+  --prefix specifies the location the BBS will run from,  
+/usr/local/citadel by default. 
+  to build a highly optimized version without debugging symbols, you could 
+ do something like this (with the bourne shell): 
+  CC=egcs CFLAGS='-O6 -fomit-frame-pointer' ./configure   
+  after configuring, simply type `make', then su to a user who has  
+appropriate permissions, and `make install'. then run setup as usual. 
+  are there any other areas that need to be cleared up? 
+