# # Top level Makefile Template for xosview. # # # $Id$ # include Makefile.config OBJS = \ llist.o \ Host.o \ xwin.o \ Xrm.o \ defaultstring.o \ meter.o \ fieldmeter.o \ fieldmeterdecay.o \ fieldmetergraph.o \ bitfieldmeter.o \ bitmeter.o \ xosview.o \ snprintf.o \ main.o CFILES := $(OBJS:.o=.cc) DEPFILES := $(OBJS:%=.%.d) INSTALL = @INSTALL@ #----------------------------------------------------------------------- all : meterlib xosview defaultstring.cc: Xdefaults defresources.awk @AWK@ -f defresources.awk Xdefaults > defaultstring.cc meterlib: cd @top_srcdir@/@host_dir@ && $(MAKE) @top_srcdir@/@host_dir@/libmeter.a: meterlib ## Also use LDFLAGS, which is inherited from the system. xosview: $(OBJS) @top_srcdir@/@host_dir@/libmeter.a $(CXX) $(LDFLAGS) $(LFLAGS) -o xosview $(OBJS) $(LIBS) ## If for some reason (such as permissions) you wish to change where ## xosview is installed, re-run configure with ## --prefix=, which will change the next line. PREFIX_TO_USE=@prefix@ BINDIR=$(PREFIX_TO_USE)/bin MANDIR=$(PREFIX_TO_USE)/share/man/man1 XAPPLOADDIR=$(PREFIX_TO_USE)/lib/X11/app-defaults PACKAGENAME=xosview-$(VERS) DISTRIBDIR=@top_srcdir@/../$(PACKAGENAME) ## These next lines look really ugly. The echo statements are an ## attempt to make the output look a little nicer. install: xosview @echo "*** Installing executable..." @INSTALL_PROGRAM@ @INSTALL_ARGS@ xosview $(BINDIR) @echo "*** Installing application defaults..." @INSTALL_DATA@ Xdefaults $(XAPPLOADDIR)/XOsview @echo "*** Making sure $(MANDIR) exists..." @if [ ! -d $(MANDIR) ]; then \ echo "*** Making $(MANDIR)..."; \ mkdir $(MANDIR); \ fi @echo "*** Installing man page..." @INSTALL_DATA@ xosview.1 $(MANDIR) install-man: @echo "Use the 'install' target -- it installs the man page, too." @#@INSTALL_DATA@ xosview.1 $(MANDIR) distrib: checksource distclean cd @top_srcdir@/..; rm -rf $(PACKAGENAME) mkdir $(DISTRIBDIR) (cd @top_srcdir@; tar cf - *) | (cd $(DISTRIBDIR); tar xf -) cd $(DISTRIBDIR); rm -rf `find . -name "CVS"` cd @top_srcdir@/..; tar cf $(PACKAGENAME).tar $(PACKAGENAME) gzip -f9 @top_srcdir@/../$(PACKAGENAME).tar cd @top_srcdir@/..; uuencode $(PACKAGENAME).tar.gz \ $(PACKAGENAME).tar.gz > $(PACKAGENAME).tar.gz.uue # The next one is only used by bgrayson to set up the local # mirrors of the xosview distributions. distrib-and-copy: distrib cp ../$(PACKAGENAME).tar.gz `echo ~bgrayson/public_html/xosview` scp ../$(PACKAGENAME).tar.gz omni:~bgrayson/public_html/xosview clean : @echo "*** Cleaning..." @cd @host_dir@ && $(MAKE) clean @# Only clean the config directory if it exists... @sh -c 'if [ -d config ]; then \ echo "*** Cleaning config directory..."; \ cd config && $(MAKE) clean; fi' rm -f xosview $(OBJS) $(DEPFILES) *~ defaultstring.cc checksource: @# Check that certain unsafe things aren't in any of the @# code. @echo "*** Grep'ing for uses of strcmp, sprintf, strcat, strcmp," @echo " strcasecmp instead of safer strncmp, snprintf, strncat," @echo " strncmp, strncasecmp...." @# If egrep finds no matches, it returns as if it is an @# error. Reverse that error code.... @# We also should not check snprintf.cc, which calls vsprintf. @sh -c 'egrep "strcmp|sprintf|strcat|strcmp|strcasecmp" \ `echo *.cc *.h */*.cc */*.h | sed -e 's/snprintf.cc//'`; \ if [ $$? != 0 ]; then exit 0; else \ echo "*** Bad functions found -- error!"; exit 1; fi' @# Also check that the version in the man page is the @# same as the one in the Makefile, VERS. @echo "*** Checking for consistent version in config/Makefile.top.in and man page..." @# This is a tricky little thing, since both 'make' and @# 'sh' try to deal with the embedded $3 for awk. @sh -c 'manver=`sed -ne 2p xosview.1 | awk \{print\ \\$$3\}`; \ manver2=`sed -ne 3p xosview.1 | awk \{print\ \\$$3\}`; \ if [ x"$$manver" != x"$$manver2" ]; then \ echo "!!! Version mismatch in the man page file xosview.1:"; \ echo " $$manver in SCCS header (line 2),"; \ echo " $$manver2 in title (line 3)."; \ exit 1; \ fi; \ if [ x"$$manver" != x"$(VERS)" ]; then \ echo "!!! Apparent version mismatch: "; \ echo " $(VERS) in config/Makefile.top.in,"; \ echo " $$manver in man page file xosview.1"; exit 1; \ fi' distclean: clean @# Also check _all_ subdirs, not just the configured one, for @# object files. @echo "*** Checking for any missed .o files..." @sh -c 'objects=`find . -name "*.o" -print`; if [ x"$$objects" != x ]; then \ echo "The following object files still need to be removed:";\ echo $$objects; exit 1; fi' @echo "*** Removing all Makefiles..." @rm -f Makefile Makefile.config Makefile.GNU.autodep \ @host_dir@/Makefile config.cache config.log config.status maintainer-clean: distclean rm -f configure @AUTODEPEND@