ocaml/asmrun/Makefile

240 lines
7.3 KiB
Makefile

#########################################################################
# #
# OCaml #
# #
# 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, with #
# the special exception on linking described in file ../LICENSE. #
# #
#########################################################################
include ../config/Makefile
CC=$(NATIVECC)
FLAGS=-I../byterun -DCAML_NAME_SPACE -DNATIVE_CODE \
-DTARGET_$(ARCH) -DMODEL_$(MODEL) -DSYS_$(SYSTEM) $(IFLEXDIR)
CFLAGS=$(FLAGS) $(NATIVECCCOMPOPTS)
DFLAGS=$(FLAGS) -g -DDEBUG $(NATIVECCCOMPOPTS)
PFLAGS=$(FLAGS) -pg -DPROFILING $(NATIVECCPROFOPTS) $(NATIVECCCOMPOPTS)
PICFLAGS=$(FLAGS) $(SHAREDCCCOMPOPTS) $(NATIVECCCOMPOPTS)
COBJS=startup_aux.o startup.o \
main.o fail.o roots.o globroots.o signals.o signals_asm.o \
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 \
gc_ctrl.o terminfo.o md5.o obj.o lexing.o printexc.o callback.o weak.o \
compact.o finalise.o custom.o $(UNIX_OR_WIN32).o backtrace_prim.o \
backtrace.o \
natdynlink.o debugger.o meta.o dynlink.o
ASMOBJS=$(ARCH).o
OBJS=$(COBJS) $(ASMOBJS)
DOBJS=$(COBJS:.o=.d.o) $(ASMOBJS)
POBJS=$(COBJS:.o=.p.o) $(ASMOBJS:.o=.p.o)
PICOBJS=$(COBJS:.o=.pic.o) $(ASMOBJS:.o=.pic.o)
all: libasmrun.a all-$(RUNTIMED) all-$(PROFILING) all-$(SHARED)
libasmrun.a: $(OBJS)
rm -f libasmrun.a
$(ARCMD) rc libasmrun.a $(OBJS)
$(RANLIB) libasmrun.a
all-noruntimed:
.PHONY: all-noruntimed
all-runtimed: libasmrund.a
.PHONY: all-runtimed
libasmrund.a: $(DOBJS)
rm -f libasmrund.a
$(ARCMD) rc libasmrund.a $(DOBJS)
$(RANLIB) libasmrund.a
all-noprof:
all-prof: libasmrunp.a
libasmrunp.a: $(POBJS)
rm -f libasmrunp.a
$(ARCMD) rc libasmrunp.a $(POBJS)
$(RANLIB) libasmrunp.a
all-noshared:
all-shared: libasmrun_pic.a libasmrun_shared.so
libasmrun_pic.a: $(PICOBJS)
rm -f libasmrun_pic.a
$(ARCMD) rc libasmrun_pic.a $(PICOBJS)
$(RANLIB) libasmrun_pic.a
libasmrun_shared.so: $(PICOBJS)
$(MKDLL) -o libasmrun_shared.so $(PICOBJS) $(NATIVECCLIBS)
INSTALL_LIBDIR=$(DESTDIR)$(LIBDIR)
install: install-default install-$(RUNTIMED) install-$(PROFILING) \
install-$(SHARED)
install-default:
cp libasmrun.a $(INSTALL_LIBDIR)/libasmrun.a
cd $(INSTALL_LIBDIR); $(RANLIB) libasmrun.a
.PHONY: install-default
install-noruntimed:
.PHONY: install-noruntimed
install-runtimed:
cp libasmrund.a $(INSTALL_LIBDIR)/libasmrund.a
cd $(INSTALL_LIBDIR); $(RANLIB) libasmrund.a
.PHONY: install-runtimed
install-noprof:
rm -f $(INSTALL_LIBDIR)/libasmrunp.a
ln -s libasmrun.a $(INSTALL_LIBDIR)/libasmrunp.a
.PHONY: install-noprof
install-prof:
cp libasmrunp.a $(INSTALL_LIBDIR)/libasmrunp.a
cd $(INSTALL_LIBDIR); $(RANLIB) libasmrunp.a
.PHONY: install-prof
install-noshared:
.PHONY: install-noshared
install-shared:
cp libasmrun_pic.a $(INSTALL_LIBDIR)/libasmrun_pic.a
cd $(INSTALL_LIBDIR); $(RANLIB) libasmrunp.a
cp libasmrun_shared.so $(INSTALL_LIBDIR)/libasmrun_shared.so
.PHONY: install-prof
main.c: ../byterun/main.c
ln -s ../byterun/main.c main.c
startup_aux.c: ../byterun/startup_aux.c
ln -s ../byterun/startup_aux.c startup_aux.c
backtrace.c: ../byterun/backtrace.c
ln -s ../byterun/backtrace.c backtrace.c
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
array.c: ../byterun/array.c
ln -s ../byterun/array.c array.c
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
md5.c: ../byterun/md5.c
ln -s ../byterun/md5.c md5.c
obj.c: ../byterun/obj.c
ln -s ../byterun/obj.c obj.c
lexing.c: ../byterun/lexing.c
ln -s ../byterun/lexing.c lexing.c
printexc.c: ../byterun/printexc.c
ln -s ../byterun/printexc.c printexc.c
callback.c: ../byterun/callback.c
ln -s ../byterun/callback.c callback.c
weak.c: ../byterun/weak.c
ln -s ../byterun/weak.c weak.c
compact.c: ../byterun/compact.c
ln -s ../byterun/compact.c compact.c
finalise.c: ../byterun/finalise.c
ln -s ../byterun/finalise.c finalise.c
custom.c: ../byterun/custom.c
ln -s ../byterun/custom.c custom.c
meta.c: ../byterun/meta.c
ln -s ../byterun/meta.c meta.c
globroots.c: ../byterun/globroots.c
ln -s ../byterun/globroots.c globroots.c
$(UNIX_OR_WIN32).c: ../byterun/$(UNIX_OR_WIN32).c
ln -s ../byterun/$(UNIX_OR_WIN32).c $(UNIX_OR_WIN32).c
dynlink.c: ../byterun/dynlink.c
ln -s ../byterun/dynlink.c dynlink.c
signals.c: ../byterun/signals.c
ln -s ../byterun/signals.c signals.c
debugger.c: ../byterun/debugger.c
ln -s ../byterun/debugger.c debugger.c
LINKEDFILES=misc.c freelist.c major_gc.c minor_gc.c memory.c alloc.c array.c \
compare.c ints.c floats.c str.c io.c extern.c intern.c hash.c sys.c \
parsing.c gc_ctrl.c terminfo.c md5.c obj.c lexing.c printexc.c callback.c \
weak.c compact.c finalise.c meta.c custom.c main.c globroots.c \
$(UNIX_OR_WIN32).c dynlink.c signals.c debugger.c
clean::
rm -f $(LINKEDFILES)
%.o: %.S
$(ASPP) -DSYS_$(SYSTEM) -DMODEL_$(MODEL) -o $@ $< || \
{ echo "If your assembler produced syntax errors, it is probably";\
echo "unhappy with the preprocessor. Check your assembler, or";\
echo "try producing $*.o by hand.";\
exit 2; }
%.p.o: %.S
$(ASPP) -DSYS_$(SYSTEM) -DMODEL_$(MODEL) $(ASPPPROFFLAGS) -o $@ $<
%.pic.o: %.S
$(ASPP) -DSYS_$(SYSTEM) -DMODEL_$(MODEL) $(SHAREDCCCOMPOPTS) -o $@ $<
%.d.o: %.c
$(CC) -c $(DFLAGS) -o $@ $<
%.p.o: %.c
$(CC) -c $(PFLAGS) -o $@ $<
%.pic.o: %.c
$(CC) -c $(PICFLAGS) -o $@ $<
%.o: %.s
$(ASPP) -DSYS_$(SYSTEM) -o $@ $<
%.p.o: %.s
$(ASPP) -DSYS_$(SYSTEM) $(ASPPPROFFLAGS) -o $@ $<
%.pic.o: %.s
$(ASPP) -DSYS_$(SYSTEM) $(SHAREDCCCOMPOPTS) -o $@ $<
clean::
rm -f *.o *.a *~
depend: $(COBJS:.o=.c) ${LINKEDFILES}
$(CC) -MM $(FLAGS) *.c > .depend
$(CC) -MM $(FLAGS) -DDEBUG *.c | sed -e 's/\.o/.d.o/' >> .depend
$(CC) -MM $(FLAGS) *.c | sed -e 's/\.o/.p.o/' >> .depend
include .depend