# 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