# # Toplevel Makefile for STk # # # Copyright © 1993-1999 Erick Gallesio - I3S-CNRS/ESSI # # Permission to use, copy, modify, distribute,and license this # software and its documentation for any purpose is hereby granted, # provided that existing copyright notices are retained in all # copies and that this notice is included verbatim in any # distributions. No written agreement, license, or royalty fee is # required for any of the authorized uses. # This software is provided ``AS IS'' without express or implied # warranty. # # Author: Erick Gallesio [eg@unice.fr] # Creation date: ??-Sep-1993 ??:?? # Last file update: 3-Sep-1999 20:03 (eg) # SHELL = /bin/sh CP = /bin/cp STRIP = strip RANLIB = @RANLIB@ MACHTYPE = @MACHINE@ MP = @MP@.a FLAVOR = @FLAVOR@ prefix = @prefix@ include VERSION include paths all: $(FLAVOR) unix: start tcl-dir mp-dir stack-dir tk-dir snow-dir src-dir stklos-dir ext-dir stop win: start tcl-dir mp-dir stack-dir tk-dir snow-dir src-dir stklos-dir ext-dir stop start: @date > .start-date @/bin/rm -f config.make @echo "# Common startup for all Makefiles" > config.make @echo "# This file is automatically generated" >> config.make @echo "VERSION = $(VERSION)" >> config.make @echo "FLAVOR = $(FLAVOR)" >> config.make @echo "SHELL = $(SHELL)" >> config.make @echo "MACHTYPE = $(MACHTYPE)" >> config.make @echo "prefix = $(prefix)" >> config.make @cat ./paths >> config.make @echo "MACHINE = -DMACHINE=\\\"$(MACHTYPE)\\\"" >> config.make @echo "CC = @CC@" >> config.make @echo "STKCFLAGS = @STKCFLAGS@" >> config.make @echo "STKLDFLAGS = @STKLDFLAGS@" >> config.make @echo "CP = $(CP)" >> config.make @echo "RANLIB = @RANLIB@" >> config.make @echo "STRIP = @STRIP@" >> config.make @echo "XINCLUDES = @XINCLUDES@" >> config.make @echo "XLIBSW = @XLIBSW@" >> config.make @echo "MP = @MP@" >> config.make @echo "DFLGS = @DFLGS@" >> config.make @echo "EOBJ = @EOBJ@" >> config.make @echo "ETKOBJ = @ETKOBJ@" >> config.make @echo "EXTRA_OBJ = @EXTRA_OBJ@" >> config.make @echo "DYNLOAD = @DYNLOAD@" >> config.make @echo "SH_CCFLAGS = @SH_CCFLAGS@" >> config.make @echo "SH_LDFLAGS = @SH_LDFLAGS@" >> config.make @echo "SH_LOADER = @SH_LOADER@" >> config.make @echo "SH_SUFFIX = @SH_SUFFIX@" >> config.make @echo "LIB_MALLOC = @LIB_MALLOC@" >> config.make @echo "LIB_DLD = @LIB_DLD@" >> config.make @echo "STK_LIBRARY = $(libdir)" >> config.make stop: @echo "Make started at `cat .start-date`" @/bin/rm .start-date @echo "Make completed at `date`" tcl-dir: @(echo "make Tcl"; cd Tcl; $(MAKE) $(FLAVOR)) tk-dir: @(echo "make Tk"; cd Tk; $(MAKE) libtk.a) mp-dir: @(echo "make Mp"; cd Mp; $(MAKE) $(MP)) stack-dir: @(echo "make Stack"; cd Stack; $(MAKE)) src-dir: @(echo "make Src"; cd Src; $(MAKE) stk TK="-DUSE_TK") snow-dir: @(echo "make Snow"; cd Snow; $(MAKE) snow TK="-DNO_TK") stklos-dir: @(echo "make STklos"; cd STklos; $(MAKE) stklos) ext-dir: @(echo "Make Extensions"; cd Extensions; $(MAKE) all) doc: @(echo "Make Documentation"; cd Doc; $(MAKE) all) dvi: @(echo "Make Documentation(dvi)"; cd Doc; $(MAKE) dvi) demos: /bin/sh -c "(cd Demos; ../Src/test-stk -f S-scape README.html)" install: install-no-strip @echo "Stripping executables ..." $(STRIP) $(root)$(execdir)/stk $(STRIP) $(root)$(execdir)/snow @echo "" @echo "Installation completed." install-no-strip: clean-before (cd Tcl; $(MAKE) install prefix=$(root)$(prefix)) (cd Tk; $(MAKE) install INSTALL_ROOT=$(root)) (cd Mp; $(MAKE) install prefix=$(root)$(prefix)) (cd Src; $(MAKE) install.stk root=$(root)) (cd Snow; $(MAKE) install.snow root=$(root)) (cd Lib; $(MAKE) install root=$(root)) (cd STklos; $(MAKE) install prefix=$(root)$(prefix)) (cd Extensions; $(MAKE) install prefix=$(root)$(prefix)) (cd Demos; $(MAKE) install root=$(root)) (cd Help; $(MAKE) install prefix=$(root)$(prefix)) (cd Doc; $(MAKE) install prefix=$(root)$(prefix)) (cd Stack; $(MAKE) install prefix=$(root)$(prefix)) install.libs: -if [ ! -d $(root)$(confdir) ] ; then mkdir -p $(root)$(confdir); fi $(CP) config.make $(root)$(confdir) -if [ ! -d $(root)$(incdir) ] ; then mkdir -p $(root)$(incdir); fi /bin/rm -f $(root)$(stkdir)/include (cd $(root)$(stkdir) ; ln -s $(VERSION)/include ./include) (cd Tcl; $(MAKE) install.libs prefix=$(root)$(prefix)) (cd Tk; $(MAKE) install.libs prefix=$(root)$(prefix)) (cd Mp; $(MAKE) install.libs prefix=$(root)$(prefix)) (cd Src; $(MAKE) install.stk.libs root=$(root)) (cd Snow; $(MAKE) install.snow.libs root=$(root)) (cd Stack; $(MAKE) install.libs root=$(root)) chmod 0755 $(root)$(confdir) $(root)$(ardir) $(root)$(confdir)/* $(root)$(ardir)/* @echo "" @echo "Full installation completed." binary-release: install install.man (cd $(prefix)/lib; \ tar cvfz /tmp//STk-$(VERSION)-$(MACHINE).tar.gz stk/$(VERSION)/$(MACHINE)) @echo "The release is in the file /tmp/STk-$(VERSION)-$(MACHINE).tar.gz" @echo "Don't forget to create the file STk-$(VERSION)-$(MACHINE).README" @echo "to describe the content of your archive (a template is given in" @echo "the file BINARY-DISTRIB" common-release: (cd $(prefix)/lib; \ tar cvfz /tmp/STk-$(VERSION)-common.tar.gz stk/$(VERSION)/Help \ stk/$(VERSION)/STk \ stk/$(VERSION)/demos \ stk/$(VERSION)/images \ stk/$(VERSION)/images \ stk/$(VERSION)/man \ stk/man) @echo "Terminé. Le fichier est dans /tmp/STk-$(VERSION)-common.tar.gz" clean-before: @if [ -d $(root)$(prefix)/lib/stk ]; \ then \ echo "*** WARNING:"; \ echo "*** A previous version of STk has already been installed in"; \ echo "*** directory '$(stkdir)'. It is not a problem since"; \ echo "*** several versions can coexist now in this directory"; \ echo "*** However, if you are short in place, or if you don't use "; \ echo "*** a multi architecture file system, cleaning may be a good"; \ echo "*** thing to do."; \ echo "*** (Waiting 10s) " ; \ sleep 10;\ fi @if [ -d $(root)$(prefix)/lib/stk/$(VERSION) ]; \ then \ echo "*** WARNING:"; \ echo "*** This STk version ($(VERSION)) has already been installed "; \ echo "*** on this machine. Should I clean this directory before "; \ echo "*** starting installation of STk-$(VERSION)? [no] " ; \ read a; \ case $$a in \ y*|Y*) echo "Deleting previous installation"; \ /bin/rm -rf $(stkdir)/$(VERSION);; \ *) echo "No cleaning!";; \ esac; \ fi install.man: (cd Doc; $(MAKE) install.man) clean: (cd Tcl; $(MAKE) clean) (cd Tk; $(MAKE) clean) (cd Mp; $(MAKE) clean) (cd Stack; $(MAKE) clean) (cd Src; $(MAKE) clean) (cd Snow; $(MAKE) clean) (cd STklos; $(MAKE) clean) (cd Extensions; $(MAKE) clean) (cd Help; $(MAKE) clean) (cd Doc; $(MAKE) clean) /bin/rm -f core *~ Makefile config.* Src/Makefile cin: @(cat VERSION; prcs checkin -n) ci: @(cat VERSION; prcs checkin)