# Makefile for units, a program for units conversion
#
# Copyright (C) 1996, 1997, 1999, 2005 Free Software Foundation, Inc
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
#    
#
# This program was written by Adrian Mariano (adrian@cam.cornell.edu)
#

SHELL = /bin/sh
exec_prefix = ${prefix}
prefix = 
srcdir = .

CC = cc

INSTALL = /usr/bin/install -c -o root -g wheel
INSTALL_DATA = install  -o root -g wheel -m 444
INSTALL_PROGRAM = install  -s -o root -g wheel -m 555
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
LDFLAGS = 
LIBS=  -lreadline -lncurses


bindir = ${exec_prefix}/bin
infodir = ${prefix}/info
mandir = ${prefix}/man

transform=s,^,,

datadir = ${prefix}/share
DEFS = -DUNITSFILE=\"${prefix}/share/units.dat\"  -DREADLINE -DSTRINGS_H -DNO_STDLIB_H -DPACKAGE_NAME=\"GNU\ units\" -DPACKAGE_TARNAME=\"units\" -DPACKAGE_VERSION=\"1.85\" -DPACKAGE_STRING=\"GNU\ units\ 1.85\" -DPACKAGE_BUGREPORT=\"adrian@cam.cornell.edu\" -Dconst= 
CFLAGS = -fno-common
OBJECTS = units. parse.tab. getopt. getopt1. 

.SUFFIXES:
.SUFFIXES: .c .
 
.c.:
	$(CC) $(DEFS) $(CFLAGS) -I$(srcdir) -c $<
 
# %.: %.c
#     $(CC) $(DEFS) $(CFLAGS) -I$(srcdir) -c %.c


DISTFILES = README ChangeLog units.info units.doc getopt1.c units.dvi \
   Makefile.in units.c getopt.c getopt.h units.dat units.man units.texinfo \
   configure.ac configure strfunc.c COPYING Makefile.dos install-sh \
   mkinstalldirs NEWS texi2man INSTALL \
   parse.tab.c parse.y units.h Makefile.OS2 makeobjs.cmd README.OS2


all: units units.1 units.info

units.: units.c

parse.tab.c: parse.y
	bison parse.y

parse.tab.: parse.tab.c

units: $(OBJECTS)
	$(CC) $(LDFLAGS) -o units $(OBJECTS) $(LIBS)

install: units units.dat install-doc
	$(srcdir)/mkinstalldirs $(bindir) $(datadir)
	$(INSTALL_PROGRAM) units $(bindir)/`echo units|sed '$(transform)'`
	$(INSTALL_DATA) $(srcdir)/units.dat $(datadir)/units.dat

install-strip: units units.dat install-doc
	$(INSTALL_PROGRAM) -s units $(bindir)/`echo units|sed '$(transform)'`
	$(INSTALL_DATA) $(srcdir)/units.dat $(datadir)/units.dat

install-doc: install-man install-info

install-man: units.1
	$(srcdir)/mkinstalldirs $(mandir)/man1
	$(INSTALL_DATA) units.1 $(mandir)/man1/`echo units|sed '$(transform)'`.1

units.man: units.texinfo texi2man
	./texi2man units.texinfo > units.man

units.1: units.man
	sed s!@DATAFILE@!${prefix}/share/units.dat! $(srcdir)/units.man > units.1

install-info: $(infodir)/units.info

$(infodir)/units.info: units.info
	$(srcdir)/mkinstalldirs $(infodir)
# There may be a newer info file in . than in srcdir.
	-if test -f units.info; then d=.; \
	   else d=$(srcdir); fi; \
	$(INSTALL_DATA) $$d/units.info $@; \
# Run install-info only if it exists.
# Use `if' instead of just prepending `-' to the
# line so we notice real errors from install-info.
# We use `$(SHELL) -c' because some shells do not
# fail gracefully when there is an unknown command.
	if test -f $(infodir)/dir; then \
	  if $(SHELL) -c 'install-info --version' \
	     >/dev/null 2>&1; then \
	     install-info --dir-file=$(infodir)/dir \
	               $(infodir)/units.info; \
	  else true; fi \
	else true; fi

Makefile: Makefile.in config.status
	./config.status

uninstall: 
	-rm -f $(bindir)/`echo units|sed '$(transform)'` \
	       $(mandir)/man1/`echo units|sed '$(transform)'`.1 \
	       $(infodir)/units.info $(datadir)units.dat
	@if test -f $(infodir)/dir; then \
	  echo You may need to remove units.info from $(infodir)/dir; \
	else true; fi

clean mostlyclean: 
	-rm -f *. units units.fn units.ky units.pg units.tp \
	     units.vr units.log units.dvi units.1 units.cp distname .chk \
	     units.toc units.aux units.cps units.op 

distclean: clean
	-rm -f config.* Makefile TAGS

maintainer-clean: clean
	-rm -f units.doc units.info units.dvi units-*.tar.gz parse.tab.c

sig:
	echo units-`sed -n -e '/#.*VERSION/s/.*"\(.*\)"/\1/gp' \
	    $(srcdir)/units.c`.tar.gz > distname
	echo 'directory: units' > `cat distname`.directive
	gpg --clearsign `cat distname`.directive
	gpg -b `cat distname`
	-rm -f `cat distname`.directive distname



dist: $(DISTFILES)
	echo units-`sed -n -e '/#.*VERSION/s/.*"\(.*\)"/\1/gp' \
	    $(srcdir)/units.c` > distname
	-rm -r `cat distname` `cat distname`.tar `cat distname`.tar.gz
	mkdir `cat distname`
	dst=`cat distname`; for f in $(DISTFILES); do \
	   ln $(srcdir)/$$f $$dst/$$f || { echo copying $$f; \
	          cp -p $(srcdir)/$$f $$dst/$$f ; } \
	done
	chmod 777 `cat distname`
	tar cf `cat distname`.tar `cat distname`
	gzip `cat distname`.tar
	-rm -rf `cat distname` distname

dvi: units.dvi

units.dvi: units.texinfo
	$(TEXI2DVI) $(srcdir)/units.texinfo

info: units.info

units.info: units.texinfo
	$(MAKEINFO) $(srcdir)/units.texinfo

units.doc: units.1
	nroff -man $(srcdir)/units.1 | col -b > units.doc

doc: units.dvi units.info units.doc

check: all
	@echo Checking units
	@./units -f $(srcdir)/units.dat \
	      '(((square(kiloinch)+2.84m2) /0.5) meters^2)^(1|4)' m \
	    | sed -n -e 's/	\* //p' > .chk
	@if [ "`cat .chk`" = 6 ]; then echo Units seems to work; \
	   else echo Something is wrong: units failed the check: ;cat .chk; fi
	@rm -f .chk

configure: configure.ac
	autoconf

TAGS: units.c
	etags $(srcdir)/units.c $(srcdir)/parse.y


smalldist: units.c units.h parse.y parse.tab.c
	echo units-`sed -n -e '/#.*VERSION/s/.*"\(.*\)"/\1/gp' \
	    $(srcdir)/units.c` > distname
	-rm -r `cat distname` `cat distname`.tar `cat distname`.tar.gz
	tar cf `cat distname`.tar units.c units.h  parse.y  parse.tab.c\
	   getopt1.c getopt.c getopt.h
	gzip `cat distname`.tar

# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:



syntax highlighted by Code2HTML, v. 0.9.1