caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] CamlLight install on MacOS X
@ 2001-05-12 13:07 Laurent Chéno
  0 siblings, 0 replies; 2+ messages in thread
From: Laurent Chéno @ 2001-05-12 13:07 UTC (permalink / raw)
  To: Caml-list; +Cc: Laurent Chéno

(mon anglais étant très mauvais, je poste en français ; si quelqu'un 
veut traduire, merci !)

Merci à Sébastien Carlier qui m'a aidé dans l'installation de CamlLight 
sur MacOS X.

Je récapitule la manoeuvre suffisante (et nécessaire) :

1. éditer le Makefile, voici ce que doit être la section de 
configuration :

### Configuration section

# Which C compiler to use.
# Performance is often improved if you use gcc 2.x instead of cc.
CC=cc

# Additional options to $(CC).
# If you are using gcc, add -fno-defer-pop.
# This option circumvents a gcc bug on some platforms (680x0, 80386).
OPTS=-fno-defer-pop -traditional-cpp

# Extra libraries that have to be linked with the runtime system.
# The math library "-lm" is linked by default.
# On most machines, nothing else is needed.
# Under Solaris: -lsocket -lnsl
LIBS=

# How to call the C preprocessor on a file that does not have the .c 
extension.
# That's /lib/cpp on most machines, sometimes /usr/bin/cpp,
# and /usr/ccs/lib/cpp under Solaris.
# The -P option suppresses the generation of "# linenum" directives,
# which are not understood by Caml Light.
# The -Dunix option ensures that the symbol "unix" is defined --
# not all Unix C preprocessors define it.
# If your cpp is too fussy, make tools/clprepro and use this:
# CPP=../../src/tools/clprepro -Dunix
# CPP=/lib/cpp -P -Dunix
CPP=/usr/bin/cpp -P -Dunix

# The directory where public executables will be installed
BINDIR=/usr/local/bin

# The directory where the Caml Light standard library will be installed
LIBDIR=/usr/local/lib/caml-light

# The manual section where the manual pages will be installed
MANEXT=1

# The directory where the manual pages will be installed
MANDIR=/usr/local/man/man$(MANEXT)

# Some "make"s need this to ensure that they call the Bourne shell,
# not the C shell. Seems harmless on most other "make"s.
# Try removing this line if you run into trouble.
SHELL=/bin/sh

### End of configuration section

2. ajouter en tête des fichiers src/runtime/main.c et src/runtime/io.c 
la ligne :

#include <unistd.h>


normalement, après, ça roule !

Voici les explications de Sébastien (qui dépasse largement mon niveau 
d'expertise) :

1. Le probleme vient du preprocesseur C de MacOS X qui ne supporte pas
les extenstions de GCC utilisees par l'interpreteur de CamlLight.

2. Le problème était du à la fonction lseek qui sous MacOS X prend
un offset sur 64 bits.  Sans prototypage, le type par défaut du second
argument est int (32 bits)... d'où le problème.


Cordialement,
espérant que cela pourra aider d'autres que moi !

Laurent
--
Laurent Chéno
Prof. de mathématiques en PSI*
et de l'option informatique en MP/MP*
Lycée Louis-le-Grand, Paris

http://pauillac.inria.fr/~cheno/
-------------------
To unsubscribe, mail caml-list-request@inria.fr.  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Caml-list] CamlLight install on MacOS X
@ 2001-05-12  6:28 Laurent Chéno
  0 siblings, 0 replies; 2+ messages in thread
From: Laurent Chéno @ 2001-05-12  6:28 UTC (permalink / raw)
  To: Caml-list

(please excuse my very poor english)

I tried to install CamlLight 0.74 on MacOS X, but this failed.

There is my modified Makefile ;
make configure   worked well ;
make world       failed

Who can help me ?

Thank you in advance,

Laurent

------------------------------- Makefile ----------------------------
### Configuration section

# Which C compiler to use.
# Performance is often improved if you use gcc 2.x instead of cc.
CC=cc

# Additional options to $(CC).
# If you are using gcc, add -fno-defer-pop.
# This option circumvents a gcc bug on some platforms (680x0, 80386).
OPTS=-fno-defer-pop

# Extra libraries that have to be linked with the runtime system.
# The math library "-lm" is linked by default.
# On most machines, nothing else is needed.
# Under Solaris: -lsocket -lnsl
LIBS=

# How to call the C preprocessor on a file that does not have the .c 
extension.
# That's /lib/cpp on most machines, sometimes /usr/bin/cpp,
# and /usr/ccs/lib/cpp under Solaris.
# The -P option suppresses the generation of "# linenum" directives,
# which are not understood by Caml Light.
# The -Dunix option ensures that the symbol "unix" is defined --
# not all Unix C preprocessors define it.
# If your cpp is too fussy, make tools/clprepro and use this:
# CPP=../../src/tools/clprepro -Dunix
# CPP=/lib/cpp -P -Dunix
CPP=/usr/bin/cpp -P -Dunix

