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

Reply via email to