On Sunday 13 June 2010 03:04, Jose Guzman wrote:
>
> Let me know the solution to the makefile problem, I am also interested
> in compiling from the sources, and found problems with the library Vector.o
Attached are a Makefile that works on my machine (CentOS 4.8) and a modified
libI77/f2cstart.c (commented out redefine of main(); main() is defined in
my_rhs.c in the parent directory).
I have no means to test the 64-bit version, but the 32-bit version works here.
I tested only the local build (not 'make install') and there are no
guarantees that this will work on any particular Linux distribution, but it
should work on most.
Testing and feedback greatly appreciated.
Jeff
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org
/* STARTUP PROCEDURE FOR UNIX FORTRAN PROGRAMS */
#include "stdio.h"
#include "signal.h"
#ifndef SIGIOT
#define SIGIOT SIGABRT
#endif
#ifdef NO__STDC
#define ONEXIT onexit
extern void f_exit();
#else
#ifdef __STDC__
#include "stdlib.h"
extern void f_exit(void);
#ifndef NO_ONEXIT
#define ONEXIT atexit
extern int atexit(void (*)(void));
#endif
#else
#ifndef NO_ONEXIT
#define ONEXIT onexit
extern void f_exit();
#endif
#endif
#endif
static void sigdie(s, kill)
register char *s;
int kill;
{
/* print error message, then clear buffers */
fflush(stderr);
fprintf(stderr, "%s\n", s);
f_exit();
fflush(stderr);
if(kill)
{
/* now get a core */
signal(SIGIOT, 0);
abort();
}
else
exit(1);
}
static void sigfdie(n)
{
sigdie("Floating Exception", 1);
}
static void sigidie(n)
{
sigdie("IOT Trap", 1);
}
static void sigqdie(n)
{
sigdie("Quit signal", 1);
}
static void sigindie(n)
{
sigdie("Interrupt", 0);
}
static void sigtdie(n)
{
sigdie("Killed", 0);
}
int xargc;
char **xargv;
/* main is already defined in my_rhs.c in the parent directory
JLP 2010/06/16*/
#if 0
main(argc, argv)
int argc;
char **argv;
{
xargc = argc;
xargv = argv;
signal(SIGFPE, sigfdie); /* ignore underflow, enable overflow */
signal(SIGIOT, sigidie);
#ifdef SIGQUIT
if( (int)signal(SIGQUIT,sigqdie) & 01) signal(SIGQUIT, SIG_IGN);
#endif
if( (int)signal(SIGINT, sigindie) & 01) signal(SIGINT, SIG_IGN);
signal(SIGTERM,sigtdie);
#ifdef pdp11
ldfps(01200); /* detect overflow as an exception */
#endif
f_init();
#ifndef NO_ONEXIT
ONEXIT(f_exit);
#endif
MAIN__();
#ifdef NO_ONEXIT
f_exit();
#endif
}
#endif /* JLP 2010/06/16 */
# Copyright (C) 1990-2009 Bard Ermentrout
# Edited for Debian GNU/Linux.
DESTDIR =
#BINDIR = $(DESTDIR)/usr/X11R6/bin
BINDIR = $(DESTDIR)/usr/local/bin # Modified for other Linux distributions
DOCDIR = $(DESTDIR)/usr/share/doc/xppaut
# End Debian Edit
#################################
#
# Uncomment the following for 64 bit systems
#64BIT = 1
#
VERSION=6.00
ODES=ode/*.ode ode/*.ani
DOC=xpp_doc.ps xpp_doc.pdf xpp_sum.ps xpp_sum.pdf install.pdf
HELP=help/*.html
# Standard C compiler
#CC= cc
# Use Gnu compiler
CC= gcc
AUTLIBS= -lf2c -lX11 -lm
OTHERLIBS= libcvode.a libf2cm.a
#
##################################
# Standard Linux distributions #
##################################
#CFLAGS= -g -O -DAUTO -DCVODE_YES -DHAVEDLL -DMYSTR=$(VERSION) -I/usr/X11R6/include
CFLAGS= -g -O -m32 -DNON_UNIX_STDIO -DAUTO -DCVODE_YES -DHAVEDLL -DMYSTR=$(VERSION) -I/usr/X11R6/include
LDFLAGS= -m32 -L/usr/X11R6/lib
LIBS= -lX11 -lm -ldl
# NOTE: Recent (RedHat 8) versions of GCC seem to no longer have
# the integer errno, so compile with the -DNOERRNO option as well
#
# some errors with ctype on newer machines HP ITANIUM, eg can be fixed
# with the -DWCTYPE
#
# 64 Bit machines must use a different parser code.
# In the OBJECTS section, replace parser2.o with parserslow2.o
# it is not really that much slower so don't have a cow
#
#################################
# MACOSX #
#################################
#CFLAGS= -g -O -DMACOSX -DAUTO -DCVODE_YES -DMYSTR=$(VERSION) -I/usr/X11R6/include
# LIBS= -lX11 -lm
# LDFLAGS= -L/usr/X11R6/lib
#
#################################
# CYGWIN #
#################################
# CFLAGS= -O -DBGR -DNORAND48 -DSTRUPR -DNOERRNO -DAUTO -DCVODE_YES -DMYSTR=$(VERSION) -I/usr/X11R6/include
#LIBS= -lX11 -lm
#LDFLAGS= -L/usr/X11R6/lib
#
#################################
# SPARC #
#################################
# CFLAGS= -O -DAUTO -DMYSTR=$(VERSION) -DCVODE_YES -I/usr/openwin/include
# LDFLAGS= -L/usr/openwin/lib
# LIBS= -lm -lX11
#
################################
# SUNPro compiler #
################################
# CFLAGS= -O -DSUNPRO -DAUTO -DCVODE_YES -I/usr/openwin/include
# LDFLAGS= -L/usr/openwin/lib
# LIBS= -lm -lX11
#
################################
# SGI #
################################
#CFLAGS= -g -O -DAUTO -DCVODE_YES -DMYSTR=$(VERSION) -I/usr/X11R6/include
# Old SGIs without gcc
#
#CFLAGS= -cckr -O -DAUTO -DMYSTR=$(VERSION) -DCVODE_YES
# LDFLAGS= -L/usr/X11R6/lib
# LIBS= -lm -lX11
#
###############################
# HP #
###############################
#CFLAGS= -g -O -DAUTO -DMYSTR=$(VERSION) -DCVODE_YES -DHAVEDLL -I/usr/X11R6/include
# LDFLAGS= -L/usr/X11R6/lib
# LIBS= -lm -lX11 -ldl
#
###############################
# DEC OSF #
###############################
#
#CFLAGS= -O -DAUTO -DCVODE_YES -DMYSTR=$(VERSION) -Olimit 1000
#
###############################################################
# You can stop messing with it now, the rest is
# probably OkeyDokey
###############################################################
ifdef 64BIT
HEADERS = browse.h form_ode.h gear.h help_defs.h my_pars.h \
newhome.h numerics.h odesol.h parser.h phsplan.h \
shoot.h struct.h volterra.h auto_define.h xpplim.h \
mykeydef.h newpars.h myfonts.h f2c.h menus.h toons.h \
parserslow.h dormpri.h fftn.h autlim.h menudrive.h \
getvar.h kbs.h macdirent.h macsysdirent.h
BITMAPS = bc.bitmap browse.bitmap delay.bitmap eqns.bitmap\
equilib.bitmap graph.bitmap ic.bitmap array.bitmap\
param.bitmap pp.bitmap auto.bitmap aniwin.bitmap \
txtview.bitmap
SOURCES = main.c ggets.c menu.c rubber.c derived.c init_condold.c \
many_pops.c pop_list.c graphics.c dialog_box.c \
numerics.c choice_box.c color.c init_conds.c \
browse.c kinescope.c axes2.c abort.c \
parser2.c storage.c load_eqn.c lunch-new.c \
form_ode.c odesol2.c gear.c eig_list.c \
integrate.c delay_handle.c graf_par.c\
my_ps.c nullcline.c torus.c pp_shoot.c\
lunch.c calc.c adj2.c my_rhs.c dormpri.c\
volterra2.c tabular.c markov.c histogram.c \
autlib1.c autlib2.c autlib3.c autevd.c run_auto.c autpp.c \
diagram.c auto.c flowkm.c comline.c edit_rhs.c do_fit.c \
flags.c del_stab.c stiff.c arrayplot.c array_print.c \
aniparse.c simplenet.c dae_fun.c read_dir.c parser2.c \
kinescope_old.c fftn.c extra.c funexample.c scrngif.c \
kinescope_avi.c aniparse_avi.c nagroutines.c flowkm_small.c \
homsup.c txtread.c menudrive.c rtsafe.c vector.c userbut.c \
lbf_drive.c auto_nox.c auto_x11.c cli.c
#
# WARNING: For 64 bit machines replace parser2.o with parserslow2.o
# in the OBJECTS section!
#
OBJECTS = main.o ggets.o menu.o rubber.o derived.o\
many_pops.o pop_list.o graphics.o dialog_box.o \
numerics.o choice_box.o color.o init_conds.o \
browse.o kinescope.o axes2.o abort.o \
parserslow2.o storage.o load_eqn.o\
form_ode.o odesol2.o gear.o eig_list.o\
integrate.o delay_handle.o graf_par.o dormpri.o\
my_ps.o nullcline.o torus.o pp_shoot.o \
lunch-new.o calc.o adj2.o my_rhs.o read_dir.o\
volterra2.o tabular.o markov.o histogram.o \
comline.o edit_rhs.o do_fit.o flags.o del_stab.o stiff.o \
arrayplot.o array_print.o aniparse.o simplenet.o dae_fun.o \
fftn.o extra.o scrngif.o nagroutines.o homsup.o txtread.o \
menudrive.o userbut.o \
libI77/Version.o libI77/backspace.o libI77/dfe.o libI77/due.o libI77/iio.o libI77/inquire.o libI77/rewind.o libI77/rsfe.o \
libI77/rdfmt.o libI77/sue.o libI77/uio.o libI77/wsfe.o libI77/sfe.o libI77/fmt.o libI77/lio.o libI77/lread.o libI77/open.o \
libI77/close.o libI77/util.o libI77/endfile.o libI77/wrtfmt.o libI77/wref.o libI77/err.o libI77/fmtlib.o libI77/rsne.o libI77/wsne.o \
libI77/fc77.o libI77/f2cstart.o \
cvodesrc/cvode.o cvodesrc/cvdense.o cvodesrc/dense.o cvodesrc/cvband.o \
cvodesrc/band.o cvodesrc/cvdiag.o cvodesrc/cvspgmr.o cvodesrc/spgmr.o \
cvodesrc/iterativ.o cvodesrc/vector.o cvodesrc/llnlmath.o cvodesrc/cv2.o
LIB_OBJECTS = main.o ggets.o menu.o rubber.o derived.o\
many_pops.o pop_list.o graphics.o dialog_box.o \
numerics.o choice_box.o color.o init_conds.o \
browse.o kinescope.o axes2.o abort.o \
parser2.o storage.o load_eqn.o\
form_ode.o odesol2.o gear.o eig_list.o\
integrate.o delay_handle.o graf_par.o dormpri.o\
my_ps.o nullcline.o torus.o pp_shoot.o \
lunch-new.o calc.o adj2.o read_dir.o\
volterra2.o tabular.o markov.o histogram.o \
comline.o edit_rhs.o do_fit.o flags.o del_stab.o stiff.o \
arrayplot.o array_print.o aniparse.o simplenet.o dae_fun.o \
fftn.o extra.o scrngif.o nagroutines.o homsup.o txtread.o \
menudrive.o userbut.o
AUTOOBJ = autlib1.o autlib2.o autlib3.o autevd.o run_auto.o autpp.o \
diagram.o auto_nox.o auto_x11.o flowkm_small.o
else
HEADERS = browse.h form_ode.h gear.h help_defs.h my_pars.h \
newhome.h numerics.h odesol.h parser.h phsplan.h \
shoot.h struct.h volterra.h auto_define.h xpplim.h \
mykeydef.h newpars.h myfonts.h libI77/f2c.h menus.h toons.h \
dormpri.h fftn.h autlim.h menudrive.h \
getvar.h kbs.h macdirent.h macsysdirent.h
BITMAPS = bc.bitmap browse.bitmap delay.bitmap eqns.bitmap\
equilib.bitmap graph.bitmap ic.bitmap array.bitmap\
param.bitmap pp.bitmap auto.bitmap aniwin.bitmap \
txtview.bitmap
SOURCES = main.c ggets.c menu.c rubber.c derived.c init_condold.c \
many_pops.c pop_list.c graphics.c dialog_box.c \
numerics.c choice_box.c color.c init_conds.c \
browse.c kinescope.c axes2.c abort.c \
parser2.c storage.c load_eqn.c lunch-new.c \
form_ode.c odesol2.c gear.c eig_list.c \
integrate.c delay_handle.c graf_par.c\
my_ps.c nullcline.c torus.c pp_shoot.c\
lunch.c calc.c adj2.c my_rhs.c dormpri.c\
volterra2.c tabular.c markov.c histogram.c \
autlib1.c autlib2.c autlib3.c autevd.c run_auto.c autpp.c \
diagram.c auto.c flowkm.c comline.c edit_rhs.c do_fit.c \
flags.c del_stab.c stiff.c arrayplot.c array_print.c \
aniparse.c simplenet.c dae_fun.c read_dir.c parser2.c \
kinescope_old.c fftn.c extra.c funexample.c scrngif.c \
kinescope_avi.c aniparse_avi.c nagroutines.c flowkm_small.c \
homsup.c txtread.c menudrive.c rtsafe.c vector.c userbut.c \
lbf_drive.c auto_nox.c auto_x11.c cli.c
#
# WARNING: For 64 bit machines replace parser2.o with parserslow2.o
# in the OBJECTS section!
#
OBJECTS = main.o ggets.o menu.o rubber.o derived.o\
many_pops.o pop_list.o graphics.o dialog_box.o \
numerics.o choice_box.o color.o init_conds.o \
browse.o kinescope.o axes2.o abort.o \
parser2.o storage.o load_eqn.o\
form_ode.o odesol2.o gear.o eig_list.o\
integrate.o delay_handle.o graf_par.o dormpri.o\
my_ps.o nullcline.o torus.o pp_shoot.o \
lunch-new.o calc.o adj2.o my_rhs.o read_dir.o\
volterra2.o tabular.o markov.o histogram.o \
comline.o edit_rhs.o do_fit.o flags.o del_stab.o stiff.o \
arrayplot.o array_print.o aniparse.o simplenet.o dae_fun.o \
fftn.o extra.o scrngif.o nagroutines.o homsup.o txtread.o \
menudrive.o userbut.o \
libI77/Version.o libI77/backspace.o libI77/dfe.o libI77/due.o libI77/iio.o libI77/inquire.o libI77/rewind.o libI77/rsfe.o \
libI77/rdfmt.o libI77/sue.o libI77/uio.o libI77/wsfe.o libI77/sfe.o libI77/fmt.o libI77/lio.o libI77/lread.o libI77/open.o \
libI77/close.o libI77/util.o libI77/endfile.o libI77/wrtfmt.o libI77/wref.o libI77/err.o libI77/fmtlib.o libI77/rsne.o libI77/wsne.o \
libI77/fc77.o libI77/f2cstart.o \
cvodesrc/cvode.o cvodesrc/cvdense.o cvodesrc/dense.o cvodesrc/cvband.o \
cvodesrc/band.o cvodesrc/cvdiag.o cvodesrc/cvspgmr.o cvodesrc/spgmr.o \
cvodesrc/iterativ.o cvodesrc/vector.o cvodesrc/llnlmath.o cvodesrc/cv2.o
LIB_OBJECTS = main.o ggets.o menu.o rubber.o derived.o\
many_pops.o pop_list.o graphics.o dialog_box.o \
numerics.o choice_box.o color.o init_conds.o \
browse.o kinescope.o axes2.o abort.o \
parser2.o storage.o load_eqn.o\
form_ode.o odesol2.o gear.o eig_list.o\
integrate.o delay_handle.o graf_par.o dormpri.o\
my_ps.o nullcline.o torus.o pp_shoot.o \
lunch-new.o calc.o adj2.o read_dir.o\
volterra2.o tabular.o markov.o histogram.o \
comline.o edit_rhs.o do_fit.o flags.o del_stab.o stiff.o \
arrayplot.o array_print.o aniparse.o simplenet.o dae_fun.o \
fftn.o extra.o scrngif.o nagroutines.o homsup.o txtread.o \
menudrive.o userbut.o
AUTOOBJ = autlib1.o autlib2.o autlib3.o autevd.o run_auto.o autpp.o \
diagram.o auto_nox.o auto_x11.o flowkm_small.o
endif
######################################################################
#
#
xppaut: $(OBJECTS) $(AUTOOBJ)
#
###########################################################
# Okay, here we go
#############################################
$(CC) -DAUTO -o xppaut $(OBJECTS) $(AUTOOBJ) $(LDFLAGS) $(LIBS)
########################################################
########################################################
# Probably never need this but here it is
###########################################################
## shared library method - delete my_fun.o from OBJECTS
# $(CC) -DAUTO -o xppaut $(OBJECTS) $(AUTOOBJ) $(LDFLAGS) libcvode.a libf2cm.a libmyfun.so $(LIBS)
#### You made your own libraries but installed locally (2)
# $(CC) -DAUTO -o xppaut $(OBJECTS) $(AUTOOBJ) $(LDFLAGS) libcvode.a libI77.a libF77.a $(LIBS)
##
#### You have previously installed the f2c libraries
# $(CC) -DAUTO -o xppaut $(OBJECTS) $(AUTOOBJ) $(LDFLAGS) libcvode.a $(AUTLIBS)
#
#
###################################################################
################################################################
mkmyfun:
make -f Makefile.lib
mkI77:
cd libI77 ; make
mkcvode:
cd cvodesrc ; make
mkmkavi:
cd mkavi ; make
#
# Edited for Debian GNU/Linux.
install: xppaut
# Make necessary installation directories
mkdir -p $(BINDIR)
mkdir -p $(DOCDIR)/html
mkdir -p $(DOCDIR)/examples
mkdir -p $(DESTDIR)/usr/X11R6/man/man1
# Put everything home
strip xppaut
cp xppaut $(BINDIR)
cp -r ode* $(DOCDIR)/examples
cp -r help/* $(DOCDIR)/html
cp README *.pdf $(DOCDIR)
cp xppaut.1 $(DESTDIR)/usr/X11R6/man/man1
# End Debian Ed
uninstall:
# Remove everything you created
rm $(BINDIR)/xppaut
rm -r $(DOCDIR)
rm -r $(DESTDIR)/usr/X11R6/man/man1/xppaut.1
# End Debian Ed
##################################################
# Make s stand alone library -must link your rhs
###################################################
xpplib: $(LIB_OBJECTS) $(AUTOOBJ)
(ar rcv libxpp.a $(LIB_OBJECTS) $(AUTOOBJ) cvodesrc/*.o libI77/*.o ; ranlib libxpp.a)
####################################################
# tar file
####################################################
tarfile:
tar cvf xppaut$(VERSION).tar $(SOURCES) $(AUTOSRC) $(HEADERS) $(BITMAPS) default.opt \
xpp_doc.tex README Makefile Makefile.lib Makefile.avi Makefile.old \
ode/*.* xpp_doc.ps xpp_doc.pdf xpp_sum.tex xpp_sum.pdf xpp_sum.ps nullcline_bw.c \
libI77/*.c libI77/*.h libI77/Makefile \
cvodesrc/*.c cvodesrc/*.h cvodesrc/Makefile xppaut.1\
mkavi/*.cc mkavi/*.h mkavi/Makefile mkavi/drive.c help/*.html \
help/odes/*.ode help/odes/*.c install.pdf install.tex LICENSE HISTORY \
Makefile.s2x sbml2xpp.c
gzip xppaut$(VERSION).tar
##############################################
# pack up a binary
##############################################
binary:
strip xppaut;tar zvcf binary.tgz xppaut xppaut.1 $(ODES) $(DOC) $(HELP) README HISTORY LICENSE
##############################################
# clean
##############################################
clean:
rm -f *.o *.a libI77/*.o libI77/*.a cvodesrc/*.o cvodesrc/*.a xppaut
#######################################################
# Documentation
#######################################################
xppdoc:
latex xpp_doc
latex xpp_doc
latex xpp_doc
dvips -o xpp_doc.ps xpp_doc
ps2pdf xpp_doc.ps
latex xpp_sum
latex xpp_sum
dvips -o xpp_sum.ps xpp_sum
ps2pdf xpp_sum.ps