home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / octave-1.1.1p1-base.tgz / octave-1.1.1p1-base.tar / fsf / octave / octMakefile.in < prev    next >
Text File  |  1995-02-23  |  7KB  |  270 lines

  1. #
  2. # Makefile for octave
  3. #
  4. # John W. Eaton
  5. # jwe@che.utexas.edu
  6. # Department of Chemical Engineering
  7. # The University of Texas at Austin
  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_DATA = @INSTALL_DATA@
  20.  
  21. DISTFILES = BUGS COPYING INSTALL INSTALL.OCTAVE Makefile.in \
  22.     octMakefile.in Makeconf.in NEWS PROJECTS README README.NLP \
  23.     SENDING-PATCHES THANKS f2c-compat.sh flibs.sh cxxlibs.sh \
  24.     configure configure.in config.guess config.sub float-type.c \
  25.     move-if-change octave.sh octave-bug.in octave-mode.el \
  26.     install-sh doinstall.sh mkinstalldirs config.h.in acconfig.h \
  27.     MAKEINFO.PATCH ChangeLog ChangeLog.[0-9]
  28.  
  29. # Complete directory trees to distribute.
  30. DISTDIRS = kpathsea
  31.  
  32. # Subdirectories in which to run `make all'.
  33. SUBDIRS = libcruft liboctave @DLD_DIR@ info readline kpathsea src \
  34.     scripts doc 
  35.  
  36. # Subdirectories in which to run `make dist'.
  37. DISTSUBDIRS = libcruft liboctave info readline src scripts dld test doc 
  38.  
  39. BINDISTFILES = COPYING ChangeLog NEWS README THANKS INSTALL.OCTAVE \
  40.     BUGS PROJECTS octave-bug octave.sh octave-mode.el doinstall.sh \
  41.     mkinstalldirs
  42.  
  43. # Subdirectories in which to run `make dist'.
  44. BINDISTSUBDIRS = scripts doc
  45.  
  46. DIRS_TO_MAKE = $(bindir) $(fcnfiledir) $(octfiledir) $(archlibdir) \
  47.   `echo $(localfcnfilepath) | awk -F: '{for (i=1; i<=NF; i++) print $i}'` \
  48.   `echo $(localoctfilepath) | awk -F: '{for (i=1; i<=NF; i++) print $i}'`
  49.  
  50. all: octave-bug $(SUBDIRS)
  51. .PHONY: all
  52.  
  53. octave-bug: octave-bug.in
  54.     @(sed < $< > $@.tmp \
  55.       -e "s;%VERSION%;${version};" \
  56.       -e "s;%TARGET_HOST_TYPE%;${target_host_type};" \
  57.       -e "s;%F77%;${F77};" \
  58.       -e "s;%FFLAGS%;${FFLAGS};" \
  59.       -e "s;%F2C%;${F2C};" \
  60.       -e "s;%F2CFLAGS%;${F2CFLAGS};" \
  61.       -e "s;%FLIBS%;${FLIBS};" \
  62.       -e "s;%CC%;${CC};" \
  63.       -e "s;%CFLAGS%;${BUG_CFLAGS};" \
  64.       -e "s;%CXX%;${CXX};" \
  65.       -e "s;%CXXFLAGS%;${BUG_CXXFLAGS};" \
  66.       -e "s;%LDFLAGS%;${LDFLAGS};" \
  67.       -e "s;%DEFS%;${UGLY_DEFS};")
  68.     @mv $@.tmp $@
  69.  
  70. $(SUBDIRS):
  71.     echo making all in $@
  72.     cd $@ ; $(MAKE) all
  73. .PHONY: $(SUBDIRS)
  74.  
  75. check:
  76.     cd test; $(MAKE) check
  77. .PHONY: check
  78.  
  79. octave.info:
  80.     cd doc ; $(MAKE) octave.info
  81. .PHONY: octave.info
  82.  
  83. INSTALL.info:
  84.     cd doc ; $(MAKE) ../INSTALL.OCTAVE
  85. .PHONY: INSTALL.info
  86.  
  87. BUGS.info:
  88.     cd doc ; $(MAKE) ../BUGS
  89. .PHONY: BUGS.info
  90.  
  91. install:
  92.     $(top_srcdir)/mkinstalldirs $(DIRS_TO_MAKE)
  93.     $(INSTALL) octave-bug $(bindir)/octave-bug
  94.     for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir; $(MAKE) $@; cd ..; done
  95. .PHONY: install
  96.  
  97. uninstall:
  98.     for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir; $(MAKE) $@; cd ..; done
  99. .PHONY: uninstall
  100.  
  101. tags:
  102.     for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir; $(MAKE) $@; cd ..; done
  103. .PHONY: tags
  104.  
  105. TAGS:
  106.     for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir; $(MAKE) $@; cd ..; done
  107. .PHONY: TAGS
  108.  
  109. clean:
  110.     for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir; $(MAKE) $@; cd ..; done
  111. .PHONY: clean
  112.  
  113. mostlyclean:
  114.     for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir; $(MAKE) $@; cd ..; done
  115. .PHONY: mostlyclean
  116.  
  117. distclean: clean
  118.     for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir; $(MAKE) $@; cd ..; done
  119.     rm -f Makefile config.cache config.log config.status
  120. .PHONY: distclean
  121.  
  122. realclean:
  123.     for dir in $(SUBDIRS); do echo making $@ in $$dir; cd $$dir; $(MAKE) $@; cd ..; done
  124.     rm -f Makefile config.status
  125. .PHONY: realclean
  126.  
  127. # Now that things are under RCS control, we need to do the recursive
  128. # chmod so that the distributed files end up with reasonable modes.
  129.  
  130. # Shared rules for making clean tar files.
  131.  
  132. clean-tar:
  133.     echo octave-$(version) > .fname
  134.     tar xf `cat .fname`.tar
  135.     find `cat .fname` \( \( -name RCS -a -type d \) \
  136.       -o -name '*~' -o -name '#*#' \) -print | xargs rm -rf
  137.     rm -f `cat .fname`/test/octave.test/*.m
  138.     rm -rf `cat .fname`/test/octave.test/npsol
  139.     rm -rf `cat .fname`/test/octave.test/qpsol
  140.     chmod -R a+rwX `cat .fname`
  141.     tar cf `cat .fname`.tar `cat .fname`
  142.     rm -rf `cat .fname` .fname
  143. .PHONY: clean-tar
  144.  
  145. dist-z:
  146.     echo octave-$(version) > .fname
  147.     gzip --best `cat .fname`.tar
  148.     rm -f .fname
  149. .PHONY: dist-z
  150.  
  151. # Rules for making a source distribution.
  152.  
  153. links-for-dist: octave.info INSTALL.info BUGS.info
  154.     echo octave-$(version) > .fname
  155.     rm -rf `cat .fname`
  156.     mkdir `cat .fname`
  157.     ln $(DISTFILES) `cat .fname`
  158.     for dir in $(DISTDIRS); do ln -s ../$$dir `cat .fname`; done
  159.     for dir in $(DISTSUBDIRS); do mkdir `cat .fname`/$$dir; cd $$dir; $(MAKE) dist; cd ..; done
  160. .PHONY: links-for-dist
  161.  
  162. dist-tar: links-for-dist
  163.     tar chf `cat .fname`.tar `cat .fname`
  164.     rm -rf `cat .fname`
  165. .PHONY: dist-tar
  166.  
  167. clean-dist-tar: dist-tar
  168.     $(MAKE) clean-tar
  169. .PHONY: clean-dist-tar
  170.  
  171. dist: clean-dist-tar
  172. .PHONY: dist
  173.  
  174. # Rules for making a binary distribution.
  175.  
  176. links-for-bin-dist: octave.info INSTALL.info BUGS.info
  177.     echo octave-$(version) > .fname
  178.     rm -rf `cat .fname`
  179.     mkdir `cat .fname`
  180.     ln $(BINDISTFILES) `cat .fname`
  181.     for dir in $(BINDISTSUBDIRS); do mkdir `cat .fname`/$$dir; cd $$dir; $(MAKE) dist; cd ..; done
  182. .PHONY: links-for-dist
  183.  
  184. bin-dist-tar: links-for-bin-dist
  185.     -strip src/octave
  186.     echo octave-$(version) > .fname
  187.     ln src/octave `cat .fname`/octave
  188.     -strip scripts/image/octtopnm
  189.     ln scripts/image/octtopnm `cat .fname`/octtopnm
  190.     tar chf `cat .fname`.tar `cat .fname`
  191.     rm -rf `cat .fname`
  192. .PHONY: bin-dist-tar
  193.  
  194. clean-bin-dist-tar: bin-dist-tar
  195.     $(MAKE) clean-tar
  196. .PHONY: clean-bin-dist-tar
  197.  
  198. binary-dist: clean-bin-dist-tar
  199. .PHONY: binary-dist
  200.  
  201. # Rules for making a distribution of the docs.
  202.  
  203. doc-dist-tar:
  204.     echo octave-$(version) > .fname
  205.     echo octave-doc-$(version).tar > .tarfname
  206.     rm -rf `cat .fname`
  207.     mkdir `cat .fname`
  208.     ln README.doc COPYING `cat .fname`
  209.     mkdir `cat .fname`/doc; cd doc; $(MAKE) doc-dist
  210.     tar chf `cat .tarfname` `cat .fname`
  211.     rm -rf `cat .fname`
  212. .PHONY: doc-dist-tar
  213.  
  214. doc-dist: doc-dist-tar
  215. .PHONY: doc-dist
  216.  
  217. # Rules for making a distribution for local use.
  218.  
  219. local-dist-tar: octave.info INSTALL.info BUGS.info
  220.     echo octave-local-$(version) > .fname
  221.     rm -rf `cat .fname`
  222.     mkdir `cat .fname`
  223.     ln $(DISTFILES) `cat .fname`
  224.     for dir in $(DISTDIRS); do ln -s ../$$dir `cat .fname`; done
  225.     for dir in $(DISTSUBDIRS); do mkdir `cat .fname`/$$dir; cd $$dir; $(MAKE) $@; cd ..; done
  226.     tar chf `cat .fname`.tar `cat .fname`
  227.     rm -rf `cat .fname`
  228. .PHONY: local-dist-tar
  229.  
  230. clean-local-dist-tar: local-dist-tar
  231.     $(MAKE) clean-tar
  232. .PHONY: clean-local-dist-tar
  233.  
  234. local-dist: clean-local-dist-tar
  235. .PHONY: local-dist
  236.  
  237. # Rules for splitting a distribution.
  238.  
  239. split-dist:
  240.     echo octave-$(version) > .fname
  241.     split -b 1350k `cat .fname`.tar.gz `cat .fname`.tar.gz-
  242.     rm -f .fname
  243. .PHONY: split-dist
  244.  
  245. split-local-dist:
  246.     echo octave-local-$(version) > .fname
  247.     split -b 1350k `cat .fname`.tar.gz `cat .fname`.tar.gz-
  248.     rm -f .fname
  249. .PHONY: split-local-dist
  250.  
  251. # Rules for making a snapshot.
  252.  
  253. snapshot-z: snapshot-version
  254.     $(MAKE) dist
  255.     $(MAKE) dist-z
  256. .PHONY: snapshot-z
  257.  
  258. snapshot: snapshot-z
  259. .PHONY: snapshot
  260.  
  261. snapshot-version:
  262.     @echo "creating src/version.h"
  263.     @gawk '/#define OCTAVE_VERSION[ \t]*/ { \
  264.       datestring = strftime("%y%m%d", systime()); \
  265.       printf("#define OCTAVE_VERSION \"ss-%s\"\n", datestring); \
  266.       next; \
  267.     } { print $$0 }' src/version.h > src/version.h.new
  268.     @$(top_srcdir)/move-if-change src/version.h.new src/version.h
  269. .PHONY: snapshot-version
  270.