Jon Stewart on 21 Jun 2002 19:41:03 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [hosers-talk] jon scratches his dandruffy head


> > Anyone know what gives?
> 
> Make determines whether a target should be remade by looking at the 
> modification dates of the files that it depends on. Take a look at the
> Makefile and see what install depends on, and then 'touch' at least one of
> those files. That should coax it to install.


Okay, here are what look to be relevant snippets of Makefile (disclaimer: 
I don't know make):

INSTALL 	= /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA	= ${INSTALL} -m 644

SUBDIRS = h config sbr zotnet mts uip etc man

#default target
all: config.h Makefile all-recursive

all-recursive:
	for subdir in $(SUBDIRS); do \
	 (cd $$subdir && $(MAKE) $MAKEDEFS) all) || exit 1; \
	done

install uninstall:
	for subdir in $(SUBDIRS); do \
	 (cd $$subdir && $(MAKE) $(MAKEDEFS) $@) || exit 1; \
	done

 ---

Ok, I neither know make nor shell, but there are some suspicious things 
here. INSTALL, INSTALL_PROGRAM, and INSTALL_DATA are not referenced 
at all in the makefile after they're defined. So, that seems retarded. And 
I really don't understand why we're doing the same shit as the 
all-recursive target (except using $@ instead of all).


Below is the entire Makefile, for your perusal if you care...

-------------------------
# Generated automatically from Makefile.in by configure.
#
# Makefile for top level of nmh distribution
#
# $Id: Makefile.in,v 1.6 2000/04/14 20:40:31 danh Exp $
#

# nmh version
VERSION = 1.0.4

SHELL = /bin/sh


srcdir = .

# ========== USER CONFIGURATION SECTION ==========
#
# If `make' is executed in the directory containing this Makefile,
# any changes made in this section will override the values of
# these parameters in makefiles in any of the subdirectories.

prefix      = /usr/local/nmh
exec_prefix = ${prefix}

# location of standard commands
bindir      = ${exec_prefix}/bin

# location of support binaries and scripts
libdir      = ${exec_prefix}/lib

# location of nmh configuration and formats files
etcdir      = ${prefix}/etc

# location of man pages
mandir      = ${prefix}/man

# location of incoming mail
mailspool   = /var/mail

# location of mail transport agent
sendmailpath = /usr/sbin/sendmail

# default editor
default_editor = /usr/bin/vi

# default pager
default_pager = /usr/bin/more

CC       = cc
CPPFLAGS = 
DEFS     = -DHAVE_CONFIG_H
CFLAGS   = -Wall -g
LDFLAGS  = -g
LIBS     = 

# ========== YOU SHOULDN'T HAVE TO CHANGE ANYTHING BELOW HERE ==========

# flags passed to recursive makes in subdirectories
MAKEDEFS = CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' DEFS='$(DEFS)' \
CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' LIBS='$(LIBS)' \
prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \
etcdir='$(etcdir)' libdir='$(libdir)' mandir='$(mandir)' \
mailspool='$(mailspool)' sendmailpath='$(sendmailpath)' \
default_editor='$(default_editor)' default_pager='$(default_pager)'

INSTALL         = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA    = ${INSTALL} -m 644

.SUFFIXES:

# all files in this directory included in the distribution
DIST = README README.developers INSTALL MACHINES COPYRIGHT VERSION DIFFERENCES \
       FAQ TODO COMPLETION-ZSH COMPLETION-TCSH MAIL.FILTERING \
       ChangeLog ChangeLog_MH-3_to_MH-6.6 ChangeLog_MH-6.7.0_to_MH-6.8.4.html \
       install-sh mkinstalldirs Makefile.in aclocal.m4 acconfig.h config.h.in \
       configure.in configure stamp-h.in config.sub config.guess

# subdirectories in distribution
SUBDIRS = h config sbr zotnet mts uip etc man

# ========== DEPENDENCIES FOR BUILDING AND INSTALLING ==========

