home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / CDR18A24.ZIP / doc / More-Docs / README.compile < prev    next >
Encoding:
Text File  |  1999-07-22  |  7.3 KB  |  246 lines

  1. Short overview for those who don't read manuals:
  2.  
  3.     There is no 'configure', simply call 'make' on the top level
  4.     directory.
  5.  
  6.     All results in general will be placed into a directory named 
  7.     OBJ/<arch-name>/ in the current projects leaf directory.
  8.  
  9.     You **need** either my "smake" program, the SunPRO make 
  10.     from /usr/bin/make (SunOS 4.x) or /usr/ccs/bin/make (SunOS 5.x)
  11.     or GNU make to compile this program. Read README.gmake for 
  12.     more information on gmake.
  13.  
  14.     All other make programs are either not smart enough or have bugs.
  15.  
  16.     My "smake" is (in binary form) in the makefiles distribution 
  17.  
  18.     on: ftp://ftp.fokus.gmd.de/pub/unix/makefiles/makefiles-*
  19.  
  20.     The newest 'smake' binaries are
  21.     on: ftp://ftp.fokus.gmd.de/pub/unix/makefiles/bin/*
  22.  
  23.     If you have the choice between all three make programs, the
  24.     preference would be 
  25.  
  26.         1)    smake        (preferred)
  27.         2)    SunPRO make
  28.         3)    GNU make    (this is the last resort)
  29.  
  30.     Important notice: "smake" that comes with SGI/IRIX will not work!!!
  31.  
  32.     Please read the README's for your operating system too.
  33.  
  34.             WARNING
  35.     Do not use 'mc' to extract the tar file!
  36.     All mc versions before 4.0.14 cannot extract symbolic links correctly.
  37.  
  38.     The versions of WinZip that support tar arvchives cannot be used too.
  39.     The reason is that they don't support symbolic links.
  40.     Star and Gnutar do support symbolic links even on win32 systems.
  41.     To support symbolic links on win32, you need to link with the
  42.     Cygwin32 POSIX library.
  43.  
  44.     To unpack an archive use:
  45.  
  46.         gzip -d < star.tar.gz | tar -xpf -
  47.  
  48.     Replace 'star' by the actual archive name.
  49.  
  50.  
  51. Here comes the long form:
  52.  
  53.  
  54. PREFACE:
  55.  
  56.     You don't have to call configure with this make file system.
  57.  
  58.     Calling    'make' or 'make all' on the top level directory will create
  59.     all needed targets. Calling 'make install' will install all needed
  60.     files.
  61.  
  62.     This program uses a new makefilesystem. The makefilesystem is optimized
  63.     for a program called 'smake' Copyright 1985 by J÷rg Schilling, but
  64.     SunPro make (the make program that comes with SunOS >= 4.0 and Solaris)
  65.     as well as newer versions of GNU make will work also.
  66.     BSDmake could be make working, if it supports pattern matching rules
  67.     correctly.
  68.  
  69.     The makefile system allows simultaneous compilation on a wide
  70.     variety of target systems if the source tree is accessible via NFS.
  71.  
  72.  
  73. Finding Compilation Results:
  74.  
  75.     To allow this, all binaries and results of a 'compilation' in any form
  76.     are placed in sub-directories. This includes automatically generated
  77.     include files. Results in general will be placed into
  78.     a directory named OBJ/<arch-name>/ in the current projects
  79.     leaf directory, libraries will be placed into a directory called
  80.     libs/<arch-name>/ that is located in the source tree root directory.
  81.  
  82.         <arch-name> will be something like 'sparc-sunos5-cc'
  83.  
  84.  
  85. How to compile:
  86.  
  87.     To compile a system or sub-system, simply enter 'smake', 'make' or 
  88.     'Gmake'. Compilation may be initialized at any point of the source
  89.     tree of a system. If compilation is started in a sub tree, all objects
  90.     in that sub tree will be made.
  91.  
  92.  
  93. How to install results:
  94.  
  95.     To install the product of a compilation in your system, call:
  96.  
  97.         smake install
  98.  
  99.     at top level. The binaries will usually be installed in 
  100.     /opt/schily/bin. The directory /opt/<vendor-name>/ has been agreed
  101.     on by all major UNIX vendors in 1989. Unfortunately, not all vendors
  102.     follow this agreement.
  103.  
  104.     If you want to change the default installation directory, edit the
  105.     appropriate (system dependent) files in the DEFAULTS directory
  106.     (e.g. DEFAULTS/Defaults.sunos5).
  107.  
  108.  
  109. Using a different installation directory:
  110.  
  111.     If your system does not yet use the standard installation path /opt
  112.     or if you don't like this installation directory, you can easily 
  113.     change the installation directory. You may edit the DEFAULTS file 
  114.     for your system and modify the macro INS_BASE.
  115.  
  116.     You may  use a different installation directory without editing the
  117.     DEFAULTS files. If you like to install everything in /usr/local, call:
  118.  
  119.         env INS_BASE=/usr/local make install
  120.  
  121.  
  122. Using a different C-compiler:
  123.  
  124.     The default C-compiler can be modified in the files in the
  125.     DEFAULT directory too. If you want to have a different compiler
  126.     for one compilation, call:
  127.  
  128.         make CCOM=gcc
  129.     or
  130.         make CCOM=cc
  131.  
  132.  
  133. Getting help from make:
  134.  
  135.     For a list of targets call:
  136.  
  137.         make .help
  138.  
  139.  
  140. Getting more information on the make file system:
  141.  
  142.     The man page makefiles.4 located in man/man4/makefiles.4 contains
  143.     the documentation on general use and for leaf makefiles.
  144.  
  145.     The man page makerules.4 located in man/man4/makerules.4 contains
  146.     the documentation for system programmers who want to modify
  147.     the make rules of the makefile system.
  148.  
  149.  
  150. Hints for compilation:
  151.  
  152.     The makefile system is optimized for 'smake'. Smake will give the
  153.     fastest processing and best debugging output.
  154.  
  155.     SunPro make will work as is. GNU make need some special preparation.
  156.  
  157.     Read README.gmake for more information on gmake.
  158.  
  159.     To use GNU make create a file called 'Gmake' in you search path
  160.     that contains:
  161.  
  162.         #!/bin/sh
  163.         MAKEPROG=gmake
  164.         export MAKEPROG
  165.         exec gmake "$@"
  166.  
  167.     and call 'Gmake' instead of gmake. On Linux there is no gmake, 'make'
  168.     on Linux is really a gmake.
  169.  
  170.     'Gmake' and 'Gmake.linux' are part of this distribution.
  171.  
  172.     Some versions of gmake are very buggy. There are e.g. versions of gmake
  173.     on some architectures that will not correctly recognize the default
  174.     target. In this case call 'make all' or ../Gmake all'.
  175.  
  176.     If you like to use 'smake', you may obtain a copy of the makefile
  177.     system. Various newer releases contain precompiled versions of 'smake'.
  178.     The packages are located on:
  179.  
  180.         ftp://ftp.fokus.gmd.de/pub/unix/makefiles/
  181.  
  182.     Actual binaries are also located on:
  183.  
  184.         ftp://ftp.fokus.gmd.de/pub/unix/makefiles/bin/
  185.  
  186.     Precompiled binaries of 'smake' are also located in
  187.     bins/<arch-name>/smake (e.g. bin/sparc-sunos5-cc/smake) of each
  188.     package.
  189.  
  190.     Smake has a -D flag to see the actual makefile source used
  191.     and a -d flag that gives easy to read debugging. Use smake -xM
  192.     to get a makefile dependency list. Try smake -help
  193.  
  194.  
  195. Compiling the project using engineering defaults:
  196.  
  197.     The defaults found in the directory DEFAULTS are configured to
  198.     give minimum warnings. This is made because many people will
  199.     be irritated by warning messages and because the GNU c-compiler
  200.     will give warnings that are perfectly correct and portable c-code.
  201.  
  202.     If you want to port code to new platforms or do engeneering
  203.     on the code, you should use the alternate set of defaults found
  204.     in the directory DEFAULTS_ENG.
  205.     You may do this permanently by renaming the directories or
  206.     for one compilation by calling:
  207.  
  208.         make DEFAULTSDIR=DEFAULTS_ENG
  209.  
  210.  
  211. Compiling the project to allow debugging with dbx/gdb:
  212.  
  213.     If you like to compile with debugging information for dbx or gdb,
  214.     call:
  215.  
  216.         make clean
  217.         make COPTX=-g LDOPTX=-g
  218.  
  219.  
  220.     If you want to see an example, please have a look at the "star"
  221.     source. It may be found on:
  222.  
  223.         ftp://ftp.fokus.gmd.de/pub/unix/star
  224.  
  225.     Have a look at the manual page, it is included in the distribution.
  226.     Install the manual page with 
  227.  
  228.     make install first and include /opt/schily/man in your MANPATH
  229.  
  230.     Note that some systems (e.g. Solaris 2.x) require you either to call
  231.     /usr/lib/makewhatis /opt/schily/man or to call 
  232.  
  233.         man -F <man-page-name>
  234.  
  235. Author:
  236.  
  237. Joerg Schilling
  238. Seestr. 110
  239. D-13353 Berlin
  240. Germany
  241.  
  242. Email:     joerg@schily.isdn.cs.tu-berlin.de, js@cs.tu-berlin.de
  243.     schilling@fokus.gmd.de
  244.  
  245. Please mail bugs and suggestions to me.
  246.