# The directory where public executables will be installed
BINDIR=/usr/local/bin

# The directory where the Caml Light standard library will be installed
LIBDIR=/usr/local/lib/caml-light

# The manual section where the manual pages will be installed
MANEXT=1

# The directory where the manual pages will be installed
MANDIR=/usr/local/man/man$(MANEXT)

# Some "make"s need this to ensure that they call the Bourne shell,
# not the C shell. Seems harmless on most other "make"s.
# Try removing this line if you run into trouble.
SHELL=/bin/sh

### End of configuration section
...
...
----------------------------------------------------------------------------------

------------------------------- make 
configure ----------------------------
[localhost:~/tmp/cl74/src] cheno% make configure
cd ../config; sh autoconf "cc -fno-defer-pop "
Checking the sizes of integers and pointers...
OK, this is a regular 32 bit architecture.
The char type is signed. Good!
This is a big-endian architecture.
This architecture has no alignment constraints.
Doubles can be word-aligned.
Function "memmove" is provided and handles overlapping moves correctly.
Function "bcopy" is provided and handles overlapping moves correctly.
Function "memcpy" is provided and handles overlapping moves correctly.
The return type for signal handlers appears to be "void".
Signals have the BSD semantics.
rename() found.
You have BSD sockets.
unistd.h found.
dirent.h found.
mkfifo() found.
getcwd() found.
getwd() found.
getpriority() found.
utime() found.
utimes() found.
dup2() found.
fchmod() found.
truncate() found.
select() found.
symlink() found.
wait3() found.
waitpid() found.
getgroups() found.
POSIX termios found.
Asynchronous I/O are supported.
setitimer() found.
gethostname() found.
uname() found.
gettimeofday() found.
----------------------------------------------------------------------------------

------------------------------- make world ----------------------------
[localhost:~/tmp/cl74/src] cheno% make world
cd runtime; make CC="cc" OPTS="-fno-defer-pop" LIBS="" all
awk -f ../tools/make-jumptbl instruct.h > jumptbl.h
cc -O2 -fno-defer-pop -I..   -c -o interp.o interp.c
jumptbl.h:1: illegal expression, found `&&'
jumptbl.h:2: illegal expression, found `&&'
jumptbl.h:3: illegal expression, found `&&'
..
..
jumptbl.h:250: illegal expression, found `&&'
jumptbl.h:251: illegal expression, found `&&'
interp.c:237: illegal statement, missing `identifier' after `goto'
interp.c:237: syntax error, missing `;' after `*'
..
..
interp.c:918: illegal statement, missing `identifier' after `goto'
interp.c:918: syntax error, missing `;' after `*'
interp.c:936: illegal statement, missing `identifier' after `goto'
interp.c:936: syntax error, missing `;' after `*'
cpp-precomp: warning: errors during smart preprocessing, retrying in 
basic mode
cc -O2 -fno-defer-pop -I..   -c -o misc.o misc.c
cc -O2 -fno-defer-pop -I..   -c -o stacks.o stacks.c
cc -O2 -fno-defer-pop -I..   -c -o fix_code.o fix_code.c
cc -O2 -fno-defer-pop -I..   -c -o main.o main.c
cc -O2 -fno-defer-pop -I..   -c -o fail.o fail.c
cc -O2 -fno-defer-pop -I..   -c -o signals.o signals.c
cc -O2 -fno-defer-pop -I..   -c -o debugcom.o debugcom.c
cc -O2 -fno-defer-pop -I..   -c -o freelist.o freelist.c
cc -O2 -fno-defer-pop -I..   -c -o major_gc.o major_gc.c
cc -O2 -fno-defer-pop -I..   -c -o minor_gc.o minor_gc.c
cc -O2 -fno-defer-pop -I..   -c -o memory.o memory.c
cc -O2 -fno-defer-pop -I..   -c -o alloc.o alloc.c
cc -O2 -fno-defer-pop -I..   -c -o roots.o roots.c
cc -O2 -fno-defer-pop -I..   -c -o compare.o compare.c
cc -O2 -fno-defer-pop -I..   -c -o ints.o ints.c
cc -O2 -fno-defer-pop -I..   -c -o floats.o floats.c
cc -O2 -fno-defer-pop -I..   -c -o str.o str.c
cc -O2 -fno-defer-pop -I..   -c -o io.o io.c
cc -O2 -fno-defer-pop -I..   -c -o extern.o extern.c
cc -O2 -fno-defer-pop -I..   -c -o externcp.o externcp.c
cc -O2 -fno-defer-pop -I..   -c -o intern.o intern.c
cc -O2 -fno-defer-pop -I..   -c -o interncp.o interncp.c
cc -O2 -fno-defer-pop -I..   -c -o hash.o hash.c
cc -O2 -fno-defer-pop -I..   -c -o sys.o sys.c
cc -O2 -fno-defer-pop -I..   -c -o meta.o meta.c
cc -O2 -fno-defer-pop -I..   -c -o parsing.o parsing.c
cc -O2 -fno-defer-pop -I..   -c -o lexing.o lexing.c
cc -O2 -fno-defer-pop -I..   -c -o gc_ctrl.o gc_ctrl.c
sed -n -e '/\/\* ML \*\//s/.* \([a-z0-9_][a-z0-9_]*\) *(.*/\1/p' \
                 compare.c extern.c externcp.c floats.c gc_ctrl.c hash.c 
