home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 February / CMCD0205.ISO / Linux / octave-2.0.16.92.tar.tar / octave-2.0.16.92.tar.tar / octave-2.0.16.92 / octMakefile.in < prev    next >
Text File  |  2000-08-17  |  7KB  |  247 lines

  1. #
  2. # Makefile for octave
  3. #
  4. # John W. Eaton
  5. # jwe@bevo.che.wisc.edu
  6. # University of Wisconsin-Madison
  7. # Department of Chemical Engineering
  8.  
  9. TOPDIR = .
  10.  
  11. srcdir = @srcdir@
  12. top_srcdir = @top_srcdir@
  13. VPATH = @srcdir@
  14.  
  15. include $(TOPDIR)/Makeconf
  16.  
  17. INSTALL = @INSTALL@
  18. INSTALL_PROGRAM = @INSTALL_PROGRAM@
  19. INSTALL_SCRIPT = @INSTALL_SCRIPT@
  20. INSTALL_DATA = @INSTALL_DATA@
  21.  
  22. CONF_DISTFILES = Makefile Makefile.in octMakefile.in Makeconf.in configure \
  23.     configure.in config.guess config.sub aclocal.m4 config.h.in \
  24.     acconfig.h config.h.bot install-sh
  25.  
  26. DISTFILES = $(CONF_DISTFILES) \
  27.     BUGS COPYING FLEX.patch INSTALL INSTALL.OCTAVE NEWS NEWS.[0-9] \
  28.     PROJECTS README README.Linux README.Windows README.MachTen ROADMAP \
  29.     SENDING-PATCHES THANKS move-if-change octave-sh octave-bug.in \
  30.     install-octave.in mkinstalldirs mkoctfile.in texi2dvi \
  31.     ChangeLog ChangeLog.[0-9]
  32.  
  33. # Complete directory trees to distribute.
  34. DISTDIRS = glob kpathsea readline # plplot
  35.  
  36. # Subdirectories in which to run `make all'.
  37. SUBDIRS = @PLPLOT_DIR@ @READLINE_DIR@ @DLFCN_DIR@ @GLOB_DIR@ \
  38.     kpathsea libcruft liboctave src scripts doc examples
  39.  
  40. # Subdirectories in which to run `make conf-dist'.
  41. CONF_DISTSUBDIRS = src
  42.  
  43. # Subdirectories in which to run `make dist'.
  44. DISTSUBDIRS = libcruft liboctave dlfcn src scripts test doc emacs examples
  45.  
  46. XBINDISTFILES = BUGS COPYING INSTALL INSTALL.OCTAVE NEWS NEWS.[0-9] \
  47.     PROJECTS README README.Linux README.Windows README.MachTen \
  48.     SENDING-PATCHES THANKS octave-sh install-octave mkinstalldirs \
  49.     ChangeLog ChangeLog.[0-9]
  50.  
  51. BINDISTFILES = $(addprefix $(srcdir)/, $(XBINDISTFILES)) \
  52.     octave-bug config.status config.h VERSION ARCH
  53.  
  54. # Subdirectories in which to run `make bin-dist'.
  55. BINDISTSUBDIRS = libcruft liboctave src scripts doc emacs examples
  56.  
  57. # Subdirectories in which to run clean targets.
  58. CLEANSUBDIRS = $(DISTSUBDIRS) @READLINE_DIR@ @GLOB_DIR@ kpathsea
  59.  
  60. DIRS_TO_MAKE = $(bindir) $(libdir) $(octincludedir)/octave $(fcnfiledir) \
  61.   $(octfiledir) $(archlibdir) $(localarchlibdir) \
  62.   `echo $(localfcnfilepath) | awk -F: '{for (i=1; i<=NF; i++) print $$i}'` \
  63.   `echo $(localoctfilepath) | awk -F: '{for (i=1; i<=NF; i++) print $$i}'`
  64.  
  65. all: octave-bug mkoctfile $(SUBDIRS)
  66. .PHONY: all
  67.  
  68. octave-bug: octave-bug.in Makeconf octMakefile
  69.     @$(do-subst-config-vals)
  70.     chmod a+rx $@
  71.  
  72. mkoctfile: mkoctfile.in Makeconf octMakefile
  73.     @$(do-subst-config-vals)
  74.     chmod a+rx $@
  75.  
  76. $(SUBDIRS):
  77.     echo making all in $@
  78.     cd $@ ; $(MAKE) all
  79. .PHONY: $(SUBDIRS)
  80.  
  81. check:
  82.     cd test; $(MAKE) check
  83. .PHONY: check
  84.  
  85. kpathsea.info:
  86.     cd kpathsea ; $(MAKE) kpathsea.info
  87. .PHONY: kpathsea.info
  88.  
  89. octave.info:
  90.     cd doc/interpreter ; $(MAKE) octave.info
  91. .PHONY: octave.info
  92.  
  93. INSTALL.OCTAVE:
  94.     cd doc ; $(MAKE) ../INSTALL.OCTAVE
  95. .PHONY: INSTALL.OCTAVE
  96.  
  97. BUGS:
  98.     cd doc ; $(MAKE) ../BUGS
  99. .PHONY: BUGS
  100.  
  101. install::
  102.     $(top_srcdir)/mkinstalldirs $(DIRS_TO_MAKE)
  103.     rm -f $(bindir)/octave-bug
  104.     $(INSTALL_SCRIPT) octave-bug $(bindir)/octave-bug-$(version)
  105.     cd $(bindir) ; $(LN_S) octave-bug-$(version) octave-bug
  106.     rm -f $(bindir)/mkoctfile
  107.     $(INSTALL_SCRIPT) mkoctfile $(bindir)/mkoctfile-$(version)
  108.     cd $(bindir) ; $(LN_S) mkoctfile-$(version) mkoctfile
  109.     $(INSTALL_DATA) config.h $(octincludedir)/octave/config.h
  110.  
  111. maintainer-clean::
  112.     @echo ""
  113.     @echo "************************************************************"
  114.     @echo "*                                                          *"
  115.     @echo "* This command is intended for maintainers to use; it      *"
  116.     @echo "* deletes files that may require special tools to rebuild. *"
  117.     @echo "*                                                          *"
  118.     @echo "************************************************************"
  119.     @echo ""
  120.  
  121. install uninstall tags TAGS::
  122.     @$(subdir-for-command)
  123. .PHONY: install uninstall tags
  124.  
  125. clean mostlyclean distclean maintainer-clean::
  126.     $(foreach d, $(CLEANSUBDIRS), $(do-subdir-for-command))
  127. .PHONY: clean mostlyclean distclean maintainer-clean
  128.  
  129. maintainer-clean distclean::
  130.     rm -f octMakefile octave-bug Makefile Makeconf config.cache \
  131.     config.h config.log config.status Makerules.f77 mk-oct-links \
  132.     mkoctfile Makefrag.f77 install-octave
  133.  
  134. maintainer-clean::
  135.     rm -f configure config.h.in BUGS INSTALL.OCTAVE
  136.  
  137. # Rules for making a source distribution.
  138.  
  139. dist-info-files: INSTALL.OCTAVE BUGS
  140. .PHONY: dist-info-files
  141.  
  142. dist: dist-info-files
  143.     echo octave-$(version) > .fname
  144.     rm -rf `cat .fname`
  145.     mkdir `cat .fname`
  146.     ln $(DISTFILES) `cat .fname`
  147.     for dir in $(DISTDIRS); do ln -s ../$$dir `cat .fname`; done
  148.     for dir in $(DISTSUBDIRS); do \
  149.       mkdir `cat .fname`/$$dir ; \
  150.       cd $$dir ; \
  151.       $(MAKE) dist ; \
  152.       cd .. ; \
  153.     done
  154.     tar chf `cat .fname`.tar `cat .fname`
  155.     rm -rf `cat .fname`
  156.     tar xf `cat .fname`.tar
  157.     find `cat .fname` \( \( -name RCS -a -type d \) \
  158.       -o \( -name CVS -a -type d \) -o \( -name OLD -a -type d \) \
  159.       -o -name "=*" -o -name '*~' -o -name '#*#' -o -name config.log \
  160.       -o -name config.status -o -name config.cache -o -name stamp-h \
  161.       -o -name klibtool.config -o -name c-auto.h \) -print | xargs rm -rf
  162.     find `cat .fname`/readline `cat .fname`/kpathsea \
  163.       `cat .fname`/glob -name Makefile | xargs rm -f
  164.     find `cat .fname`/readline `cat .fname`/glob \
  165.       -name config.h | xargs rm -f
  166.     rm -f `cat .fname`/test/octave.test/*.m
  167.     chmod -R a+rwX `cat .fname`
  168.     tar cf `cat .fname`.tar `cat .fname`
  169.     rm -rf `cat .fname`
  170.     gzip --best `cat .fname`.tar
  171.     rm -f .fname
  172. .PHONY: dist
  173.  
  174. # Rules for making a snapshot.
  175.  
  176. snapshot-version:
  177.     @echo "creating src/version.h"
  178.     @gawk '/#define OCTAVE_VERSION[ \t]*/ { \
  179.       datestring = strftime("%y%m%d", systime()); \
  180.       printf("#define OCTAVE_VERSION \"ss-%s\"\n", datestring); \
  181.       next; \
  182.     } { print $$0 }' src/version.h > src/version.h.new
  183.     @$(top_srcdir)/move-if-change src/version.h.new src/version.h
  184. .PHONY: snapshot-version
  185.  
  186. snapshot: snapshot-version
  187.     $(MAKE) dist
  188. .PHONY: snapshot
  189.  
  190. # Rules for making a dist of just the stuff needed to run configure.
  191.  
  192. conf-dist:
  193.     echo config-dist-$(version) > .fname
  194.     rm -rf `cat .fname`
  195.     mkdir `cat .fname`
  196.     ln $(CONF_DISTFILES) `cat .fname`
  197.     for dir in $(CONF_DISTSUBDIRS); do \
  198.       mkdir `cat .fname`/$$dir ; \
  199.       cd $$dir ; \
  200.       $(MAKE) conf-dist ; \
  201.       cd .. ; \
  202.     done
  203.     tar chf `cat .fname`.tar `cat .fname`
  204.     rm -rf `cat .fname`
  205.     gzip --best `cat .fname`.tar
  206.     rm -f .fname
  207. .PHONY: conf-dist
  208.  
  209. # Rules for making a binary distribution.
  210.  
  211. VERSION:
  212.     echo $(version) > VERSION
  213. .PHONY: VERSION
  214.  
  215. ARCH:
  216.     echo $(canonical_host_type) > ARCH
  217. .PHONY: ARCH
  218.  
  219. binary-dist: VERSION ARCH octave-bug dist-info-files
  220.     echo octave-$(version)-$(canonical_host_type) > .fname
  221.     rm -rf `cat .fname`
  222.     mkdir `cat .fname`
  223.     ln $(BINDISTFILES) `cat .fname`
  224.     for dir in $(BINDISTSUBDIRS); do \
  225.       mkdir `cat .fname`/$$dir ; \
  226.       cd $$dir ; \
  227.       $(MAKE) bin-dist ; \
  228.       cd .. ; \
  229.     done
  230.     tar chf `cat .fname`.tar `cat .fname`
  231.     rm -rf `cat .fname`
  232.     tar xf `cat .fname`.tar
  233.     find `cat .fname` \( \( -name RCS -a -type d \) \
  234.       -o \( -name CVS -a -type d \) -o \( -name OLD -a -type d \) \
  235.       -o -name "=*" -o -name '*~' -o -name '#*#' -o -name Makefile \
  236.       -o -name c-auto.h \) -print | xargs rm -rf
  237.     rm -f `cat .fname`/test/octave.test/*.m
  238.     chmod -R a+rw `cat .fname`
  239.     find `cat .fname` \( -perm 766 -o -perm 676 -o -perm 667 \
  240.       -o -perm 776 -o -perm 677 -o -perm 767 \) -print | \
  241.       xargs chmod a+x scripts
  242.     tar cf `cat .fname`.tar `cat .fname`
  243.     rm -rf `cat .fname`
  244.     gzip --best `cat .fname`.tar
  245.     rm -f .fname
  246. .PHONY: binary-dist
  247.