1# $Id: Makefile,v 1.4 2010-02-28 21:32:23 dhmunro Exp $ 2# see README for usage 3 4SHELL=/bin/sh 5 6ALLDIRS=play gist yorick regexp matrix fft doc 7CONFIGDIRS=play yorick 8 9all: yorexe gistexe docs 10 11yorexe: libyor 12 @$(MAKE) -C yorick 13 14gistexe: libgist 15 @$(MAKE) -C gist gist 16 17docs: yorexe 18 @$(MAKE) -C doc docs 19 20# libraries are built in a fixed order: 21# libplay, then libgist, then libyor 22# - the libraries are accumulated, that is, 23# libyor.a contains libgist.a contains libplay.a 24 25libyor: libgist 26 @$(MAKE) -C regexp libyor 27 @$(MAKE) -C matrix libyor 28 @$(MAKE) -C fft libyor 29 @$(MAKE) -C yorick libyor 30 31libgist: libplay 32 @$(MAKE) -C gist libgist.a 33 34libplay: Make.cfg 35 @$(MAKE) -C play libplay 36 37LD_STATIC= 38Make.cfg: 39 LD_STATIC=$(LD_STATIC) ./configure 40 41config: distclean 42 @$(MAKE) "LD_STATIC=$(LD_STATIC)" Make.cfg 43 44prefix=. 45Y_PLATFORM=. 46Y_SITE=. 47Y_HOME=. 48ysite: 49 if S="s?^prefix=.*?prefix=\"$(prefix)\"?;\ 50 s?^Y_PLATFORM=.*?Y_PLATFORM=\"$(Y_PLATFORM)\"?;\ 51 s?^Y_SITE=.*?Y_SITE=\"$(Y_SITE)\"?;\ 52 s?^Y_HOME=.*?Y_HOME=\"$(Y_HOME)\"?";\ 53 sed -e "$$S" ysite.sh >ysite.sh1; then mv ysite.sh1 ysite.sh; fi 54 @if test -r ysite.grp; then chmod g+w ysite.sh; fi 55 56reloc: 57 $(MAKE) Y_HOME=relocate ysite 58 59clean:: 60 @rm -f Make.del yorapi.def 61 @if test ! -r Make.cfg; then touch Make.cfg Make.del; fi 62 @for d in $(ALLDIRS); do ( $(MAKE) -C $$d TGT=exe clean; ); done 63 @if test -r Make.del; then rm -f Make.cfg Make.del; fi 64 rm -f *~ '#'* *.o cfg* ysite.sh? core* *.core a.out 65 rm -f i/*~ i0/*~ i-start/*~ g/*~ extend/*~ 66 rm -rf relocate 67 68distclean:: 69 @touch Make.cfg 70 @for d in $(ALLDIRS); do ( $(MAKE) -C $$d TGT=exe distclean; ); done 71 rm -f *~ '#'* *.o cfg* Make.* ysite.sh? core* *.core a.out 72 rm -f i/*~ i0/*~ i-start/*~ g/*~ extend/*~ 73 rm -rf relocate 74 75siteclean: distclean 76 @rm -f ysite.grp 77 @$(MAKE) prefix=. Y_PLATFORM=. Y_SITE=. Y_HOME=relocate ysite 78 79 80check: 81 @$(MAKE) -C yorick check 82 83INSTALL_ROOT= 84Y_BINDIR= 85Y_DOCDIR= 86install: yorexe gistexe docs 87 ./instally.sh +both "$(INSTALL_ROOT)" "$(Y_BINDIR)" "$(Y_DOCDIR)" 88 89install1: yorexe gistexe 90 ./instally.sh +home "$(INSTALL_ROOT)" "$(Y_BINDIR)" "$(Y_DOCDIR)" 91 92uninstall: 93 ./instally.sh -both "$(INSTALL_ROOT)" "$(Y_BINDIR)" "$(Y_DOCDIR)" 94 95uninstall1: 96 ./instally.sh -home "$(INSTALL_ROOT)" "$(Y_BINDIR)" "$(Y_DOCDIR)" 97 98dist: siteclean 99 W=`pwd`;N=`basename "$$W"`;R=`tail -n 1 VERSION`;cd ..;\ 100 tar cvf - $$N|gzip - >$$N.$$R.tgz; 101 102# Usage: make YGROUP=altgrp sharable 103# default group is "yorick", affects instally.sh 104YGROUP=yorick 105sharable: 106 @rm -f ysite.grp 107 echo "$(YGROUP)" >ysite.grp 108 chgrp -R $(YGROUP) . 109 chmod -R g+w . 110 find . -type d | xargs chmod g+s 111 112relocatable: siteclean 113 @rm -rf relocate 114 $(MAKE) Y_HOME=relocate ysite 115 $(MAKE) install 116 cp install.rel relocate/README 117 cp emacs/yorick.el relocate 118 mkdir relocate/contrib 119 W=`pwd`;N=`basename "$$W"`;R=`tail -n 1 VERSION`;\ 120 mv relocate $$N-$$R;tar cvf - $$N-$$R|gzip - >$$N-$$R.tgz;\ 121 rm -rf $$N-$$R 122 123dumpconfig: 124 @$(MAKE) -C yorick dumpconfig 125 126# targets for ./configure 127echocc: 128 echo "$(CC)" >cfg.tmp 129echorl: 130 echo "$(RANLIB)" >cfg.tmp 131echoar: 132 echo "$(AR)" >cfg.tmp 133echoml: 134 echo "$(MATHLIB)" >cfg.tmp 135pkgconfig: 136 @for d in $(CONFIGDIRS); do ( $(MAKE) -C $$d config; ); done 137