*BSD News Article 94806


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!munnari.OZ.AU!news.ecn.uoknor.edu!paladin.american.edu!zombie.ncsc.mil!cs.umd.edu!news.abs.net!aplcen.apl.jhu.edu!night.primate.wisc.edu!sdd.hp.com!gatech!news.mathworks.com!fu-berlin.de!cs.tu-berlin.de!js
From: js@cs.tu-berlin.de (Joerg Schilling)
Newsgroups: comp.unix.admin,comp.unix.misc,alt.os.linux,alt.sys.sun,bln.comp.sun,bln.comp.unix,comp.os.linux.development.apps,comp.os.linux.misc,comp.sys.hp.apps,comp.sys.hp.misc,comp.sys.sgi.admin,comp.sys.sgi.apps,comp.sys.sgi.misc,comp.sys.sun.admin,comp.sys.sun.apps,comp.sys.sun.misc,comp.unix.aix,comp.unix.bsd.freebsd.misc,comp.unix.solaris,de.comp.os.linux.misc,de.comp.os.unix,linux.dev.admin,linux.dev.apps,maus.os.linux,maus.os.linux68k,maus.os.unix,uk.comp.os.linux
Subject: Makefiles-1.00 have been released
Date: 30 Apr 1997 11:01:03 GMT
Organization: Technical University of Berlin, Germany
Lines: 147
Distribution: inet
Message-ID: <5k78pf$fmc$1@news.cs.tu-berlin.de>
NNTP-Posting-Host: 130.149.25.72
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
Summary: Makfiles is a easy to use system for concurrent compilation on different systems
Xref: euryale.cc.adfa.oz.au comp.unix.admin:57550 comp.unix.misc:29045 alt.os.linux:20714 alt.sys.sun:11013 comp.os.linux.development.apps:32526 comp.os.linux.misc:172802 comp.sys.hp.apps:6818 comp.sys.hp.misc:11235 comp.sys.sgi.admin:46017 comp.sys.sgi.apps:14657 comp.sys.sgi.misc:30305 comp.sys.sun.admin:86051 comp.sys.sun.apps:15308 comp.sys.sun.misc:29521 comp.unix.aix:98955 comp.unix.bsd.freebsd.misc:40033 comp.unix.solaris:105095 de.comp.os.unix:410


Makefiles - a make file system for easy concurrent compilation of
source code on a wide (expandable) number of platforms has been released.

Unlike other make file systems, Makefiles does not force you to reconfigure
your source code if you want to make a compilation on a different platform.

Makefiles configures each compilation 'on the fly' with a layered system
of include rules. You only need one source tree be accessible with NFS.
Unlike other systems, Makefiles needs no extra time for configuration.

The leaf Makefiles are easy to read and write. Automatic dependency
generation without editing the Makefiles is done by default.
Many template leaf makefiles are included.

Makefiles may be found on:

ftp://ftp.fokus.gmd.de/pub/unix/makefiles

Currently supported platforms:

SunOS Solaris Linux HP-UX DG/UX IRIX AIX FreeBSD

Joerg

Here is the README:
-------------------------------------------------------------
This program uses a new makefile system. The makefile system is optimized 
for a program called 'smake' Copyright 1985 by Jörg Schilling,
but SunPro make (the make program that comes with SunOS >= 4.0 and Solaris)
as well as newer versions of GNU make will work also.
BSDmake could be make working, if it supports pattern matching rules
correctly.

The makefile system allows simultaneous compilation on a wide
variety of target systems if the source tree is accessible via NFS.

To allow this, all binaries and results of a 'compilation' in any form
are placed in sub-directories. This includes automatically generated
include files. Results in general will be placed into
a directory named OBJ/<arch-name>/ in the current projects leaf directory,
libraries will be placed into a directory called libs/<arch-name>/ 
that is located in the source tree root directory.

<arch-name> will be something like 'sparc-sunos5-cc'

To compile a system or sub-system, simply enter smake, make or Gmake.
Compilation may be initialized at any point of the source tree of a
system. If compilation is started in a sub tree, all objects
in that sub tree will be made.
To install the product of a compilation in your system, call:

smake install

at top level. The binaries will usually be installed in /opt/schily/bin.
If you want to change this, edit the appropriate (system dependent) files
in the DEFAULTS directory.
The default C-compiler can be modified in the DEFAULT files too.

If you want to have a different compiler for one compilation,
call:

make CCOM=gcc
or
make CCOM=cc

For a list of targets call:

make .help

The man page makefiles.4 located in man/man4/makefiles.4 contains
the documentation on general use and for leaf makefiles.

The man page makerules.4 located in man/man4/makerules.4 contains
the documentation for system programmers who want to modify
the make rules of the makefile system.


Hints for compilation:

The makefile system is optimized for 'smake'. Smake will give the
fastest processing and best debugging output.

SunPro make will work as is. GNU make need some special preparation.

To use GNU make create a file called 'Gmake' in you search path
that contains:

#!/bin/sh
MAKEPROG=gmake
export MAKEPROG
exec gmake $@

and call 'Gmake' instead of gmake.

If you like to use 'smake', you may obtain a copy of the makefile
system that contains precompiled versions of 'smake'.
The package is located on:

ftp://ftp.fokus.gmd.de/pub/unix/makefiles/

The precompiled binaries are located in bins/<arch-name>/smake
(e.g. bin/sparc-sunos5-cc/smake).

Smake has a -D flag to see the actual makefile source used
and a -d flag that gives easy to read debugging. Use smake -xM
to get a makefile dependency list. Try smake -help

The defaults found in the directory DEFAULTS are configured to
give minimum warnings. This is made because many people will
be irritated by warning messages and because the GNU c-compiler
will give warnings that are perfectly correct and portable c-code.

If you want to port code to new platforms or do engeneering
on the code, you should use the alternate set of defaults found
in the directory DEFAULTS_ENG.
You may do this permanently by renaming the directories or
for one compilation by calling:

make DEFAULTSDIR=DEFAULTS_ENG

If you want to see an example, please have a look at the "star"
source. It may be found on:

ftp://ftp.fokus.gmd.de/pub/unix/star

Have a look at the manual page, it is included in the distribution.
Install the manual page with 

make install first and include /opt/schily/man in your MANPATH

Author:

Joerg Schilling
Seestr. 110
D-13353 Berlin
Germany

Email: 	joerg@schily.isdn.cs.tu-berlin.de, js@cs.tu-berlin.de
	schilling@fokus.gmd.de

Please mail bugs and suggestions to me.
-- 
EMail:	joerg@schily.isdn.cs.tu-berlin.de (home) Jörg Schilling D-13353 Berlin
	js@cs.tu-berlin.de		  (uni)  If you don't have iso-8859-1
	jes@fokus.gmd.de		  (work) chars my name is
URL:	http://www.fokus.gmd.de/usr/schilling    J"org Schilling