makerules(4L) GMD FOKUS FILE FORMATS makerules(4L) (NAME) makerules - make (SYNOPSIS) SRCROOT= .. RULESDIR= RULES include $(SRCROOT)/$(RULESDIR)/rules.top include $(SRCROOT)/$(RULESDIR)/rules.* rules.* << >> . (DESCRIPTION) Makerules makefile . . makefile . Makerules (portability) autoconf . make : Sunpro make GNU make smake. make make make . make . makefile makefiles(4) . make . . makefile (leaf) leaf-makefile ( makefile ) . leaf-makefile . make make (include) . . leaf-makefile : o rules.top . SRCROOT . o leaf-makefile . leaf-makefile . . makefile . makefile . include . . o leaf-makefile leaf-makefile . makefile Makefile . makefile makefile . (CURRENTLY SUPPORTED TARGET TYPES) : (commands) make cat ls rules.cmd . (drivers) make rules.drv . (libraries) make rules.lib . (shared libraries) make rules.shl . (localized files) make rules.loc . (nonlocalized files) make rules.aux . (shell scripts) make ( ) rules.scr . (manual pages) make ( ) rules.man . makefile (diverted makefiles) make makefile rules.mks . -makefile . -makefile . (directories) make rules.dir . Make (MINIMUM REQUIREMENTS FOR A MAKE PROGRAM) make Sunpro make GNU make smake . make UNIX make . BSDmake . (include) make makefile . . make make ( ) . (appending to a macro) : macro += addval addval macro . (suffix macro replacement) : out= $(macro:string1=string2) string1 string2 macro string1 string2 . String1 string2 . (SPACE) (TAB) . (pattern macro replacement) : out= $(macro:op%os=np%ns) macro op () os () np ns % ( ) . : PROGRAM=fabricate DEBUG= $(PROGRAM:%=tmp/%-g) DEBUG tmp/fabricate-g . Op os np ns . (UNDERSTANDING BASIC ALGORITHMS) make . make if then else . make . : # Define magic unique cookie _UNIQ= .XxZzy- . : $(MAKE_NAME) $(XMAKEPROG) $(MAKE_NAME) $(XMAKEPROG) $(MAKEPROG) . _MAKEPROG= $(_UNIQ)$(MAKE_NAME) __MAKEPROG= $(_MAKEPROG:$(_UNIQ)=$(MAKEPROG)) XMAKEPROG= $(__MAKEPROG:$(_UNIQ)%=%) _MAKEPROG MAKE_NAME .XxZzy- . MAKE_NAME _MAKEPROG .XxZzy- . __MAKEPROG _MAKEPROG . _MAKEPROG .XxZzy- .XxZzy- . MAKEPROG __MAKEPROG MAKEPROG . _MAKEPROG .XxZzy- .XxZzy- _MAKEPROG __MAKEPROG _MAKEPROG .XxZzy- MAKE_NAME . XMAKEPROG __MAKEPROG . __MAKEPROG .XxZzy- .XxZzy- . Make (THE STRUCTURE IN MAKE MACRO NAMES) make grep(1) make . . make XXXFLAGS . makefile . make XXXOPTS XXXOPTX XXXFLAGS : LDFLAGS= $(LDOPTS) $(LDOPTX) XXXOPTS XXXOPTX make . XXXOPTX XXXFLAGS . XXXFLAGS XXXOPTS make . Make (THE STRUCTURE OF THE MAKE RULE SYSTEM) rules.top (The Structure Of The Basic Rules in rules.top) RULES/rules.top make . RULES/mk-makeprog.id makeprog make make gmake smake. . : . sparc mc68020 pentium. uname -p . P_ARCH . P_ARCH . uname -m . sun3 sun4c sun4m. K_ARCH . sun . P_ARCH . arch . sun3 sun4. M_ARCH . . uname -n . HOSTNAME . uname -s . sunos dgux hp-ux irix. OSNAME . uname -r . 5.5 4.1.4. OSREL . RULES/rules.top RULES/os-operating system.id . O_ARCH -O_ARCH RULES/mk-makeprog.id . O_ARCH -O_ARCH . -O_ARCH . SunOS DG-UX SunOS 4.x SunOS 5.x DG-UX 3.x DG-UX 4.x . RULES/rules.top Defaults . DEFCCOM DEFINCDIRS LDPATH RUNPATH INS_BASE INS_KBASE . : include $(SRCROOT)/Defaults.$(O_ARCH) . RULES/rules.top : $(SRCROOT)/$(RULESDIR)/$(XARCH).rul C . . . . ELF . . (THE STRUCTURE OF THE APPLICATION SPECIFIC RULES) . : $(RULES)/rules.aux . $(RULES)/rules.cmd sh. $(RULES)/rules.dir . $(RULES)/rules.drv . $(RULES)/rules.lib (). $(RULES)/rules.loc . $(RULES)/rules.man . $(RULES)/rules.mks -makefile. $(RULES)/rules.mod stream . $(RULES)/rules.scr . $(RULES)/rules.shl . Make (UNDERSTANDING THE STRUCTURE OF THE MAKE RULE SYSTEM) make -xM smake . include ( make ) . make . make . RULES . (FILES) .../RULES/* .../DEFAULTS/* .../TARGETS/* .../TEMPLATES/* (SEE ALSO) makefiles(4), make(1), gmake(1), smake(1). (DIAGNOSTICS) make . . (NOTES) make Sunpro make Gnu make smake . Gnu make . makefile Sunpro make smake . Sunpro make smake -D makefile . makefile . -d make . -dd -ddd . Smake -xM include make . (BUGS) (SOURCE TREE HIERARCHY) : .../ Makefile Makefile Defaults . .../DEFAULTS/ Targetdirs . .../TARGETS/ ... .../RULES/ makefile ( ) rules.top include ( ) rules.aux rules.cmd ( /bin/sh) rules.drv rules.lib () rules.loc rules.man rules.scr rules.shl rules.mks rules.dir ... .../DEFAULTS/ . .../TEMPLATES/ . .../TARGETS/ . .../TEMPLATES/ ( makefile Makefile target.mk ) Defaults Defaults Defaults.linux Defaults linux. .../DEFAULTS/ . Makefile.root Makefile Makefile.aux Makefile Makefile.cmd Makefile ( /bin/sh) Makefile.lib Makefile () Makefile.loc Makefile Makefile.man Makefile Makefile_de.man Makefile Makefile.scr Makefile Makefile.shl Makefile Makefile.drv Makefile Makefile.mks Makefile Makefile.dir Makefile ... .../cmd/ Makefile makefile cmd Targetdirs.sun4m myprog ( ) . myprog/ Makefile makefile myprog Makefile.man makefile myprog mprog.c myprog mprog.tr troff myprog OBJ/ sparc-sunos5-cc/ ... ... ... .../lib/ Makefile makefile lib Targetdirs.sun4m libfoo ( ) . libfoo/ libfoo ... .../kernel Makefile makefile kernel Targetdirs.sun4m drv ( ) . drv/ Makefile makefile drv Targetdirs.sun4m mydrv ( ) . mydrv/ ... ... .../include include .../bins sparc-sunos5-cc/ ... .../libs sparc-sunos5-cc/ ... .../incs include sparc-sunos5-cc/ include ... ... (AUTHOR) Joerg Schilling Seestr. 110 D-13353 Berlin Germany : joerg@schily.isdn.cs.tu-berlin.de js@cs.tu-berlin.de jes@fokus.gmd.de Joerg Schilling 14. February 1997 makerules(4L)