# default target
all: config.h Makefile all-recursive

all-recursive:
	for subdir in $(SUBDIRS); do \
	  (cd $$subdir && $(MAKE) $(MAKEDEFS) all) || exit 1; \
	done

install uninstall:
	for subdir in $(SUBDIRS); do \
	  (cd $$subdir && $(MAKE) $(MAKEDEFS) $@) || exit 1; \
	done

# ========== DEPENDENCIES FOR CLEANUP ==========

mostlyclean: mostlyclean-recursive mostlyclean-local
clean:       clean-recursive       clean-local
distclean:   distclean-recursive   distclean-local
realclean:   realclean-recursive   realclean-local
superclean:  superclean-recursive  superclean-local

mostlyclean-local:
	rm -f *~

clean-local: mostlyclean-local

distclean-local: clean-local
	rm -f Makefile config.h config.status config.log config.cache stamp-h distname

realclean-local: distclean-local

superclean-local: realclean-local
	cd $(srcdir) && rm -f config.h.in stamp-h.in configure

mostlyclean-recursive clean-recursive distclean-recursive realclean-recursive superclean-recursive:
	for subdir in $(SUBDIRS); do \
	  target=`echo $@ | sed 's/-recursive//'`; \
	  (cd $$subdir && $(MAKE) $(MAKEDEFS) $$target) || exit 1; \
	done

# ========== DEPENDENCIES FOR MAINTENANCE ==========

Makefile: Makefile.in config.status
	CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status

config.status: configure VERSION
	./config.status --recheck

configure: configure.in aclocal.m4
	cd $(srcdir) && autoconf

config.h: stamp-h
stamp-h: config.h.in config.status
	CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status

config.h.in: stamp-h.in
stamp-h.in: configure.in acconfig.h aclocal.m4
	cd $(srcdir) && autoheader
	date > $@

# rebuild all autoconf files
reset:
	cd $(srcdir) && autoheader
	cd $(srcdir) && autoconf
	cd $(srcdir) && date > stamp-h.in

# name of new nmh distribution tar file
tarfile = nmh-$(VERSION).tar.gz

# ftp directory location
ftpdir = /ftp/nmh

# file containing name of new nmh distribution
distname:
	@echo nmh-$(VERSION) > distname

# build nmh distribution
distdir = `cat distname`
nmhdist: $(DIST) distname
	@echo "Begin building nmh-$(VERSION) distribution"
	rm -rf $(distdir)
	mkdir $(distdir)
	@chmod 755 $(distdir)
	@echo "Copying distribution files in main directory"
	@for file in $(DIST); do \
	  cp -p $(srcdir)/$$file $(distdir); \
	done
	@for subdir in $(SUBDIRS); do \
	  mkdir $(distdir)/$$subdir; \
	  chmod 755 $(distdir)/$$subdir; \
	  (cd $$subdir && $(MAKE) $@) || exit 1; \
	done
	chmod -R a+r $(distdir)
	tar chf - $(distdir) | gzip -c > $(tarfile)
	rm -rf $(distdir) distname
	@echo "Done building nmh-$(VERSION) distribution"

# release a new nmh distribution into ftp directory
nmhrelease:
	rm -f $(ftpdir)/$(tarfile)
	rm -f $(ftpdir)/nmh.tar.gz
	mv $(tarfile) $(ftpdir)/$(tarfile)
	cd $(ftpdir) && ln -s $(tarfile) nmh.tar.gz
	cd $(ftpdir) && md5sum *.gz > MD5SUM

-- 
Jon Stewart
stew1@xxxxxxxxxxx

"and dropping a barbell, he points to the sky, saying 'the sun's not 
yellow, it's chicken.'"

			-- Bob Dylan
_______________________________________________
hosers-talk mailing list
hosers-talk@xxxxxxxxxxx
http://lists.ellipsis.cx/mailman/listinfo/hosers-talk