1# !/bin/sh 2# Numdiff makefile 3# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Ivano Primi <ivprimi@libero.it> 4# 5# Copying and distribution of this file, with or without modification, 6# are permitted in any medium without royalty provided the copyright 7# notice and this notice are preserved. 8# 9# @configure_input@ 10 11PACKAGE=numdiff 12PACKAGETWO=ndselect 13VERSION=5.9.0 14 15SHELL=/bin/sh 16.SUFFIXES: 17.SUFFIXES: .c .o 18 19prefix =@prefix@ 20exec_prefix =@exec_prefix@ 21bindir =@bindir@ 22docdir =@docdir@ 23localedir =@localedir@ 24infodir =@infodir@ 25mandir =@mandir@ 26srcdir =@srcdir@ 27VPATH =@srcdir@ 28 29BINDIR=$(bindir) 30DOCDIR=$(docdir)/$(PACKAGE) 31INFODIR=$(infodir) 32LOCALEDIR=$(localedir) 33MANDIR=$(mandir)/man1 34 35CC=@CC@ 36@SET_MAKE@ 37#MAKE=make 38 39MKDIR=$(srcdir)/shtool install -d 40DIST_MKDIR=$(srcdir)/shtool mkdir -f -m 777 41INSTALL=$(srcdir)/shtool install -c 42MOVE=$(srcdir)/shtool move -p 43INSTALL_PROGRAM=$(INSTALL) 44INSTALL_DATA=$(INSTALL) -m 644 45FIND=@FIND@ 46INSTINFO=@INSTINFO@ 47LS=ls 48CP=cp 49RM=rm -f 50RMDIR=rmdir 51RD=rm -f -R 52CAT=cat 53GZIP=gzip -f 54TAR=tar 55MSGFMT=msgfmt -c 56MSGMERGE=msgmerge 57XGETTEXT=xgettext -C -D$(srcdir) -k_ -kN_ --msgid-bugs-address=ivprimi@libero.it 58TEXI2HTML=makeinfo --html --no-split 59TEXI2INFO=makeinfo 60TEXI2PDF=texi2pdf 61TEXI2TXT=makeinfo --plaintext 62HELP2MAN=help2man -s 1 -m "User Commands" 63 64# flags for the preprocessor: 65CPPFLAGS =-DPACKAGE="\"$(PACKAGE)\"" -DPACKAGE2="\"$(PACKAGETWO)\"" -DLOCALEDIR="\"$(LOCALEDIR)\"" -I$(srcdir) -I. @CPPFLAGS@ 66# flags for the C compiler: 67CFLAGS =@CFLAGS@ 68 69# flags for the linker: 70LDFLAGS =@LDFLAGS@ 71# -L and -l options: 72LIBS =@LIBS@ @LIB_CLOCK_GETTIME@ 73 74OBJECTS= ./analyze.o ./arith.o ./bitvector.o ./cmpbuf.o ./cmpfns.o ./error.o ./exitfail.o ./flags.o ./getopt.o ./getopt1.o ./inout.o ./io.o ./linesplit.o ./main.o ./ndselect.o ./numutil.o ./options.o ./setmode.o ./side.o ./thrlist.o ./util.o ./xalloc-die.o ./xmalloc.o @LIBOBJS@ 75 76OBJECTSONE=./analyze.o ./arith.o ./bitvector.o ./cmpbuf.o ./cmpfns.o ./error.o ./exitfail.o ./flags.o ./getopt.o ./getopt1.o ./inout.o ./io.o ./linesplit.o ./main.o ./numutil.o ./options.o ./setmode.o ./side.o ./thrlist.o ./util.o ./xalloc-die.o ./xmalloc.o @LIBOBJS@ 77SOURCESONE=$(srcdir)/analyze.c $(srcdir)/arith.c $(srcdir)/bitvector.c $(srcdir)/cmpbuf.c $(srcdir)/cmpfns.c $(srcdir)/error.c $(srcdir)/errors.c $(srcdir)/exitfail.c $(srcdir)/flags.c $(srcdir)/getopt.c $(srcdir)/getopt1.c $(srcdir)/inout.c $(srcdir)/io.c $(srcdir)/linesplit.c $(srcdir)/main.c $(srcdir)/new.c $(srcdir)/number.c $(srcdir)/numutil.c $(srcdir)/options.c $(srcdir)/read_line.c $(srcdir)/setmode.c $(srcdir)/side.c $(srcdir)/thrlist.c $(srcdir)/util.c $(srcdir)/xalloc-die.c $(srcdir)/xmalloc.c 78OBJECTSTWO=./bitvector.o ./getopt.o ./getopt1.o ./linesplit.o ./ndselect.o 79SOURCESTWO=$(srcdir)/bitvector.c $(srcdir)/getopt.c $(srcdir)/getopt1.c $(srcdir)/linesplit.c $(srcdir)/ndselect.c $(srcdir)/read_line.c 80DOCS=$(srcdir)/AUTHORS $(srcdir)/BUGS $(srcdir)/COPYING $(srcdir)/ChangeLog $(srcdir)/INSTALL $(srcdir)/NEWS $(srcdir)/README $(srcdir)/TODO 81TEXISRC=$(srcdir)/docs/numdiff.txi 82FDLTEXI=$(srcdir)/docs/fdl.texi 83HTMLFILE=$(srcdir)/docs/numdiff.html 84INFOFILE=$(srcdir)/docs/numdiff.info 85MANFILE=$(srcdir)/docs/numdiff.1 86MANFILETWO=$(srcdir)/docs/ndselect.1 87PDFFILE=$(srcdir)/docs/numdiff.pdf 88TXTFILE=$(srcdir)/docs/numdiff.txt 89# l10n files 90PACKAGE_POT=$(srcdir)/po/$(PACKAGE)/$(PACKAGE).pot 91PACKAGETWO_POT=$(srcdir)/po/$(PACKAGETWO)/$(PACKAGETWO).pot 92PACKAGE_IT=$(srcdir)/po/$(PACKAGE)/it 93PACKAGETWO_IT=$(srcdir)/po/$(PACKAGETWO)/it 94IT_LOC_DIR="$(DESTDIR)$(LOCALEDIR)/it/LC_MESSAGES" 95 96GARBAGE=./numdiff.aux ./numdiff.cp ./numdiff.cps ./numdiff.fn ./numdiff.ky ./numdiff.log ./numdiff.pg ./numdiff.toc ./numdiff.tp ./numdiff.vr ./config.log ./config.status ./config.h.in.save ./config.h 97 98# Rules to build the executable programs 99 100all: $(PACKAGE) $(PACKAGETWO) 101 102$(PACKAGE): $(OBJECTS) 103 $(CC) $(OBJECTSONE) -o $@ $(LDFLAGS) $(LIBS) 104 105$(PACKAGETWO): $(OBJECTS) 106 $(CC) $(OBJECTSTWO) -o $@ $(LDFLAGS) $(LIBS) 107 108# Rules to build the documentation. The documentation 109# must be built in $(srcdir)/docs ! 110 111man: $(MANFILE) $(MANFILETWO) 112 113$(MANFILE): 114 $(HELP2MAN) -n "compare similar files with numeric fields" -p $(PACKAGE) $(PACKAGE) > $(MANFILE) 115 116$(MANFILETWO): 117 $(HELP2MAN) -n "select lines and fields for numdiff" -p $(PACKAGE) $(PACKAGETWO) > $(MANFILETWO) 118 119info: $(INFOFILE).gz 120 121$(INFOFILE).gz: $(INFOFILE) 122 $(CAT) $(INFOFILE) | $(GZIP) > $(INFOFILE).gz 123 124$(INFOFILE): $(TEXISRC) 125 $(TEXI2INFO) $(TEXISRC) -o $(INFOFILE) 126 127html: $(HTMLFILE) 128 129$(HTMLFILE): $(TEXISRC) 130 $(TEXI2HTML) $(TEXISRC) -o $(HTMLFILE) 131 132pdf: $(PDFFILE) 133 134$(PDFFILE): $(TEXISRC) 135 $(TEXI2PDF) $(TEXISRC) -o $(PDFFILE) 136 137txt: $(TXTFILE) 138 139$(TXTFILE): $(TEXISRC) 140 $(TEXI2TXT) $(TEXISRC) -o $(TXTFILE) 141 142# Rules to create PO template files. They should be used 143# only by the maintainer of the package. 144 145pot: $(PACKAGE_POT) $(PACKAGETWO_POT) 146 147$(PACKAGE_POT): $(SOURCESONE) 148 @echo 'This command is intended for maintainers to use; it' 149 @echo 'requires special tools to work.' 150 $(XGETTEXT) --package-name=$(PACKAGE) \ 151 --package-version=$(VERSION) \ 152 -o $(PACKAGE_POT) $(SOURCESONE) *.h 153 154$(PACKAGETWO_POT): $(SOURCESTWO) 155 @echo 'This command is intended for maintainers to use; it' 156 @echo 'requires special tools to work.' 157 $(XGETTEXT) --package-name=$(PACKAGETWO) \ 158 --package-version=$(VERSION) \ 159 -o $(PACKAGETWO_POT) $(SOURCESTWO) *.h 160 161po: $(PACKAGE_IT).po $(PACKAGETWO_IT).po 162 163$(PACKAGE_IT).po: $(PACKAGE_POT) 164 @echo 'This command is intended for maintainers to use; it' 165 @echo 'requires special tools to work.' 166 if $(SHELL) -c "$(LS) $(PACKAGE_IT).po" \ 167 >/dev/null 2>&1; then \ 168 $(MSGMERGE) $(PACKAGE_IT).po $(PACKAGE_POT) -o $(PACKAGE_IT).po.new; \ 169 $(MOVE) $(PACKAGE_IT).po.new $(PACKAGE_IT).po; \ 170 else $(CP) $(PACKAGE_POT) $(PACKAGE_IT).po; fi 171 172$(PACKAGETWO_IT).po: $(PACKAGETWO_POT) 173 @echo 'This command is intended for maintainers to use; it' 174 @echo 'requires special tools to work.' 175 if $(SHELL) -c "$(LS) $(PACKAGETWO_IT).po" \ 176 >/dev/null 2>&1; then \ 177 $(MSGMERGE) $(PACKAGETWO_IT).po $(PACKAGETWO_POT) -o $(PACKAGETWO_IT).po.new; \ 178 $(MOVE) $(PACKAGETWO_IT).po.new $(PACKAGETWO_IT).po; \ 179 else $(CP) $(PACKAGETWO_POT) $(PACKAGETWO_IT).po; fi 180 181# Rules to build the l10n files. They 182# must be built in $(srcdir)/po/numdiff (for numdiff) and 183# in $(srcdir)/po/ndselect (for ndselect). 184 185mo: $(PACKAGE_IT).mo $(PACKAGETWO_IT).mo 186 187$(PACKAGE_IT).mo: $(PACKAGE_IT).po 188 $(MSGFMT) $(PACKAGE_IT).po -o $(PACKAGE_IT).mo 189 190$(PACKAGETWO_IT).mo: $(PACKAGETWO_IT).po 191 $(MSGFMT) $(PACKAGETWO_IT).po -o $(PACKAGETWO_IT).mo 192 193# Rules needed by the installation process. 194 195installdirs: all 196 $(MKDIR) "$(DESTDIR)$(BINDIR)" 197 $(MKDIR) "$(DESTDIR)$(DOCDIR)" 198 $(MKDIR) "$(DESTDIR)$(INFODIR)" 199 $(MKDIR) "$(DESTDIR)$(MANDIR)" 200 $(MKDIR) $(IT_LOC_DIR) 201 202install: installdirs html info pdf txt 203 $(INSTALL_PROGRAM) $(PACKAGE) $(PACKAGETWO) "$(DESTDIR)$(BINDIR)" 204 $(INSTALL_DATA) $(DOCS) "$(DESTDIR)$(DOCDIR)" 205 $(INSTALL_DATA) $(MANFILE) "$(DESTDIR)$(MANDIR)" 206 $(INSTALL_DATA) $(MANFILETWO) "$(DESTDIR)$(MANDIR)" 207 $(INSTALL_DATA) $(HTMLFILE) "$(DESTDIR)$(DOCDIR)" 208 $(INSTALL_DATA) $(PDFFILE) "$(DESTDIR)$(DOCDIR)" 209 $(INSTALL_DATA) $(TXTFILE) "$(DESTDIR)$(DOCDIR)" 210 $(POST_INSTALL) 211 $(INSTALL_DATA) $(INFOFILE) "$(DESTDIR)$(INFODIR)" 212 : $(INFOFILE).gz "$(DESTDIR)$(INFODIR)" 213 if $(SHELL) -c "$(INSTINFO) --version" \ 214 >/dev/null 2>&1; then \ 215 $(INSTINFO) --dir-file="$(DESTDIR)$(INFODIR)/dir" "$(DESTDIR)$(INFODIR)/numdiff.info"; \ 216 else true; fi 217 218install-nls: install 219 $(INSTALL_DATA) $(PACKAGE_IT).mo $(IT_LOC_DIR)/$(PACKAGE).mo 220 $(INSTALL_DATA) $(PACKAGETWO_IT).mo $(IT_LOC_DIR)/$(PACKAGETWO).mo 221 222# Rules needed to removed the installed stuff 223 224uninstall: 225 $(RM) "$(DESTDIR)$(BINDIR)/$(PACKAGE)" 226 $(RM) "$(DESTDIR)$(BINDIR)/$(PACKAGETWO)" 227 $(RM) "$(DESTDIR)$(DOCDIR)"/* 228 $(RMDIR) "$(DESTDIR)$(DOCDIR)" 229 $(INSTINFO) --delete "$(DESTDIR)$(INFODIR)/numdiff.info" "$(DESTDIR)$(INFODIR)/dir" 230 $(RM) "$(DESTDIR)$(INFODIR)/numdiff.info.gz" 231 $(RM) "$(DESTDIR)$(INFODIR)/numdiff.info" 232 $(RM) "$(DESTDIR)$(MANDIR)/$(PACKAGE).1" 233 $(RM) "$(DESTDIR)$(MANDIR)/$(PACKAGETWO).1" 234 235uninstall-nls: uninstall 236 $(FIND) "$(DESTDIR)$(LOCALEDIR)" -name '$(PACKAGE).mo' -exec $(RM) \{\} \; 237 $(FIND) "$(DESTDIR)$(LOCALEDIR)" -name '$(PACKAGETWO).mo' -exec $(RM) \{\} \; 238 239# Cleaning rules 240 241clean: 242 $(RM) $(OBJECTS) 243 $(RM) $(PACKAGE) 244 $(RM) $(PACKAGETWO) 245 246distclean: clean 247 $(RM) $(GARBAGE) 248 249maintainer-clean: distclean 250 @echo 'This command is intended for maintainers to use; it' 251 @echo 'deletes files that may need special tools to rebuild.' 252 $(RM) $(HTMLFILE) 253 $(RM) $(INFOFILE) 254 $(RM) $(INFOFILE).gz 255 $(RM) $(MANFILE) 256 $(RM) $(MANFILETWO) 257 $(RM) $(PDFFILE) 258 $(RM) $(TXTFILE) 259 $(RM) $(PACKAGE_POT) 260 $(RM) $(PACKAGETWO_POT) 261 $(RM) $(PACKAGE_IT).mo 262 $(RM) $(PACKAGETWO_IT).mo 263 264# To make a distribution tarball 265 266createdirs: 267 $(DIST_MKDIR) $(srcdir)/$(PACKAGE)-$(VERSION) 268 $(DIST_MKDIR) $(srcdir)/$(PACKAGE)-$(VERSION)/RCS 269 $(DIST_MKDIR) $(srcdir)/$(PACKAGE)-$(VERSION)/docs 270 $(DIST_MKDIR) $(srcdir)/$(PACKAGE)-$(VERSION)/m4 271 $(DIST_MKDIR) $(srcdir)/$(PACKAGE)-$(VERSION)/po 272 $(DIST_MKDIR) $(srcdir)/$(PACKAGE)-$(VERSION)/po/$(PACKAGE) 273 $(DIST_MKDIR) $(srcdir)/$(PACKAGE)-$(VERSION)/po/$(PACKAGETWO) 274 275copy: createdirs 276 $(CP) $(DOCS) $(srcdir)/$(PACKAGE)-$(VERSION) 277 $(CP) $(srcdir)/Makefile.in $(srcdir)/$(PACKAGE)-$(VERSION) 278 $(CP) $(srcdir)/aclocal.m4 $(srcdir)/$(PACKAGE)-$(VERSION) 279 $(CP) $(srcdir)/config.h.in $(srcdir)/$(PACKAGE)-$(VERSION) 280 $(CP) $(srcdir)/configure.ac $(srcdir)/$(PACKAGE)-$(VERSION) 281 $(CP) $(srcdir)/configure $(srcdir)/$(PACKAGE)-$(VERSION) 282 $(CP) $(TEXISRC) $(srcdir)/$(PACKAGE)-$(VERSION)/docs 283 $(CP) $(FDLTEXI) $(srcdir)/$(PACKAGE)-$(VERSION)/docs 284 $(CP) $(HTMLFILE) $(srcdir)/$(PACKAGE)-$(VERSION)/docs 285 $(CP) $(INFOFILE) $(srcdir)/$(PACKAGE)-$(VERSION)/docs 286 $(CP) $(INFOFILE).gz $(srcdir)/$(PACKAGE)-$(VERSION)/docs 287 $(CP) $(MANFILE) $(srcdir)/$(PACKAGE)-$(VERSION)/docs 288 $(CP) $(MANFILETWO) $(srcdir)/$(PACKAGE)-$(VERSION)/docs 289 $(CP) $(PDFFILE) $(srcdir)/$(PACKAGE)-$(VERSION)/docs 290 $(CP) $(TXTFILE) $(srcdir)/$(PACKAGE)-$(VERSION)/docs 291 $(CP) $(srcdir)/analyze.c $(srcdir)/$(PACKAGE)-$(VERSION) 292 $(CP) $(srcdir)/arith.c $(srcdir)/$(PACKAGE)-$(VERSION) 293 $(CP) $(srcdir)/bitvector.c $(srcdir)/$(PACKAGE)-$(VERSION) 294 $(CP) $(srcdir)/cmpbuf.c $(srcdir)/$(PACKAGE)-$(VERSION) 295 $(CP) $(srcdir)/cmpfns.c $(srcdir)/$(PACKAGE)-$(VERSION) 296 $(CP) $(srcdir)/error.c $(srcdir)/$(PACKAGE)-$(VERSION) 297 $(CP) $(srcdir)/errors.c $(srcdir)/$(PACKAGE)-$(VERSION) 298 $(CP) $(srcdir)/exitfail.c $(srcdir)/$(PACKAGE)-$(VERSION) 299 $(CP) $(srcdir)/flags.c $(srcdir)/$(PACKAGE)-$(VERSION) 300 $(CP) $(srcdir)/getopt.c $(srcdir)/$(PACKAGE)-$(VERSION) 301 $(CP) $(srcdir)/getopt1.c $(srcdir)/$(PACKAGE)-$(VERSION) 302 $(CP) $(srcdir)/inout.c $(srcdir)/$(PACKAGE)-$(VERSION) 303 $(CP) $(srcdir)/io.c $(srcdir)/$(PACKAGE)-$(VERSION) 304 $(CP) $(srcdir)/linesplit.c $(srcdir)/$(PACKAGE)-$(VERSION) 305 $(CP) $(srcdir)/main.c $(srcdir)/$(PACKAGE)-$(VERSION) 306 $(CP) $(srcdir)/ndselect.c $(srcdir)/$(PACKAGE)-$(VERSION) 307 $(CP) $(srcdir)/new.c $(srcdir)/$(PACKAGE)-$(VERSION) 308 $(CP) $(srcdir)/number.c $(srcdir)/$(PACKAGE)-$(VERSION) 309 $(CP) $(srcdir)/numutil.c $(srcdir)/$(PACKAGE)-$(VERSION) 310 $(CP) $(srcdir)/options.c $(srcdir)/$(PACKAGE)-$(VERSION) 311 $(CP) $(srcdir)/read_line.c $(srcdir)/$(PACKAGE)-$(VERSION) 312 $(CP) $(srcdir)/setmode.c $(srcdir)/$(PACKAGE)-$(VERSION) 313 $(CP) $(srcdir)/side.c $(srcdir)/$(PACKAGE)-$(VERSION) 314 $(CP) $(srcdir)/thrlist.c $(srcdir)/$(PACKAGE)-$(VERSION) 315 $(CP) $(srcdir)/util.c $(srcdir)/$(PACKAGE)-$(VERSION) 316 $(CP) $(srcdir)/xalloc-die.c $(srcdir)/$(PACKAGE)-$(VERSION) 317 $(CP) $(srcdir)/xmalloc.c $(srcdir)/$(PACKAGE)-$(VERSION) 318 $(CP) $(srcdir)/bitvector.h $(srcdir)/$(PACKAGE)-$(VERSION) 319 $(CP) $(srcdir)/cmpbuf.h $(srcdir)/$(PACKAGE)-$(VERSION) 320 $(CP) $(srcdir)/error.h $(srcdir)/$(PACKAGE)-$(VERSION) 321 $(CP) $(srcdir)/exitfail.h $(srcdir)/$(PACKAGE)-$(VERSION) 322 $(CP) $(srcdir)/getopt.h $(srcdir)/$(PACKAGE)-$(VERSION) 323 $(CP) $(srcdir)/getopt_int.h $(srcdir)/$(PACKAGE)-$(VERSION) 324 $(CP) $(srcdir)/gettext.h $(srcdir)/$(PACKAGE)-$(VERSION) 325 $(CP) $(srcdir)/linesplit.h $(srcdir)/$(PACKAGE)-$(VERSION) 326 $(CP) $(srcdir)/ndselect.h $(srcdir)/$(PACKAGE)-$(VERSION) 327 $(CP) $(srcdir)/number.h $(srcdir)/$(PACKAGE)-$(VERSION) 328 $(CP) $(srcdir)/numdiff.h $(srcdir)/$(PACKAGE)-$(VERSION) 329 $(CP) $(srcdir)/setmode.h $(srcdir)/$(PACKAGE)-$(VERSION) 330 $(CP) $(srcdir)/system.h $(srcdir)/$(PACKAGE)-$(VERSION) 331 $(CP) $(srcdir)/unlocked-io.h $(srcdir)/$(PACKAGE)-$(VERSION) 332 $(CP) $(srcdir)/xalloc.h $(srcdir)/$(PACKAGE)-$(VERSION) 333 $(CP) $(srcdir)/shtool $(srcdir)/$(PACKAGE)-$(VERSION) 334 $(CP) $(srcdir)/m4/setmode.m4 $(srcdir)/$(PACKAGE)-$(VERSION)/m4 335 $(CP) $(srcdir)/m4/st_mtim.m4 $(srcdir)/$(PACKAGE)-$(VERSION)/m4 336 $(CP) $(PACKAGE_POT) $(srcdir)/$(PACKAGE)-$(VERSION)/po/$(PACKAGE) 337 $(CP) $(PACKAGE_IT).po $(srcdir)/$(PACKAGE)-$(VERSION)/po/$(PACKAGE) 338 $(CP) $(PACKAGE_IT).mo $(srcdir)/$(PACKAGE)-$(VERSION)/po/$(PACKAGE) 339 $(CP) $(PACKAGETWO_POT) $(srcdir)/$(PACKAGE)-$(VERSION)/po/$(PACKAGETWO) 340 $(CP) $(PACKAGETWO_IT).po $(srcdir)/$(PACKAGE)-$(VERSION)/po/$(PACKAGETWO) 341 $(CP) $(PACKAGETWO_IT).mo $(srcdir)/$(PACKAGE)-$(VERSION)/po/$(PACKAGETWO) 342 343dist: copy 344 $(TAR) cvf $(srcdir)/$(PACKAGE)-$(VERSION).tar $(srcdir)/$(PACKAGE)-$(VERSION) 345 $(GZIP) $(srcdir)/$(PACKAGE)-$(VERSION).tar 346 $(RD) $(srcdir)/$(PACKAGE)-$(VERSION) 347 348# To make a backup tarball 349 350tarball: copy 351 $(CP) $(srcdir)/RCS/* $(srcdir)/$(PACKAGE)-$(VERSION)/RCS 352 $(TAR) cvf $(srcdir)/$(PACKAGE)-$(VERSION).tar $(srcdir)/$(PACKAGE)-$(VERSION) 353 $(GZIP) $(srcdir)/$(PACKAGE)-$(VERSION).tar 354 $(RD) $(srcdir)/$(PACKAGE)-$(VERSION) 355