# Main Makefile for `mkid'. # Copyright (C) 1986, 1995 Greg McGary # 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, 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; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ############################################################################## PACKAGE = @PACKAGE@ VERSION = @VERSION@ PATCH_LEVEL = @PATCH_LEVEL@ OLD_PATCH_LEVEL=@OLD_PATCH_LEVEL@ SHELL = /bin/sh VPATH = @srcdir@ @SET_MAKE@ prefix = @prefix@ srcdir = @srcdir@ exec_prefix = @exec_prefix@ bindir = $(exec_prefix)/bin infodir = $(prefix)/info libdir = @libdir@ ############################################################################## CC = @CC@ YACC = @YACC@ LN_S = @LN_S@ AWK = @AWK@ MAKEINFO = makeinfo TEXI2DVI = texi2dvi INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ DEFS = @DEFS@ IID_HELP_FILE = @IID_HELP_FILE@ DEPEND = @DEPEND@ REGEXP = @REGEXP@ STRCASECMP = @STRCASECMP@ LIB_OFILES = @ALLOCA@ @GETOPT@ @STRERROR@ ############################################################################## TARGETS = $(PROGRAMS) $(LID_LINKS) PROGRAMS = mkid lid fid idx iid LID_LINKS = eid aid gid pid ######################################## MKID_OFILES = mkid.o misc.o scanners.o idfile.o filenames.o bitops.o $(LIB_OFILES) LID_OFILES = lid.o misc.o idfile.o filenames.o bitops.o token.o $(REGEXP) $(LIB_OFILES) FID_OFILES = fid.o misc.o idfile.o filenames.o bitops.o token.o $(LIB_OFILES) IDX_OFILES = idx.o scanners.o filenames.o misc.o $(LIB_OFILES) IID_OFILES = iid.o $(STRCASECMP) $(LIB_OFILES) ######################################## SRC_YFILES = iid.y SRC_CFILES = mkid.c lid.c fid.c idx.c misc.c scanners.c idfile.c \ filenames.c bitops.c token.c GEN_CFILES = $(SRC_YFILES:.y=.c) LIB_CFILES = regex.c alloca.c getopt.c getopt1.c strcasecmp.c strerror.c ALL_CFILES = $(SRC_CFILES) $(LIB_CFILES) $(GEN_CFILES) SRC_HFILES = alloc.h bitops.h filenames.h idarg.h \ idfile.h misc.h scanners.h strxtra.h token.h LIB_HFILES = regex.h getopt.h TAG_SRC_FILES = $(SRC_HFILES) $(LIB_HFILES) $(SRC_CFILES) $(LIB_CFILES) $(SRC_YFILES) DIST_SRC_FILES =$(ALL_CFILES) $(SRC_HFILES) $(LIB_HFILES) $(SRC_YFILES) INFO_FILES = mkid.info DIST_DOC_FILES =mkid.texinfo version.texi stamp-vti $(INFO_FILES) fid.1 iid.1 lid.1 mkid.1 iid.help DIST_CONF_FILES=aclocal.m4 acconfig.h configure.in Makefile.in mkdirhier install-sh \ stamp-h.in config.h.in configure $(DEPEND) DIST_MISC_FILES=COPYING README README.alpha-test INSTALL NEWS TODO THANKS \ idtest gid.el ChangeLog DIST_FILES = $(DIST_CONF_FILES) $(DIST_SRC_FILES) $(DIST_DOC_FILES) $(DIST_MISC_FILES) ######################################## DIST_DIR = $(PACKAGE)-$(VERSION).$(PATCH_LEVEL) DIST_TGZ = $(DIST_DIR).tar.gz DIST_UU = $(DIST_TGZ).uu DIST_SHAR = $(DIST_DIR).shar OLD_DIST_DIR = $(PACKAGE)-$(VERSION).$(OLD_PATCH_LEVEL) PATCH_C_GZ = $(OLD_DIST_DIR)-$(VERSION).$(PATCH_LEVEL).diff.gz PATCH_U_GZ = $(OLD_DIST_DIR)-$(VERSION).$(PATCH_LEVEL).udiff.gz PATCH_C_UU = $(PATCH_C_GZ).uu ############################################################################## .PRECIOUS: $(DEPEND) Makefile configure config.h config.h.in .SUFFIXES: .SUFFIXES: .c .i .o INCLUDES = -I. -I$(srcdir) CC_FLAGS = $(DEFS) $(CPPFLAGS) $(INCLUDES) $(CFLAGS) LINK = $(CC) $(LDFLAGS) -o $@ # This is a convenient diagnostic aid: get a cpp'ed foo.c with "make foo.i" .c.i: $(CPP) $(CC_FLAGS) $< >$@ .c.o: $(CC) $(CC_FLAGS) -c $< ############################################################################## all: $(TARGETS) mkid: $(MKID_OFILES) $(LINK) $(MKID_OFILES) $(LIBS) lid: $(LID_OFILES) $(LINK) $(LID_OFILES) $(LIBS) fid: $(FID_OFILES) $(LINK) $(FID_OFILES) $(LIBS) idx: $(IDX_OFILES) $(LINK) $(IDX_OFILES) $(LIBS) iid: $(IID_OFILES) $(LINK) $(IID_OFILES) $(LIBS) $(LID_LINKS): lid rm -f $@; $(LN_S) lid $@ iid.c: iid.y $(YACC) $(srcdir)/iid.y && mv -f y.tab.c $@ ############################################################################## info: $(INFO_FILES) $(INFO_FILES): mkid.texinfo version.texi cd $(srcdir) && $(MAKEINFO) mkid.texinfo dvi: mkid.dvi mkid.dvi: mkid.texinfo version.texi $(TEXI2DVI) $(srcdir)/mkid.texinfo version.texi: stamp-vti stamp-vti: configure.in if echo "@set VERSION $(VERSION)" |cmp -s - $(srcdir)/version.texi; then \ :; else \ echo "@set VERSION $(VERSION)" >$(srcdir)/version.texi; \ fi date >stamp-vti ############################################################################## install: all $(srcdir)/mkdirhier $(bindir) $(libdir) $(infodir) @for file in $(PROGRAMS); do \ cmd="$(INSTALL_PROGRAM) $$file $(bindir)/`echo $$file | sed '$(transform)'`"; \ (echo $$cmd; eval $$cmd); \ done @lid=`echo lid |sed '$(transform)'`; \ for file in $(LID_LINKS); do \ file=`echo $$file |sed '$(transform)'`; \ cmd="cd $(bindir); rm -f $$file; $(LN_S) $$lid $$file"; \ (echo $$cmd; eval $$cmd); \ done $(INSTALL_DATA) $(srcdir)/iid.help $(IID_HELP_FILE) @for file in $(INFO_FILES); do \ cmd="$(INSTALL_DATA) $(srcdir)/$$file $(infodir)/$$file"; \ (echo $$cmd; eval $$cmd); \ done uninstall: @for file in $(TARGETS); do \ cmd="rm -f $(bindir)/`echo $$file |sed '$(transform)'`"; \ (echo $$cmd; eval $$cmd); \ done rm -f $(IID_HELP_FILE) @for file in `cd $(infodir) && echo mkid.info*`; do \ cmd="rm -f $(infodir)/$$file"; \ (echo $$cmd; eval $$cmd); \ done ############################################################################## check: mkid lid fid idx here=`pwd`; PATH=$$here:$$PATH; cd $(srcdir) \ && $$here/mkid -v -f$$here/ID $(TAG_SRC_FILES) \ && $(SHELL) ./idtest -f$$here/ID $(TAG_SRC_FILES) \ && rm -f $$here/ID ID: $(TAG_SRC_FILES) mkid here=`pwd`; PATH=$$here:$$PATH; export PATH; cd $(srcdir) \ && $$here/mkid -f$$here/ID $$here/config.h $(TAG_SRC_FILES) tags: TAGS TAGS: $(TAG_SRC_FILES) here=`pwd`; cd $(srcdir) && etags -t $(TAG_SRC_FILES) -o $$here/TAGS ############################################################################## mostlyclean: rm -f $(TARGETS) a.out rm -f *.o core *.core core.* *.aux *.cp *.cps *.dvi *.fn *.fns rm -f *.ky *.kys *.log *.pg *.pgs *.toc *.tp *.tps *.vr *.vrs clean: mostlyclean rm -f iid.c distclean: clean rm -f Makefile config.h config.status config.cache stamp-h realclean: distclean rm -f *.info* TAGS ID *~ ############################################################################## dist: $(DIST_TGZ) $(PATCH_U_GZ) $(PATCH_C_GZ) bump-patch: dist rm -fr $(OLD_DIST_DIR) $(AWK) -F= '\ /^PATCH_LEVEL/ { print $$1 "=" $$2 + 1; next; } \ { print; }' configure.new \ && mv configure.new configure.in bump-minor: dist rm -fr $(OLD_DIST_DIR) $(AWK) -F'[=.]' '\ /^VERSION/ { print $$1 "=" $$2 "." $$3 + 1; next; } \ /^PATCH_LEVEL/ { print $$1 "=" 0; next; } \ { print; }' configure.new \ && mv configure.new configure.in bump-major: dist rm -fr $(OLD_DIST_DIR) $(AWK) -F'[=.]' '\ /^VERSION/ { print $$1 "=" $$2 + 1 ".0"; next; } \ /^PATCH_LEVEL/ { print $$1 "=" 0; next; } \ { print; }' configure.new \ && mv configure.new configure.in ######################################## shar: $(DIST_SHAR) $(DIST_SHAR): $(DIST_TGZ) $(PATCH_C_GZ) shar $(PATCH_C_GZ) $(DIST_TGZ) >$@ dist-uu: $(DIST_UU) $(DIST_UU): $(DIST_TGZ) uuencode $(DIST_TGZ) <$(DIST_TGZ) >$@ dist-tgz: $(DIST_TGZ) $(DIST_TGZ): $(DIST_DIR) tar cfzho $@ $(DIST_DIR) dist-dir: $(DIST_DIR) $(DIST_DIR): $(DIST_FILES) rm -fr $@ mkdir $@ chmod 777 $@ distdir=`pwd`/$@; cd $(srcdir); cp -p $(DIST_FILES) $$distdir chmod -R a+r $@ ######################################## # context-diff patches are for distribution patch-uu: $(PATCH_C_UU) $(PATCH_C_UU): $(PATCH_C_GZ) uuencode $(PATCH_C_GZ) <$(PATCH_C_GZ) >$@ patch patch-gz: $(PATCH_C_GZ) $(PATCH_C_GZ): $(OLD_DIST_DIR) $(DIST_DIR) diff -r -c --show-c-function --new-file $(OLD_DIST_DIR) $(DIST_DIR) |gzip >$@ # unidiff patches are for the maintainer's information patchu patchu-gz: $(PATCH_U_GZ) $(PATCH_U_GZ): $(OLD_DIST_DIR) $(DIST_DIR) diff -r -u $(OLD_DIST_DIR) $(DIST_DIR) |gzip >$@ ############################################################################## Makefile: Makefile.in config.status $(DEPEND) CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status config.status: configure ./config.status --recheck $(srcdir)/configure: configure.in aclocal.m4 cd $(srcdir) && autoconf config.h: stamp-h stamp-h: $(srcdir)/config.h.in config.status CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status date >stamp-h $(srcdir)/config.h.in: stamp-h.in $(srcdir)/stamp-h.in: configure.in aclocal.m4 acconfig.h cd $(srcdir) && autoheader date >$(srcdir)/stamp-h.in depend $(DEPEND): (cd $(srcdir) && $(CC) $(CC_FLAGS) -MM $(ALL_CFILES);) >$(DEPEND) ############################################################################## @DEPEND_FILE@