# 1a Unpacking under Windows. # Put the following files in the same directory: # makefile # vibrant.zip # victor.zip # yuri.zip # examples.zip # dev_man.zip (developer's guide) # Unpack each file: # pkunzip -d -e -o file.zip # (note that -d option restores the directory structures). # 1b Unpacking and compiling Vibrant under Unix. # Make a directory, say content, # cd content # put content.tar.gz here # mkdir vibrant (under content!) # cd vibrant # put vibrant.tar.gz here # gunzip vibrant.tar.gz # tar -xvf vibrant.tar # cd build # source ../make/viball.xxx # here xxx specifies the platform and may be: # sgi -Silicon graphics, # sol - Sun solaris, # lnx - Linux, # alf - Dec alpha, # hp - HP # aix - IBM RS 6000. # cd ../.. # gunzip content.tar.gz # tar -xvf content.tar # cd content # 2. Compiling Vibrant for Windows # cd vibrant\make # then read the _howto_.dos file for instuctions. # Compilation is fairly easy. # 3. To compile Content for specific platform set appropriate variable # below to empty string, e.g. WINNT= # All other variavle should be set to non-empty strings. # Then compile: # make win # 4. Optimized version of Content (without Debug menu, memory tracing etc. # is build with the -DINSTALL option. This is the default. # To build debug version remove or change the option, e.g. -DNOINSTALL. # Important: the whole Content must be compiled with the same option. # The following command removes all .obj, .dll and .exe files # and may be used before full recompilation: # make winerase # 5. To compile Content for Unix comment (by putting # characters) # three lines under WINWT heading. # These are: # !include # !ifdef # !endif # Platform variables; only one must has empty value SGI=no SUN=no HP =no DEC=no LIN=no AIX=no WIN=no # Windows 1.3 - no longer supported WINNT= # Some macros (default for unix, redefined for Windows) VIBRANT=../../vibrant SEP=/ COPY=cp DEL=rm LIBPRE=lib # Unix/Windows command tags; they must have empty values UCOM= WCOM= #*******# # SGI # #*******# # DEBUG=-g3 or OPTIMIZE=-O2 #$(SGI)DEBUG=-g3 $(SGI)OPTIMIZE=-O2 $(SGI)INCLUDE= -I $(VIBRANT)/include $(SGI)LIBCORE= -L $(VIBRANT)/lib -lncbi $(SGI)LIBVIB= -L $(VIBRANT)/lib -lvibrant $(LIBCORE) $(SGI)OPTIONS= $(DEBUG) -fullwarn $(INCLUDE) $(OPTIMIZE) -DWIN_MOTIF -Xcpluscomm -DINSTALL $(SGI)OPTIONSC= -c $(OPTIONS) $(SGI)OPTIONSCPP= $(OPTIONSC) $(SGI)LDOPT= -shared $(SGI)SPECLIB= $(SGI)CURDIRLIB= -L . $(SGI)CPPEXT=.cc $(SGI)OEXT=.o $(SGI)REXT= $(SGI)DLEXT=.so $(SGI)DIFEXT=.del $(SGI)LIBEXT=.a $(SGI)C=cc $(SGI)CPP=CC $(SGI)LD=ld $(SGI)MATH=-lm $(SGI)RO= $(SGI)POSTCC=echo $(SGI)POSTLD=echo #*******# # SUN # #*******# # DEBUG=-g or OPTIMIZE=-O #$(SUN)DEBUG=-g $(SUN)OPTIMIZE=-O $(SUN)INCLUDE= -I $(VIBRANT)/include -I /usr/dt/include -I /usr/openwin/include $(SUN)LIBCORE= -L $(VIBRANT)/lib -lncbi $(SUN)LIBVIB= -L $(VIBRANT)/lib -lvibrant $(LIBCORE) -L /usr/ccs/lib -L /usr/openwin/lib $(SUN)OPTIONS= $(DEBUG) $(INCLUDE) $(OPTIMIZE) -DWIN_MOTIF -w -DINSTALL $(SUN)OPTIONSC= -c $(OPTIONS) $(SUN)OPTIONSCPP= $(OPTIONSC) $(SUN)LDOPT= -G $(SUN)SPECLIB= /lib/libresolv.so.1 -lsocket -lrpcsvc -lnsl -lthread -lgen -ldl -L /usr/dt/lib -lXm $(SUN)CURDIRLIB= -L . $(SUN)CPPEXT=.cc $(SUN)OEXT=.o $(SUN)REXT= $(SUN)DLEXT=.so $(SUN)DIFEXT=.del $(SUN)LIBEXT=.a $(SUN)C=cc $(SUN)CPP=c++ $(SUN)LD=/usr/ccs/bin/ld $(SUN)MATH=-lm $(SUN)RO= $(SUN)POSTCC=echo $(SUN)POSTLD=echo #******# # HP # #******# # DEBUG=-g or OPTIMIZE=-O # NOTE: in a case $(MATH) could not be find try -l:libm.sl instead # #$(HP)DEBUG=-g $(HP)OPTIMIZE=-O $(HP)INCLUDE= -I $(VIBRANT)/include -I /usr/include/Motif1.2 -I/usr/include/X11R5 $(HP)LIBCORE= -L $(VIBRANT)/lib -lncbi $(HP)LIBVIB= -L $(VIBRANT)/lib -lvibrant $(LIBCORE) -L /usr/lib/X11R5 -L /usr/lib/Motif1.2 $(HP)OPTIONS= $(DEBUG) +z $(INCLUDE) $(OPTIMIZE) -DWIN_MOTIF -Aa -D_HPUX_SOURCE -w -DINSTALL $(HP)OPTIONSC= -c $(OPTIONS) $(HP)OPTIONSCPP= $(OPTIONSC) $(HP)LDOPT= -b $(HP)SPECLIB= -ldld $(HP)CURDIRLIB= -L . $(HP)CPPEXT=.cc $(HP)OEXT=.o $(HP)REXT= $(HP)DLEXT=.sl $(HP)DIFEXT=.del $(HP)LIBEXT=.a $(HP)C=cc $(HP)CPP=CC $(HP)LD=ld $(HP)MATH=-l:libm$(DLEXT) -L /usr/lib/pa1.1 -l:libcl$(DLEXT) $(HP)RO= $(HP)POSTCC=echo $(HP)POSTLD=echo #**********************# # DEC (Alpha, OSF/1) # #**********************# # DEBUG=-g3 or OPTIMIZE=-O2 #$(DEC)DEBUG=-g2 $(DEC)OPTIMIZE=-O2 $(DEC)INCLUDE= -I$(VIBRANT)/include $(DEC)LIBCORE= -L$(VIBRANT)/lib -lncbi $(DEC)LIBVIB= -L$(VIBRANT)/lib -lvibrant $(LIBCORE) $(DEC)OPTIONS= -std -Olimit 1200 $(DEBUG) $(INCLUDE) $(OPTIMIZE) -DWIN_MOTIF -DINSTALL $(DEC)OPTIONSC= -c $(OPTIONS) $(DEC)OPTIONSCPP= -c $(DEBUG) $(INCLUDE) $(OPTIMIZE) -DWIN_MOTIF $(DEC)LDOPT= -shared $(DEC)SPECLIB= $(DEC)CURDIRLIB= -L. $(DEC)CPPEXT=.cc $(DEC)OEXT=.o $(DEC)REXT= $(DEC)DLEXT=.so $(DEC)DIFEXT=.del $(DEC)LIBEXT=.a $(DEC)C=cc $(DEC)CPP=c++ $(DEC)LD=ld $(DEC)MATH=-lm -lc $(DEC)RO=-call_shared -depth_ring_search $(DEC)POSTCC=echo $(DEC)POSTLD=echo #*********# # LINUX # #*********# # DEBUG=-g or OPTIMIZE=-O2 #$(LIN)DEBUG=-g $(LIN)OPTIMIZE=-O2 $(LIN)INCLUDE= -I $(VIBRANT)/include -I /usr/X11R6/include $(LIN)LIBCORE= -L $(VIBRANT)/lib -lncbi $(LIN)LIBVIB= -L $(VIBRANT)/lib -lvibrant $(LIBCORE) -L /usr/X11R6/lib -lXext -ldl $(LIN)OPTIONS= $(DEBUG) $(INCLUDE) $(OPTIMIZE) -DWIN_MOTIF -fPIC -DINSTALL $(LIN)OPTIONSC= -c $(OPTIONS) $(LIN)OPTIONSCPP= $(OPTIONSC) $(LIN)LDOPT= -shared -Wl,-soname,$@ $(LIN)SPECLIB= $(LIN)CURDIRLIB= -L . $(LIN)CPPEXT=.cc $(LIN)OEXT=.o $(LIN)REXT= $(LIN)DLEXT=.so $(LIN)DIFEXT=.del $(LIN)LIBEXT=.a $(LIN)C=cc $(LIN)CPP=c++ $(LIN)LD=cc $(LIN)MATH=-lm $(LIN)RO= $(LIN)POSTCC=echo $(LIN)POSTLD=echo #****************# # AIX (IBM RS) # #****************# # DEBUG=-g or OPTIMIZE=-O2 #$(AIX)DEBUG=-g $(AIX)OPTIMIZE=###-O2 With this dbalan falls into infinite loop $(AIX)INCLUDE= -I $(VIBRANT)/include $(AIX)LIBCORE= -L $(VIBRANT)/lib -lncbi $(AIX)LIBVIB= -L $(VIBRANT)/lib -lvibrant $(LIBCORE) $(AIX)OPTIONS= -qattr -qflttrap $(DEBUG) $(INCLUDE) $(OPTIMIZE) -DWIN_MOTIF -DINSTALL $(AIX)OPTIONSC= -c $(OPTIONS) $(AIX)OPTIONSCPP= $(OPTIONSC) $(AIX)LDOPT= -W l,-bM:SRE -W l,-bE:$*.exp -W l,-berok $(AIX)SPECLIB=-lsvld $(AIX)CURDIRLIB= -L . $(AIX)CPPEXT=.cc $(AIX)OEXT=.o $(AIX)REXT= $(AIX)DLEXT=.so $(AIX)DIFEXT=.del $(AIX)LIBEXT=.a $(AIX)C=cc $(AIX)CPP=cc -+ $(AIX)LD=cc $(AIX)MATH=-lm $(AIX)RO= $(AIX)POSTCC=awk '/extern function/ { print $$1 }' $*.lst >$*.exp ; rm $*.lst $(AIX)POSTLD=rm $*.exp #***************************# # WIN (3.1,95 and BC 3.1) # #***************************# $(WIN)BORLAND=\borlandc $(WIN)VIBRANT=\vibrant $(WIN)SEP=\# we need the pound sign (#) here to make $(SEP)==\ $(WIN)COPY=copy $(WIN)DEL=.del $(WIN)LIBPRE= $(WIN)DEBUG= $(WIN)OPTIMIZE=-O2 $(DEBUG) $(WIN)INCLUDE=-I$(VIBRANT)\include;$(BORLAND)\include $(WIN)LIB=-L$(VIBRANT)\lib;$(BORLAND)\lib $(WIN)OPTIONS=-ml -3 -d -ff -f287 -k- $(OPTIMIZE) -DINSTALL $(WIN)OPTIONSC=-c @..\response.del -WE $(WIN)OPTIONSCPP=$(OPTIONSC) -tDe $(WIN)OPTAPP=-WE -tWE @..\response.del $(WIN)OPTLIB=-WDE -tWDE @..\response.del $(WIN)CPPEXT=.cpp $(WIN)OEXT=.obj $(WIN)REXT=.exe $(WIN)DLEXT=.dll $(WIN)DIFEXT=$(OEXT) $(WIN)LIBEXT=.lib $(WIN)C=bcc $(WIN)CPP=bcc #*****************************# # WIN32 (NT,95 and BC 5.01) # #*****************************# $(WINNT)BORLAND_PATH=c:\bc5 $(WINNT)VIBRANT=C:\curcont\vibrant $(WINNT)SEP="\" # we need the pound sign (#) here to make $(SEP)==\ $(WINNT)COPY=copy $(WINNT)DEL=.del $(WINNT)LIBPRE= $(WINNT)DEBUG= $(WINNT)OPTIMIZE=-O2 $(DEBUG) $(WINNT)INCLUDE=-I$(VIBRANT)\include.bwn;$(BORLAND_PATH)\include $(WINNT)LIB=-L$(VIBRANT)\build.b_w;$(BORLAND_PATH)\lib $(WINNT)BWN=1 # for !include !include "$(VIBRANT)\make\make_gen.dos" !ifndef CFLAGS CFLAGS= !endif $(WINNT)OPTIONS=$(CFLAGS) -tWM- -w -w-sig- -DINSTALL #L -v -y -Od $(WINNT)OPTIONSC=-c @..\response.del -tWE $(WINNT)OPTIONSCPP=-c @..\response.del -tWC $(WINNT)OPTAPP=-tWE @..\response.del -c- $(WINNT)OPTLIB=-tWDE @..\response.del -c- -D_RTLDLL -D_WINDLL $(WINNT)CPPEXT=.cpp $(WINNT)OEXT=.obj $(WINNT)REXT=.exe $(WINNT)DLEXT=.dll $(WINNT)DIFEXT=$(OEXT) $(WINNT)LIBEXT=.lib $(WINNT)C=bcc32 $(WINNT)CPP=bcc32 #**********************************************************# .SUFFIXES: $(OEXT) $(REXT) $(DLEXT) .hel .hlp # .c --> .o/.obj .c$(OEXT): $(UCOM) $(C) $(OPTIONSC) $< $(WCOM) $(C) $(OPTIONSC) {$< } # .c --> .so/.sl/.dll .c$(DLEXT): $(UCOM) $(C) $(OPTIONSC) -o $*$(OEXT) $< $(UCOM) $(POSTCC) $(UCOM) $(LD) $(LDOPT) -o $@ $*$(OEXT) $(MATH) $(UCOM) $(POSTLD) $(UCOM) rm $*$(OEXT) $(WCOM) $(C) $(OPTLIB) $*.c # .hel --> .hlp .hel.hlp: $(WCOM) start /wait /b helpcomp $(UCOM) helpcomp #-------------------------------------------------# # Compile all unix: grep -v \(WCOM\) makefile_v >makefile.del cp victor/autodif$(CPPEXT) . cp victor/autodif.c . cp victor/shells.con . make -f makefile.del com chmod g+r,o+r * chmod g+x,o+x setup content chmod g-w,o-w *$(DLEXT) chmod g-w,o-w *.hlp chmod g-w,o-w *.con chmod g-w,o-w *.h chmod g-w,o-w setup content ls -l >setup.log # Compile all win: grep -v \(UCOM\) makefile >makefile.del echo $(OPTIONS) >response.del echo $(INCLUDE) >>response.del echo $(LIB) >>response.del make -f makefile.del com copy victor\autodif$(OEXT) . copy victor\awk_win$(REXT) . com: $(WCOM)cd victor $(WCOM)make -f ..\makefile.del victor $(WCOM)cd .. $(UCOM)cd victor; make -f ../makefile.del victor; cd .. $(COPY) victor$(SEP)setup$(REXT) . $(COPY) victor$(SEP)content$(REXT) . $(COPY) victor$(SEP)*$(DLEXT) . $(COPY) victor$(SEP)*.hlp . $(COPY) victor$(SEP)autodif.h . $(COPY) victor$(SEP)stagen1.h . $(COPY) victor$(SEP)common.h yuri$(SEP). $(COPY) victor$(SEP)corefunc.h yuri$(SEP). $(COPY) victor$(SEP)stagen*.h yuri$(SEP). $(COPY) victor$(SEP)helpcomp$(REXT) yuri$(SEP). $(WCOM)cd yuri $(WCOM)make -f ..\makefile.del yuri $(WCOM)cd .. $(UCOM)cd yuri; make -f ../makefile.del yuri; cd .. $(COPY) yuri$(SEP)*$(DLEXT) . $(COPY) yuri$(SEP)*.h . $(COPY) yuri$(SEP)*.con . $(COPY) yuri$(SEP)*.hlp . $(DEL) _linalg.h $(DEL) _bvpalg.h $(DEL) _rdalg.h $(DEL) _util.h $(DEL) common.h $(DEL) stagen.h $(DEL) corefunc.h $(DEL) *.del # Pack unixpack: tar -cvf retail-content.tar setup content *$(DLEXT) *.h *.con *.hlp examples autodif.c autodif$(CPPEXT) gzip retail-content.tar # Pack winpack: pkzip -u content.zip *.exe *.dll *.h *.con *.hlp *.obj *.pif -xcont0*.* -xtmp*.* pkzip -u content.zip -P examples\Maps\*.* pkzip -u content.zip -P examples\ODEs\*.* pkzip -u content.zip -P examples\PDE1s\*.* pkzip -u content.zip -P examples\DAEs\*.* # Pack sources windevpack: -pkzip -u victor.zip -r -P victor\*.* -pkzip -u yuri.zip -r -P yuri\*.* -pkzip -u examples.zip -r -P examples\*.* -pkzip -u dev_man.zip -r -P dev_man\*.* -pkzip -u vibrant.zip -r -P vibrant\*.* #******************# # Victor's stuff # #******************# VLIB=content VOBJ=content$(OEXT) archive$(OEXT) context$(OEXT) visual$(OEXT) \ datalib$(OEXT) dialog$(OEXT) file$(OEXT) function$(OEXT) \ mainwnd$(OEXT) diagram$(OEXT) utility$(OEXT) \ param$(OEXT) point$(OEXT) large$(OEXT) text$(OEXT) \ userfunc$(OEXT) corefunc$(OEXT) help$(OEXT) inter$(OEXT) \ curve$(OEXT) VDYN=contdiff$(DLEXT) conthelp$(DLEXT) \ contwnum$(DLEXT) \ contwtab$(DLEXT) \ contw1ds$(DLEXT) \ contw2dg$(DLEXT) \ contw3dg$(DLEXT) VHELP=content.hlp \ contwnum.hlp \ contwtab.hlp \ contw1ds.hlp \ contw2dg.hlp \ contw3dg.hlp $(UCOM)VADDS= $(WCOM)VADDS=awk_win$(REXT) victor: setup$(REXT) content$(REXT) helpcomp$(REXT) $(VDYN) $(VHELP) $(VADDS) # setup setup$(REXT) : setup$(OEXT) utility$(OEXT) $(UCOM) $(C) -o setup$(REXT) setup$(OEXT) utility$(OEXT) $(LIBVIB) $(MATH) -lXm -lXt -lX11 $(SPECLIB) $(WCOM) $(C) $(OPTAPP) setup$(OEXT) utility$(OEXT) vibrant$(LIBEXT) ncbi$(LIBEXT) # content content$(REXT) : content$(OEXT) $(LIBPRE)$(VLIB)$(LIBEXT) autodif$(DIFEXT) $(UCOM) $(C) $(RO) -o content$(REXT) content$(OEXT) $(CURDIRLIB) -l$(VLIB) $(LIBVIB) $(MATH) -lXm -lXt -lX11 $(SPECLIB) $(WCOM) $(C) $(OPTAPP) content$(OEXT) $(VLIB)$(LIBEXT) vibrant$(LIBEXT) ncbi$(LIBEXT) $(LIBPRE)$(VLIB)$(LIBEXT) : $(VOBJ) $(UCOM) ar ru $(LIBPRE)$(VLIB)$(LIBEXT) $(VOBJ) $(WCOM) &tlib /P32 $(VLIB)$(LIBEXT) {-+$? } autodif$(DIFEXT) :autodif$(CPPEXT) $(UCOM) cp autodif$(CPPEXT) autodif$(DIFEXT) $(WCOM) $(C) $(OPTIONSC) autodif$(CPPEXT) ### $(WCOM) $(CPP) $(OPTIONSCPP) autodif$(CPPEXT) ### $(UCOM) $(CPP) -o autodif$(OEXT) $(OPTIONSCPP) autodif$(CPPEXT); cp autodif$(OEXT) ../. #for AIX ### $(UCOM) $(POSTCC) ### $(UCOM) $(LD) $(LDOPT) -o autodif$(DLEXT) autodif$(OEXT) $(MATH) ### $(UCOM) $(POSTLD) ### $(UCOM) rm autodif$(OEXT) # helpcomp helpcomp$(REXT): helpcomp.c $(UCOM) $(C) -o helpcomp$(REXT) helpcomp.c $(OPTIONS) $(LIBCORE) $(MATH) $(SPECLIB) $(WCOM) $(C) $(OPTAPP) helpcomp.c vibrant$(LIBEXT) ncbi$(LIBEXT) # awk_win awk_win$(REXT): awk_win.c $(UCOM) $(C) -o awk_win$(REXT) awk_win.c $(OPTIONS) $(LIBCORE) $(MATH) $(SPECLIB) $(WCOM) $(C) $(OPTAPP) -tWC awk_win.c #****************# # Yuri's stuff # #****************# YDYN= _util$(DLEXT) \ _conti$(DLEXT) \ _integr$(DLEXT) _integr1$(DLEXT) \ _integr2$(DLEXT) \ _iter$(DLEXT) \ _linalg$(DLEXT) _bvpalg$(DLEXT) _rdalg$(DLEXT) \ __o$(DLEXT) \ __ep$(DLEXT) \ __lp$(DLEXT) __lp1$(DLEXT) \ __h$(DLEXT) __h1$(DLEXT) __h2$(DLEXT) \ __gh$(DLEXT) __gh1$(DLEXT) \ __bt$(DLEXT) \ __zh$(DLEXT) \ __cp$(DLEXT) \ __dh$(DLEXT) \ __lc$(DLEXT) \ m__o$(DLEXT) \ m__fp$(DLEXT) \ m__lp$(DLEXT) m__lp1$(DLEXT) \ m__pd$(DLEXT) m__pd1$(DLEXT) \ m__ns$(DLEXT) m__ns1$(DLEXT) m__ns2$(DLEXT) \ rd__ss$(DLEXT) \ rd__o$(DLEXT) \ rd_int$(DLEXT) rd_int1$(DLEXT) rd_int2$(DLEXT)\ da__o$(DLEXT) \ dd__o$(DLEXT) YHELP=contds.hlp cont_ode.hlp cont_map.hlp cont_pd1.hlp cont_dae.hlp yuri: $(YDYN) $(YHELP) #******************************************# unixerase: rm -f victor/*$(OEXT) victor/*$(DLEXT) victor/setup victor/content victor/*.hlp victor/helpcomp rm -f yuri/*$(OEXT) yuri/*$(DLEXT) yuri/*.hlp winerase: del victor\*$(OEXT) del victor\*$(DLEXT) del victor\*$(LIBEXT) del victor\*$(REXT) del victor\*.hlp del yuri\*$(OEXT) del yuri\*$(DLEXT) del yuri\*.hlp