intern.c interncp.c interp.c ints.c io.c lexing.c meta.c parsing.c str.c 
sys.c > primitives2
sh -c 'if cmp -s primitives primitives2; \
         then rm primitives2; \
         else mv primitives2 primitives; \
         fi'
(echo '#include "mlvalues.h"'; \
  echo '#include "prims.h"'; \
  sed -e 's/.*/extern value &();/' primitives; \
  echo 'c_primitive cprim[] = {'; \
  sed -e 's/.*/  &,/' primitives; \
  echo '  0 };'; \
          echo 'char * names_of_cprim[] = {'; \
  sed -e 's/.*/  "&",/' primitives; \
  echo '  0 };') > prims.c
cc -O2 -fno-defer-pop -I..   -c -o prims.o prims.c
cc -O2 -fno-defer-pop -I.. -o camlrun prims.o interp.o misc.o stacks.o 
fix_code.o main.o fail.o signals.o debugcom.o freelist.o major_gc.o 
minor_gc.o memory.o alloc.o roots.o compare.o ints.o floats.o str.o io.o 
extern.o externcp.o intern.o interncp.o hash.o sys.o meta.o parsing.o 
lexing.o gc_ctrl.o  -lm
rm -f libcaml.a
ar rc libcaml.a interp.o misc.o stacks.o fix_code.o main.o fail.o 
signals.o debugcom.o freelist.o major_gc.o minor_gc.o memory.o alloc.o 
roots.o compare.o ints.o floats.o str.o io.o extern.o externcp.o 
intern.o interncp.o hash.o sys.o meta.o parsing.o lexing.o gc_ctrl.o
if test -f /usr/bin/ranlib -o -f /bin/ranlib; then ranlib libcaml.a; 
else true; fi
cp runtime/camlrun .
cd yacc; make CC="cc" OPTS="-fno-defer-pop" all
cc -O -DNDEBUG -fno-defer-pop   -c -o closure.o closure.c
cc -O -DNDEBUG -fno-defer-pop   -c -o error.o error.c
cc -O -DNDEBUG -fno-defer-pop   -c -o lalr.o lalr.c
cc -O -DNDEBUG -fno-defer-pop   -c -o lr0.o lr0.c
cc -O -DNDEBUG -fno-defer-pop   -c -o main.o main.c
cc -O -DNDEBUG -fno-defer-pop   -c -o mkpar.o mkpar.c
cc -O -DNDEBUG -fno-defer-pop   -c -o output.o output.c
cc -O -DNDEBUG -fno-defer-pop   -c -o reader.o reader.c
cc -O -DNDEBUG -fno-defer-pop   -c -o skeleton.o skeleton.c
cc -O -DNDEBUG -fno-defer-pop   -c -o symtab.o symtab.c
cc -O -DNDEBUG -fno-defer-pop   -c -o verbose.o verbose.c
cc -O -DNDEBUG -fno-defer-pop   -c -o warshall.o warshall.c
cc -O -DNDEBUG -fno-defer-pop -o camlyacc closure.o error.o lalr.o lr0.o 
main.o mkpar.o output.o reader.o skeleton.o symtab.o verbose.o warshall.o
cp yacc/camlyacc .
cd lib; make CPP="/usr/bin/cpp -P -Dunix" all
../camlrun ../camlcomp -stdlib . -O none -g -W arg.mli
Fatal error: the file ../camlcomp is not a bytecode executable file
make[1]: *** [arg.zi] Error 2
make: *** [world] Error 2
-----------------------------------------------------------------------------
-------------------
To unsubscribe, mail caml-list-request@inria.fr.  Archives: http://caml.inria.fr


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2001-05-12 13:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-05-12 13:07 [Caml-list] CamlLight install on MacOS X Laurent Chéno
  -- strict thread matches above, loose matches on Subject: below --
2001-05-12  6:28 Laurent Chéno

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).