IPnom Home • Manuals • FreeBSD

 FreeBSD Man Pages

Man Sections:Commands (1)System Calls (2)Library Functions (3)Device Drivers (4)File Formats (5)Miscellaneous (7)System Utilities (8)
Keyword Live Search (10 results max):
 Type in part of a command in the search box.
 
Index:
  a.out(5)
  acct(5)
  adduser.conf(5)
  aliases(5)
  amd.conf(5)
  auth.conf(5)
  big5(5)
  bluetooth.hosts(5)
  bluetooth.protocols(5)
  bootparams(5)
  bootptab(5)
  config(5)
  core(5)
  crontab(5)
  ctm(5)
  cvs(5)
  devd.conf(5)
  devfs(5)
  device.hints(5)
  dhclient.conf(5)
  dhclient.leases(5)
  dhcp-eval(5)
  dhcp-options(5)
  dir(5)
  dirent(5)
  disktab(5)
  editrc(5)
  elf(5)
  ethers(5)
  euc(5)
  eui64(5)
  exports(5)
  fbtab(5)
  fdescfs(5)
  finger.conf(5)
  forward(5)
  fs(5)
  fstab(5)
  ftpchroot(5)
  gb18030(5)
  gb2312(5)
  gbk(5)
  gettytab(5)
  groff_font(5)
  groff_out(5)
  groff_tmac(5)
  group(5)
  hcsecd.conf(5)
  hesiod.conf(5)
  hosts(5)
  hosts.equiv(5)
  hosts.lpd(5)
  hosts_access(5)
  hosts_options(5)
  inetd.conf(5)
  info(5)
  inode(5)
  intro(5)
  ipf(5)
  ipnat(5)
  ipnat.conf(5)
  ipsend(5)
  isdnd.acct(5)
  isdnd.rates(5)
  isdnd.rc(5)
  kbdmap(5)
  keycap(5)
  keymap(5)
  krb5.conf(5)
  lastlog(5)
  libarchive-formats(5)
  libmap.conf(5)
  link(5)
  linprocfs(5)
  loader.conf(5)
  login.access(5)
  login.conf(5)
  mac.conf(5)
  magic(5)
  mailer.conf(5)
  make.conf(5)
  malloc.conf(5)
  master.passwd(5)
  moduli(5)
  motd(5)
  msdos(5)
  msdosfs(5)
  mskanji(5)
  named.conf(5)
  netconfig(5)
  netgroup(5)
  netid(5)
  networks(5)
  newsyslog.conf(5)
  nologin(5)
  nsmb.conf(5)
  nsswitch.conf(5)
  ntp.conf(5)
  ntp.keys(5)
  opieaccess(5)
  opiekeys(5)
  passwd(5)
  pbm(5)
  pccard.conf(5)
  periodic.conf(5)
  pf.conf(5)
  pf.os(5)
  phones(5)
  printcap(5)
  procfs(5)
  protocols(5)
  publickey(5)
  pw.conf(5)
  quota.group(5)
  quota.user(5)
  radius.conf(5)
  rc.conf(5)
  rcsfile(5)
  remote(5)
  resolv.conf(5)
  resolver(5)
  rhosts(5)
  rndc.conf(5)
  rpc(5)
  rrenumd.conf(5)
  rtadvd.conf(5)
  services(5)
  shells(5)
  ssh_config(5)
  sshd_config(5)
  stab(5)
  style.Makefile(5)
  sysctl.conf(5)
  syslog.conf(5)
  tacplus.conf(5)
  tar(5)
  term(5)
  termcap(5)
  terminfo(5)
  texinfo(5)
  tmac(5)
  ttys(5)
  tzfile(5)
  usbd.conf(5)
  utf2(5)
  utf8(5)
  utmp(5)
  uuencode(5)
  uuencode.format(5)
  vgrindefs(5)
  wtmp(5)

style.Makefile(5)

NAME

     style.Makefile -- FreeBSD Makefile file style guide


DESCRIPTION

     This file specifies the preferred style for makefiles in the FreeBSD
     source tree.

     o	 All makefiles should have an SCM ID at the start of the file, fol-
	 lowed by a blank line.

	 # $FreeBSD$

     o	 .PATH: comes next if needed, and is spelled ``.PATH: '', with a sin-
	 gle ASCII space after a colon.  Do not use the VPATH variable.

     o	 Special variables (i.e., LIB, SRCS, MLINKS, etc.) are listed in order
	 of ``product'', then building and installing a binary.  Special vari-
	 ables may also be listed in ``build'' order: i.e., ones for the pri-
	 mary program (or library) first.  The general ``product'' order is:
	 PROG/[SH]LIB/SCRIPTS FILES LINKS [NO]MAN MLINKS INCS SRCS WARNS
	 CFLAGS DPADD LDADD.  The general ``build'' order is:
	 PROG/[SH]LIB/SCRIPTS SRCS WARNS CFLAGS DPADD LDADD INCS FILES LINKS
	 [NO]MAN MLINKS.

     o	 Omit SRCS when using <bsd.prog.mk> and there is a single source file
	 named the same as the PROG.

     o	 Omit MAN when using <bsd.prog.mk> and the manual page is named the
	 same as the PROG, and is in section 1.

     o	 All variable assignments are spelled ``VAR='', i.e., no space between
	 the variable name and the =.  Keep values sorted alphabetically, if
	 possible.

     o	 Do not use += to set variables that are only set once (or to set
	 variables for the first time).

     o	 Do not use vertical whitespace in simple makefiles, but do use it to
	 group locally related things in more complex/longer ones.

     o	 WARNS comes before CFLAGS, as it is basically a CFLAGS modifier.  It
	 comes before CFLAGS rather than after CFLAGS so it does not get lost
	 in a sea of CFLAGS statements as WARNS is an important thing.	The
	 usage of WARNS is spelled ``WARNS?= '', so that it may be overridden
	 on the command line or in /etc/make.conf.

     o	 ``NO_WERROR= yes'' should not be used, it defeats the purpose of
	 WARNS.  It should only be used on the command line and in special
	 circumstances.

     o	 CFLAGS is spelled ``CFLAGS+= ''.

     o	 Listing -D's before -I's in CFLAGS is preferred for alphabetical
	 ordering and to make -D's easier to see.  The -D's often affect con-
	 ditional compilation, and -I's tend to be quite long.	Split long
	 CFLAGS settings between the -D's and -I's.
     o	 .include <bsd.*.mk> goes last.

     o	 Do not use anachronisms like $< and $@.  Instead use ${.IMPSRC} or
	 ${.ALLSRC} and ${.TARGET}.

     The desire to express a logical grouping often means not obeying some of
     the above.


EXAMPLES

     The simplest program Makefile is:

	   # $FreeBSD$

	   PROG=   foo

	   .include <bsd.prog.mk>

     The simplest library Makefile is:

	   # $FreeBSD$

	   LIB=    foo
	   SHLIB_MAJOR= 1
	   MAN=    libfoo.3
	   SRCS=   foo.c

	   .include <bsd.lib.mk>


SEE ALSO

     make(1), style(9)


HISTORY

     This manual page is inspired from the same source as style(9) manual page
     in FreeBSD.


BUGS

     There are few hard and fast style rules here.  The style of many things
     is too dependent on the context of the whole makefile, or the lines sur-
     rounding it.

FreeBSD 5.4		       February 28, 2003		   FreeBSD 5.4

SPONSORED LINKS




Man(1) output converted with man2html , sed , awk