1999-11-17 10:59:06 -08:00
#########################################################################
# #
# Objective Caml #
# #
# Xavier Leroy, projet Cristal, INRIA Rocquencourt #
# #
# Copyright 1999 Institut National de Recherche en Informatique et #
# en Automatique. All rights reserved. This file is distributed #
# under the terms of the GNU Library General Public License. #
# #
#########################################################################
# $Id$
1996-02-13 08:29:09 -08:00
i n c l u d e . . / c o n f i g / M a k e f i l e
1995-07-02 09:42:16 -07:00
1995-07-18 01:41:12 -07:00
CC = $( NATIVECC)
1995-10-10 05:44:52 -07:00
FLAGS = -I../byterun -DNATIVE_CODE -DTARGET_$( ARCH) -DSYS_$( SYSTEM)
CFLAGS = $( FLAGS) -O $( NATIVECCCOMPOPTS)
DFLAGS = $( FLAGS) -g -DDEBUG $( NATIVECCCOMPOPTS)
1998-11-06 07:39:18 -08:00
PFLAGS = $( FLAGS) -pg -O -DPROFILING $( NATIVECCCOMPOPTS)
1995-07-18 01:41:12 -07:00
2001-08-11 10:36:38 -07:00
COBJS = startup.o main.o fail.o roots.o globroots.o signals.o \
1995-07-18 01:41:12 -07:00
misc.o freelist.o major_gc.o minor_gc.o memory.o alloc.o compare.o ints.o \
floats.o str.o array.o io.o extern.o intern.o hash.o sys.o parsing.o \
1997-05-13 07:45:38 -07:00
gc_ctrl.o terminfo.o md5.o obj.o lexing.o printexc.o callback.o weak.o \
2001-08-30 02:01:33 -07:00
compact.o finalise.o custom.o unix.o
1996-02-25 09:53:56 -08:00
1995-07-10 02:48:27 -07:00
ASMOBJS = $( ARCH) .o
1995-07-12 07:27:10 -07:00
1995-07-18 01:41:12 -07:00
OBJS = $( COBJS) $( ASMOBJS)
DOBJS = $( COBJS:.o= .d.o) $( ASMOBJS)
1998-08-06 06:27:38 -07:00
POBJS = $( COBJS:.o= .p.o) $( ASMOBJS:.o= .p.o)
1995-07-10 02:48:27 -07:00
1998-11-06 07:39:18 -08:00
all : libasmrun .a all -$( PROFILING )
1995-07-10 02:48:27 -07:00
libasmrun.a : $( OBJS )
rm -f libasmrun.a
ar rc libasmrun.a $( OBJS)
$( RANLIB) libasmrun.a
libasmrund.a : $( DOBJS )
rm -f libasmrund.a
ar rc libasmrund.a $( DOBJS)
$( RANLIB) libasmrund.a
1998-11-06 07:39:18 -08:00
all-noprof :
all-prof : libasmrunp .a
1998-08-06 06:27:38 -07:00
libasmrunp.a : $( POBJS )
rm -f libasmrunp.a
ar rc libasmrunp.a $( POBJS)
$( RANLIB) libasmrunp.a
1998-11-06 07:39:18 -08:00
install : install -default install -$( PROFILING )
install-default :
cp libasmrun.a $( LIBDIR) /libasmrun.a
cd $( LIBDIR) ; $( RANLIB) libasmrun.a
install-noprof :
1999-01-27 02:52:54 -08:00
rm -f $( LIBDIR) /libasmrunp.a; ln -s libasmrun.a $( LIBDIR) /libasmrunp.a
1998-11-06 07:39:18 -08:00
install-prof :
cp libasmrunp.a $( LIBDIR) /libasmrunp.a
cd $( LIBDIR) ; $( RANLIB) libasmrunp.a
1995-07-21 02:03:58 -07:00
1996-07-03 11:39:36 -07:00
power.o : power -$( SYSTEM ) .o
cp power-$( SYSTEM) .o power.o
1996-07-03 09:14:11 -07:00
1998-08-17 03:01:56 -07:00
power.p.o : power -$( SYSTEM ) .o
cp power-$( SYSTEM) .o power.p.o
1998-08-17 02:34:50 -07:00
1996-07-24 05:58:12 -07:00
main.c : ../byterun /main .c
ln -s ../byterun/main.c main.c
1995-07-18 02:45:16 -07:00
misc.c : ../byterun /misc .c
ln -s ../byterun/misc.c misc.c
freelist.c : ../byterun /freelist .c
ln -s ../byterun/freelist.c freelist.c
major_gc.c : ../byterun /major_gc .c
ln -s ../byterun/major_gc.c major_gc.c
minor_gc.c : ../byterun /minor_gc .c
ln -s ../byterun/minor_gc.c minor_gc.c
memory.c : ../byterun /memory .c
ln -s ../byterun/memory.c memory.c
alloc.c : ../byterun /alloc .c
ln -s ../byterun/alloc.c alloc.c
1998-04-06 02:09:22 -07:00
array.c : ../byterun /array .c
ln -s ../byterun/array.c array.c
1995-07-18 02:45:16 -07:00
compare.c : ../byterun /compare .c
ln -s ../byterun/compare.c compare.c
ints.c : ../byterun /ints .c
ln -s ../byterun/ints.c ints.c
floats.c : ../byterun /floats .c
ln -s ../byterun/floats.c floats.c
str.c : ../byterun /str .c
ln -s ../byterun/str.c str.c
io.c : ../byterun /io .c
ln -s ../byterun/io.c io.c
extern.c : ../byterun /extern .c
ln -s ../byterun/extern.c extern.c
intern.c : ../byterun /intern .c
ln -s ../byterun/intern.c intern.c
hash.c : ../byterun /hash .c
ln -s ../byterun/hash.c hash.c
sys.c : ../byterun /sys .c
ln -s ../byterun/sys.c sys.c
parsing.c : ../byterun /parsing .c
ln -s ../byterun/parsing.c parsing.c
gc_ctrl.c : ../byterun /gc_ctrl .c
ln -s ../byterun/gc_ctrl.c gc_ctrl.c
terminfo.c : ../byterun /terminfo .c
ln -s ../byterun/terminfo.c terminfo.c
1995-10-10 05:44:52 -07:00
md5.c : ../byterun /md 5.c
ln -s ../byterun/md5.c md5.c
1995-07-18 02:45:16 -07:00
obj.c : ../byterun /obj .c
ln -s ../byterun/obj.c obj.c
1996-02-25 09:53:56 -08:00
lexing.c : ../byterun /lexing .c
ln -s ../byterun/lexing.c lexing.c
1996-11-07 05:12:16 -08:00
printexc.c : ../byterun /printexc .c
ln -s ../byterun/printexc.c printexc.c
1996-11-08 06:44:00 -08:00
callback.c : ../byterun /callback .c
ln -s ../byterun/callback.c callback.c
1997-02-24 11:55:55 -08:00
weak.c : ../byterun /weak .c
ln -s ../byterun/weak.c weak.c
1997-05-13 07:45:38 -07:00
compact.c : ../byterun /compact .c
ln -s ../byterun/compact.c compact.c
2000-01-07 08:51:58 -08:00
finalise.c : ../byterun /finalise .c
ln -s ../byterun/finalise.c finalise.c
2000-02-10 06:04:59 -08:00
custom.c : ../byterun /custom .c
ln -s ../byterun/custom.c custom.c
1997-11-17 02:39:01 -08:00
meta.c : ../byterun /meta .c
ln -s ../byterun/meta.c meta.c
2001-08-11 10:36:38 -07:00
globroots.c : ../byterun /globroots .c
ln -s ../byterun/globroots.c globroots.c
2001-08-30 02:01:33 -07:00
unix.c : ../byterun /unix .c
ln -s ../byterun/unix.c unix.c
dynlink.c : ../byterun /dynlink .c
ln -s ../byterun/dynlink.c dynlink.c
1995-07-18 02:45:16 -07:00
1998-04-06 02:09:22 -07:00
LINKEDFILES = misc.c freelist.c major_gc.c minor_gc.c memory.c alloc.c array.c \
1996-04-30 07:53:58 -07:00
compare.c ints.c floats.c str.c io.c extern.c intern.c hash.c sys.c \
1997-02-24 11:55:55 -08:00
parsing.c gc_ctrl.c terminfo.c md5.c obj.c lexing.c printexc.c callback.c \
2001-08-30 02:01:33 -07:00
weak.c compact.c finalise.c meta.c custom.c main.c globroots.c unix.c \
dynlink.c
1996-04-30 07:53:58 -07:00
clean ::
rm -f $( LINKEDFILES)
2000-04-21 06:33:34 -07:00
# For HPUX, we can't use gcc as ASPP because it may have been configured with
# the vendor's assembler
hppa.o : hppa .S
gcc -traditional -E -DSYS_$( SYSTEM) -o hppa.s hppa.S
gas -o hppa.o hppa.s || { rm -f hppa.s; exit 2; }
rm -f hppa.s
1998-08-06 06:27:38 -07:00
.SUFFIXES : .S .d .o .p .o
1995-07-02 09:42:16 -07:00
1995-10-31 01:27:04 -08:00
.S.o :
2001-02-21 19:37:29 -08:00
$( ASPP) $( ASPPFLAGS) -o $* .o $* .S || \
{ echo "If your assembler produced syntax errors, it is probably unhappy with the" ; echo " preprocessor. Check your assembler, or try producing $* .o by hand. " ; exit 2; }
1995-10-31 01:27:04 -08:00
1998-08-06 06:27:38 -07:00
.S.p.o :
1998-08-06 07:25:24 -07:00
$( ASPP) $( ASPPFLAGS) $( ASPPPROFFLAGS) -o $* .p.o $* .S
1998-08-06 06:27:38 -07:00
1995-07-10 02:48:27 -07:00
.c.d.o :
1995-07-18 01:41:12 -07:00
@ if test -f $* .o; then mv $* .o $* .f.o; else :; fi
$( CC) -c $( DFLAGS) $<
mv $* .o $* .d.o
@ if test -f $* .f.o; then mv $* .f.o $* .o; else :; fi
1995-07-10 02:48:27 -07:00
1998-08-06 06:27:38 -07:00
.c.p.o :
@ if test -f $* .o; then mv $* .o $* .f.o; else :; fi
$( CC) -c $( PFLAGS) $<
mv $* .o $* .p.o
@ if test -f $* .f.o; then mv $* .f.o $* .o; else :; fi
1998-11-18 10:10:53 -08:00
.s.o :
$( ASPP) $( ASPPFLAGS) -o $* .o $* .s
.s.p.o :
$( ASPP) $( ASPPFLAGS) $( ASPPPROFFLAGS) -o $* .p.o $* .s
1995-07-02 09:42:16 -07:00
clean ::
1998-12-09 02:17:28 -08:00
rm -f *.o *.a *~
1995-07-07 05:07:32 -07:00
1999-11-09 06:00:59 -08:00
depend : $( COBJS :.o =.c ) ${LINKEDFILES }
1995-10-10 05:44:52 -07:00
gcc -MM $( FLAGS) *.c > .depend
gcc -MM $( FLAGS) -DDEBUG *.c | sed -e 's/\.o/.d.o/' >> .depend
1998-11-06 07:39:18 -08:00
gcc -MM $( FLAGS) -DDEBUG *.c | sed -e 's/\.o/.p.o/' >> .depend
1995-07-10 02:48:27 -07:00
i n c l u d e . d e p e n d