# FileName [ Makefile.in ] # # PackageName [ vl2mv ] # # Synopsis [ Package-wide Makefile ] # # Description [ This file requires GNU's make program. # Run "configure" to generate the Makefile, or use # "config.status" (created by configure) to regenerate the # Makefile after modifying this file. # # Type "gmake help" for help about valid targets. # ] # # SeeAlso [ configure.in ] # # Author [ Stephen Edwards # Tom Shiple ] # # Copyright [ # Copyright (c) 1994-1996 The Regents of the Univ. of California. # All rights reserved. # # Permission is hereby granted, without written agreement and without license # or royalty fees, to use, copy, modify, and distribute this software and its # documentation for any purpose, provided that the above copyright notice and # the following two paragraphs appear in all copies of this software. # # IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT # OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF # CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND # FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN # "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE # MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. # ] # # Revision [$Id: Makefile.in,v 1.6 2010/04/10 03:51:10 fabio Exp $] # Default target: .PHONY : default default : all #---------------------------------------------------------------------- # The list of packages to compile. Change this if you are only compiling # part of vl2mv #---------------------------------------------------------------------- #PKGS = parser PKGS = $(ALL_PKGS) #---------------------------------------------------------------------- # This Makefile is designed for three different situations: # # 1. Single platform build (the default) # # All packages listed in the PKGS variable # local_srcdir = master_srcdir = . # # 2. Multi-platform build # # All packages listed in the PKGS variable # local_srcdir = master_srcdir = /where/source/files/reside # # 3. Multi-platform development (used at Berkeley) # # Packages under development listed in the PKGS variable # local_srcdir = ../common # master_srcdir = /projects/vis/vis-devel/common # # User has a directory structure that looks like # # vis/common/src/ Subdirectory with package source files # under development. # # vis/$PLATFORM/ Subdirectory with this Makefile. # Compilation is invoked here. # # $PLATFORM is something like "alpha-g" (DEC Alpha, debug version) # #---------------------------------------------------------------------- #---------------------------------------------------------------------- # Information about all the packages #---------------------------------------------------------------------- ALL_PKGS = parser set stack # Generate the list of all packages NOT in the PKGS list MISSING_PKGS = $(filter-out $(PKGS), $(ALL_PKGS)) #---------------------------------------------------------------------- # For safety #---------------------------------------------------------------------- SHELL = /bin/sh .SUFFIXES: #---------------------------------------------------------------------- # The name of the product and its version #---------------------------------------------------------------------- PRODUCT = vl2mv VERSION = 2.3 # Compile and version information # # CUR_DATE and CUR_VER are strings surrounded by double quotes that contain # spaces, e.g., "vl2mv release 3.0" VERDATE := -DCUR_DATE="\"$(shell date)\"" -DCUR_VER="\"$(PRODUCT) release $(VERSION)\"" #---------------------------------------------------------------------- # Source directories #---------------------------------------------------------------------- # Directory containing master source files. This directory is searched # for packages NOT listed in the PKGS variable. Defaults to "." # Override with ./configure --srcdir= master_srcdir = @srcdir@ # Directory containing local source files. This directory is searched # for packages listed in the PKGS variable. Defaults to the master source # directory (see above). # Override with ./configure --with-local-srcdir= local_srcdir = @local_srcdir@ #---------------------------------------------------------------------- # Directories used while building #---------------------------------------------------------------------- # Directories to search for glu .h files (space-separated) gluincdir1 = @gluincdir@ # Directories to search for libglu.a (space-separated) glulibdir1 = @glulibdir@ # Directory where object files will be placed during the build objectdir = obj # Directory where links to header files will be placed during the build headerdir = $(local_srcdir)/include # Directories where documentation will be placed during the build docdir = $(master_srcdir)/doc htmldocdir = $(docdir)/html txtdocdir = $(docdir)/txt helpdir = $(master_srcdir)/share/help # Directories to search for VL2MV library files # Set by ./configure --with-vl2mv-libdir= vl2mvlibdir = @vl2mvlibdir@ #---------------------------------------------------------------------- # Defaults for GLU library and header files #---------------------------------------------------------------------- ifndef gluincdir1 gluincdir = ../glu-$(VERSION)/include ../../glu-$(VERSION)/include else gluincdir = $(gluincdir1) endif ifndef glulibdir1 glulibdir = ../glu-$(VERSION) ../../glu-$(VERSION) else glulibdir = $(glulibdir1) endif #---------------------------------------------------------------------- # Installation names and directories #---------------------------------------------------------------------- # Name of the library to create LIBRARY = lib$(PRODUCT).a # Name of the man page MANPAGE = vl2mv.1 # Directory in which to install architecture-independent files # Set by ./configure --prefix=... prefix = @prefix@ # Directory in which to install architecture-dependent files # Set by ./configure --exec-prefix=... exec_prefix = @exec_prefix@ # Directory in which to install binaries bindir = $(exec_prefix)/bin # Directory in which to install libraries libdir = $(exec_prefix)/lib # Directory in which to install headers includedir = $(prefix)/include # Directory in which to install architecture-independent library files datadir = $(prefix)/share/vl2mv # Directory for the man page mandir = $(prefix)/man/man1 #---------------------------------------------------------------------- # The following are set by the configure script #---------------------------------------------------------------------- AC_FLAGS = @DEFS@ LIBDIRS = @LIBDIRS@ RANLIB = @RANLIB@ CC = @CC@ LINKER = @LINKER@ LDFLAGS = @LDFLAGS@ CFLAGS = @CFLAGS@ OTHERLIBS = @LIBS@ @LEXLIB@ YACC = @YACC@ LEX = @LEX@ NAWK = @AWK@ SED = @SED@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ AR = @AR@ #---------------------------------------------------------------------- # Distributed files in the doc directory #---------------------------------------------------------------------- DOCUMENTATION = #---------------------------------------------------------------------- # Examples included in the distribution #---------------------------------------------------------------------- # The "interesting" example files are anything in the examples subdirectories # except the RCS subdirectories # # This is a rather messy way to look for filenames in the local_srcdir, # then remove the local_srcdir prefix EXAMPLEFILES = $(patsubst $(local_srcdir)/%, %, \ $(filter-out %RCS, $(foreach example, $(EXAMPLES), \ $(wildcard $(local_srcdir)/examples/*)))) #---------------------------------------------------------------------- # Include the make templates from all the packages # # Each of these templates (e.g., parser/parser.make) should contains lines # of the form # # CSRC += source1.c source2.c # HEADERS += header1.h header2.h # LEXSRC += file1.l # YACCSRC += file2.y # GENERATEDCSRC += ctlpLex.c ctlpRead.c #---------------------------------------------------------------------- MAKEINCLUDES = $(foreach package, $(PKGS), \ $(local_srcdir)/src/$(package)/$(package).make) include $(MAKEINCLUDES) OBJECTS = $(addprefix $(objectdir)/,$(GENERATEDCSRC:.c=.o) $(CSRC:.c=.o)) #---------------------------------------------------------------------- # Include the dependency files from each package directory. # A missing dependency file does not produce an error. #---------------------------------------------------------------------- DEPENDENCIES = $(foreach package, $(PKGS), \ $(local_srcdir)/src/$(package)/$(package).d) -include $(DEPENDENCIES) #---------------------------------------------------------------------- # Header files and library search paths and names # # INCLUDEDIRS looks like "-I/projects/glu/ -I/projects/vis/ ..." # LIBRARYDIRS looks like "-L/projects/glu/ -L/projects/vis/ ..." # LIBS looks like "-lm -lglu -lvl2mv" #---------------------------------------------------------------------- INCLUDEDIRS = $(addprefix -I,$(gluincdir)) \ $(foreach package, $(PKGS), -I$(local_srcdir)/src/$(package)) \ $(foreach package, $(MISSING_PKGS), \ -I$(master_srcdir)/src/$(package)) \ -I$(objectdir) LIBRARYDIRS = $(addprefix -L,$(vl2mvlibdir)) $(addprefix -L,$(glulibdir)) \ $(LIBDIRS) # Link against the vl2mv library only if some packages are missing # (i.e., we are compiling only a few packages locally) ifneq ($(strip $(MISSING_PKGS)),) VL2MVLIBS = -l$(PRODUCT) else VL2MVLIBS = endif GLULIBS = -lglu LIBS = $(VL2MVLIBS) $(GLULIBS) $(OTHERLIBS) #---------------------------------------------------------------------- # Form the the list of directories to search for header files. # # VPATH looks like /projects/vis:/projects/glu/: ... #---------------------------------------------------------------------- VPATH = $(local_srcdir): \ $(master_srcdir): \ $(addprefix :$(local_srcdir)/src/,$(PKGS)): \ $(addprefix :$(master_srcdir)/src/,$(MISSING_PKGS)): \ $(objectdir) #---------------------------------------------------------------------- # Definitions for the distribution file #---------------------------------------------------------------------- DISTRIBUTION = $(PRODUCT)-$(VERSION) # Directories to include in the distribution file DISTDIRS = src helpers obj doc examples $(addprefix src/,$(PKGS)) # Build/install helper files HELPERS = $(addprefix helpers/, \ install-sh mkinstalldirs config.guess config.sub dependency.make) # Files to include in the distribution file DISTFILES = \ README INSTALL NEWS \ configure configure.in Makefile.in $(HELPERS) \ vl2mv.1 \ $(CSRC) $(HEADERS) $(LEXSRC) $(YACCSRC) $(MAKEINCLUDES) \ $(EXAMPLEFILES) \ $(addprefix doc/,$(DOCUMENTATION)) #---------------------------------------------------------------------- # Implicit rules #---------------------------------------------------------------------- ALLCFLAGS = $(CFLAGS) $(AC_FLAGS) $(VERDATE) \ -DNAWK=\"$(NAWK)\" -DLIBRARY=\"$(datadir)\" # For compiling a source file into the object directory $(objectdir)/%.o : %.c umask 2 ; $(CC) -c $(ALLCFLAGS) $(INCLUDEDIRS) -o $@ $< # Place object files into an archive %.a : rm -f $@ umask 2; $(AR) cq $@ $^ $(RANLIB) $@ ###################################################################### # RULES # ###################################################################### #: #: Useful targets: #: #---------------------------------------------------------------------- # Rule for getting help #---------------------------------------------------------------------- .PHONY : help #: help -- Print a list of targets # This prints all lines in this Makefile that begin with #: help : @sed -n "s/^#://p" Makefile #---------------------------------------------------------------------- # Always executed once when the Makefile is run #---------------------------------------------------------------------- # Make sure the directory in which to place the objects exists ignored := $(shell umask 2; test -d $(objectdir) || mkdir $(objectdir)) #---------------------------------------------------------------------- # Rules to compile and build libraries and executables #---------------------------------------------------------------------- #.PHONY : all library compile-version delete-version .PHONY : all library #: #: all (the default) -- Compile the main executable # (force the version to be recompiled) #all : compile-version $(PRODUCT) all : $(PRODUCT) # Create the main executable $(PRODUCT) : $(OBJECTS) $(glulibdir)/libglu.a umask 2 ; $(LINKER) -o $(PRODUCT) $(LDFLAGS) \ $(OBJECTS) $(LIBRARYDIRS) $(LIBS) # Force the "version" information to be recompiled compile-version : delete-version $(objectdir)/vmVers.o # Delete the object file related to the version delete-version : rm -f $(objectdir)/vmVers.o # Build a library containing all the objects #: library -- Create a library of all the objects (useful in a central area) library : $(LIBRARY) $(LIBRARY) : $(OBJECTS) #---------------------------------------------------------------------- # Rules for installation #---------------------------------------------------------------------- .PHONY : install uninstall installdirs #: #: install -- Install the product and libraries in bindir, libdir, #: datadir, etc. install : $(PRODUCT) $(LIBRARY) installdirs @echo "Installing $(bindir)/$(PRODUCT)" @$(INSTALL_PROGRAM) $(PRODUCT) $(bindir)/$(PRODUCT) @echo "Installing $(libdir)/$(LIBRARY)" @$(INSTALL_DATA) $(LIBRARY) $(libdir)/$(LIBRARY) @echo "Installing $(mandir)/vl2mv.1" @$(INSTALL_DATA) vl2mv.1 $(mandir)/vl2mv.1 @for header in $(HEADERS); do \ echo "Installing $(includedir)/$$header"; \ $(INSTALL_DATA) $(master_srcdir)/src/*/$$header \ $(includedir)/$$header; \ done #: uninstall -- Reverse the effects of "install" uninstall : rm -f $(bindir)/$(PRODUCT) rm -f $(libdir)/$(LIBRARY) @for header in $(HEADERS); \ do \ echo "Removing $(includedir)/$$header"; \ rm -f $(includedir)/$$header; \ done installdirs : $(master_srcdir)/helpers/mkinstalldirs \ $(bindir) $(libdir) $(includedir) $(datadir) $(datadir)/help \ $(mandir) #---------------------------------------------------------------------- # Rules for checking the build #---------------------------------------------------------------------- .PHONY : check # Determine the absolute executable path # # Starting from the current directory, change directory to the directory # part of the product name, then tack on the filename part of EXECUTABLE EXECUTABLE = $(PRODUCT) EXECUTABLEPATH := \ $(shell cd $(dir $(EXECUTABLE)) ; pwd)/$(notdir $(EXECUTABLE)) # Determine the rootname of the examples EXAMPLEPATH = $(master_srcdir)/examples FULLEXAMPLEPATH := $(shell cd $(EXAMPLEPATH) ; pwd) # list of all examples to check EXAMPLES = ABypassCtrl ABypassSpec AdecSE1 BBypassSpec \ Bcc BdecSE1 FIFOs FPMult FPMultLTL1 IFetchControl IFetchControl1 IntArith \ IntLogic Jmp Mem PI_BUS PPC60X_bus abp abstr_fabr_4cycle am2901 am2910 amp \ arbiter arbiter_bug arbiter_le atom_bakery bak_otLTLM1 bak_otLTLM2 \ bak_otLTLM3 bak_otLTLM4 bak_otLTLM5 bakery bakery_ot ball barrel4 bcuvis32 biu\ bpbs buf_bug bufferAlloc bug checkers coherence controlvis counter \ cp0IntEncoder cp0control crd ctlp3 ctlp3LTLM1 ctlp3LTLM2 ctlp3LTLM3 \ daio_receiver dcnew drop4 eisenberg eisenbergLTLM1 eisenbergLTLM2 eleLTLM1 \ ely1-3 ely2-3 ely2-4 ely3-4 ethernet.define.112 ethernet.define.212 \ ethernet.define.312 ethernet.define.412 exampleS extIntControl fabric_beh \ fabric_str freecell fru32 ftxr fysel8x8 gcd gcdLTL2 gigamax good_bakery gray \ hwb30 ibuf ibuf_ctl ic_cntl icctl icctl_env idu32 island jam ldStoCtrl.save \ ldStoCtrl lock luckySeven luckySevenONE matrix matrix_bug minMax mppLTLM1 \ network nosel nullModem nullModemLTL1 nullmodemLTLM1 packstart palu paluLTL1 \ parsepack parsesys pcuv peterson pf philo philo4 ping_pong_new prodcell \ prodcellLTL2 rcnum rcnum16 rcnum25 rcv relinit reqAck reqAckRed reset rgraph \ rotate32 rotate4 scheduler segf1 sfeistel sg1 shampoo short slider snd soap \ soapLTL1 soapLTL3 soapLTL4 soapLTLM1 soapLTLM2 soapLTLM3 solitaireVL \ spinner32 spinner4 spm starving_bakery storeBufferCtrl syncarb synch_bakery \ tcp test three_processor ticTacToe tlbControl tlc two twoAll twoFifo1 twoQ \ two_processor twoqLTLM1 twoqLTLM2 vMiim vcordic vcrc32_8 vending vlunc \ vsa16a vsaR wallace8 #: #: check -- Test the locally-built executable (runs check-examples) #: Test each of the examples listed in CHECK_EXAMPLES #: You may want to invoke this with #: gmake "CHECK_EXAMPLES=abp bakery" check-examples #: gmake EXECUTABLE=vis-cmu check-examples #: gmake EXECUTABLE=/projects/vis/vis-devel/alpha-g/vis \ #: check-examples #: gmake EXAMPLEPATH=/projects/vis/vis-devel/common/examples \ #: check-examples #: gmake EXAMPLEPATH=../common/examples check-examples #: gmake VIS_LIBRARY_PATH=/projects/vis/vis-devel/share # For each example, # # 1) create the directory checkresults/ # 2) enter that directory # 3) create "check_script" by prepending a "set open_path" command # to the example's check_script in the master source directory. This # makes VIS look in the master source directory for example files # 4) run VIS on that script, producing "result.raw" # 5) filter out relevant lines in the result, producing "result.filtered" # and compare this with the "check_result" file in the master source # directory. Differences are written to "result.differences" check : @test -d checkresults || mkdir checkresults @echo "Checking examples. Results will be in checkresults//result.raw" @echo "Running executable $(EXECUTABLEPATH)" @echo " (change with EXECUTABLE=...)" @echo "Taking examples from $(FULLEXAMPLEPATH)" @echo " (change with EXAMPLEPATH=...)" @here=`pwd` ; \ for example in $(EXAMPLES) ; \ do \ cd $(FULLEXAMPLEPATH) ; \ echo -n "Checking $$example ... " ; \ test -d $$here/checkresults/$$example \ || mkdir $$here/checkresults/$$example ; \ $(EXECUTABLEPATH) $$example.v -o $$here/checkresults/$$example/$$example.mv >$$here/checkresults/$$example/result.out 2>$$here/checkresults/$$example/result.err ; \ cat $$here/checkresults/$$example/result.err >> \ $$here/checkresults/$$example/result.out ; \ rm $$here/checkresults/$$example/result.err ; \ if egrep -v "\.v$$|uninitialize" $$here/checkresults/$$example/result.out ;\ then \ echo "failed (more checkresults/$$example/result.out)" ; \ else \ echo "passed" ; \ fi ; \ done #---------------------------------------------------------------------- # Rules that produce/delete the dependency file for every package #---------------------------------------------------------------------- .PHONY : dependencies cleandependencies #: #: dependencies -- Create a list of dependency files. #: Useful when modifying header files. # Invoke the "dependency.make" Makefile on each package subdirectory, # passing the path, etc. to it. # # There's a strange feature in autoconf where lines of the form " VPATH=" # are removed from the Makefile. Thus, a flag is placed before the # VPATH= argument below. dependencies: ifeq ($(CC),gcc) for pkg in $(PKGS) ; \ do \ $(MAKE) --no-print-directory \ -f $(master_srcdir)/helpers/dependency.make \ CC="$(CC)" \ CFLAGS="$(CFLAGS)" VPATH="$(local_srcdir)/src/$$pkg" \ AC_FLAGS="$(AC_FLAGS)" \ INCLUDEDIRS="$(INCLUDEDIRS)" objectdir=$(objectdir) \ PKGNAME=$(local_srcdir)/src/$$pkg/$$pkg \ $(local_srcdir)/src/$$pkg/$$pkg.d ; \ done else @echo "dependency requires gcc" @echo "Reconfigure with gcc" endif cleandependencies: rm -f $(local_srcdir)/src/*/*.d #---------------------------------------------------------------------- # Rules for making a distribution file #---------------------------------------------------------------------- .PHONY : dist #: #: dist -- Create a tarred, gzipped distribution file # Warning: "tar" under Digital Unix (on DEC Alphas) writes directories # that don't work under SunOS tar dist : $(DISTRIBUTION).tar.gz $(DISTRIBUTION).tar.gz : $(DISTFILES) ifeq ($(strip $(FULL_MISSING_PKGS)),) rm -rf $(DISTRIBUTION) umask 022; mkdir $(DISTRIBUTION) for dir in $(DISTDIRS); \ do \ umask 022; mkdir $(DISTRIBUTION)/$$dir; \ done @echo "Copying distribution files" @for file in $(patsubst $(local_srcdir)/%, %, $^); \ do \ echo " $$file"; \ cp -p $(local_srcdir)/$$file $(DISTRIBUTION)/$$file; \ done - chmod -R a+r $(DISTRIBUTION) - chmod -R u+w $(DISTRIBUTION) tar cf - $(DISTRIBUTION) | gzip > $(DISTRIBUTION).tar.gz rm -rf $(DISTRIBUTION) else @echo "Missing packages: $(FULL_MISSING_PKGS)" @echo "Make sure PKGS lists all the packages" @exit 1 endif #---------------------------------------------------------------------- # Rules for rebuilding the configure file and Makefile #---------------------------------------------------------------------- ${master_srcdir}/configure : configure.in cd ${master_srcdir} && autoconf chmod 0775 ${master_srcdir}/config* config.status : configure ./config.status --recheck Makefile : Makefile.in config.status @echo "The master Makefile.in has been changed:" @echo "run config.status" @echo "Warning: This will overwrite any local Makefile modifications" @exit 1 #---------------------------------------------------------------------- # Rules for cleaning #---------------------------------------------------------------------- .PHONY : clean mostlyclean distclean #: #: clean -- Remove every file created by building clean mostlyclean : rm -rf $(objectdir)/* $(LIBRARY) $(PRODUCT) \ $(foreach bddpkg, $(BDDPKGS), $(PRODUCT)-$(bddpkg)) \ checkresults include #: distclean -- Remove every file created by building or configuring distclean : clean cleandependencies rm -f Makefile config.status config.cache config.log #---------------------------------------------------------------------- # Rule for performing a lint-like check on the source code # # Note: This requires gcc #---------------------------------------------------------------------- .PHONY : check-code #: #: check-code -- Run a lint-like check on the source code. #: (useful for development) check-code : $(CSRC) $(BDD_CSRC) $(MDD_CSRC) ifeq ($(CC),gcc) @rm -f *.o_checkcode @for file in $^; \ do \ echo "------------------------ Checking $$file"; \ gcc -c $(CFLAGS) $(AC_FLAGS) $(VERDATE) $(INCLUDEDIRS) \ -Wall -Wno-comment -o $(objectdir)/checkcode_output.o $$file; \ rm -f $(objectdir)/checkcode_output.o; \ done @rm -f *.o_checkcode else @echo "check-code requires gcc" @echo "Reconfigure with gcc" endif #---------------------------------------------------------------------- # Rule for generating function prototypes for all the # source and header files in all the PKGS # # Note: This requires "extproto," part of the ext package available from # ftp://ic.eecs.berkeley.edu/pub/Ext #---------------------------------------------------------------------- .PHONY : proto #: #: proto -- Regenerate all the function prototypes in the packages #: Useful during development. You may want to invoke it with #: gmake "PKGS=tst tbl" proto proto : @cd $(local_srcdir)/src ; \ for pkg in $(PKGS); \ do \ cd $$pkg ; \ extproto *.h *.c ; \ cd .. ; \ done #---------------------------------------------------------------------- # Rules for generating the documentation and command help files # for all the packages # # Note: This requires "extdoc," part of the ext package, and # lynx, a textual WWW browser #---------------------------------------------------------------------- .PHONY : allDoc doc indices helpfiles cleandoc #: #: allDoc -- Extract all the documentation (runs doc, indices, and helpfiles) allDoc : cleandoc doc indices helpfiles #: doc -- Extract HTML and text documentation on all the functions doc : $(htmldocdir) $(txtdocdir) for pkg in $(PKGS); \ do \ umask 2 ; extdoc --html=$(htmldocdir) --text=$(txtdocdir) \ $(local_srcdir)/src/$$pkg/$$pkg; \ done #: indices -- Generate function and command indices for the HTML documentation indices : $(htmldocdir) umask 2 ; extindex $(htmldocdir) #: helpfiles -- Generate the help files from the HTML documentation helpfiles : $(helpdir) for file in $(htmldocdir)/*Cmd.html ; \ do \ echo Converting $$file ; \ umask 2 ; lynx -dump $$file > $(helpdir)/`basename $$file .html`.txt ; \ done #: cleandoc -- Remove all the documentation generated by "allDoc" cleandoc : -rm -f $(htmldocdir)/*.html -rm -f $(txtdocdir)/*.txt -rm -f $(helpdir)/*Cmd.txt $(htmldocdir) : - umask 2 ; mkdir $(htmldocdir) $(txtdocdir) : - umask 2 ; mkdir $(txtdocdir) $(helpdir) : - umask 2 ; mkdir $(helpdir) #---------------------------------------------------------------------- # Rules for debugging the Makefile #---------------------------------------------------------------------- .PHONY : debug-make DEBUG_VARS = ALL_PKGS \ PKGS \ MISSING_PKGS \ VPATH \ INCLUDEDIRS \ CSRC \ OBJECTS \ HEADERS \ MAKEINCLUDES \ CFLAGS \ AC_FLAGS \ master_srcdir \ local_srcdir \ RCSFILES \ RCSDIR \ LIBS \ VL2MVIBS \ DISTFILES \ EXAMPLEFILES #: #: debug-make -- Print a list of Makefile variables debug-make: @$(foreach var, $(DEBUG_VARS), echo $(var)=$($(var)) ; )