1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
# $Id: Makefile,v 2.4 1999/11/20 03:50:25 ddr Exp $
include config/Makefile
DIRS=tools odyl camlp4 meta etc top ocpp lib man
FDIRS=odyl camlp4 meta lib
SHELL=/bin/sh
all:
set -e; for i in $(DIRS); do cd $$i; $(MAKE) all; cd ..; done
opt:
cd lib; $(MAKE) opt
clean_hot:
for i in $(DIRS); do (cd $$i; $(MAKE) clean); done
depend:
for i in $(DIRS); do (cd $$i; $(MAKE) depend); done
install:
for i in $(DIRS); do (cd $$i; $(MAKE) install BINDIR=$(prefix)$(BINDIR) LIBDIR=$(prefix)$(LIBDIR) MANDIR=$(prefix)$(MANDIR)); done
scratch:
$(MAKE) clean
rm -f boot/*.cm[oi] boot/camlp4*
rm -rf boot/SAVED
clean: clean_hot clean_cold
# Normal bootstrap
bootstrap: backup promote clean_hot all compare
backup:
mkdir boot.new
make mv_cvs FROM=boot TO=boot.new
mv boot boot.new/SAVED
mv boot.new boot
restore:
mv boot/SAVED boot.new
make mv_cvs FROM=boot TO=boot.new
rm -rf boot
mv boot.new boot
promote:
for i in $(FDIRS); do (cd $$i; $(MAKE) promote); done
compare:
@if (for i in $(FDIRS); do \
if (cd $$i; $(MAKE) compare 2>/dev/null); then :; \
else exit 1; fi; \
done); \
then echo "Fixpoint reached, bootstrap succeeded."; \
else echo "Fixpoint not reached, try one more bootstrapping cycle."; \
fi
cleanboot:
rm -rf boot/SAVED/SAVED
# Fast bootstrap
bootstrap_fast: backup promote clean_hot fast compare
fast:
set -e; for i in tools $(FDIRS); do cd $$i; $(MAKE) all; cd ..; done
clean_fast:
for i in $(FDIRS); do (cd $$i; $(MAKE) clean); done
# The very beginning
world:
$(MAKE) clean_cold library_cold compile_cold
$(MAKE) promote_cold
$(MAKE) clean_cold clean_hot compile_tool library all
compile_tool:
cd tools; $(MAKE) all
library:
cd lib; $(MAKE) all promote
# Cold start using pure Objective Caml sources
library_cold:
cd ocaml_src/lib; $(MAKE) all promote
compile_cold:
cd ocaml_src; set -e; \
for i in $(FDIRS); do cd $$i; $(MAKE) all; cd ..; done
promote_cold:
for i in $(FDIRS); do \
(cd ocaml_src/$$i; $(MAKE) promote); \
done
clean_cold:
for i in $(FDIRS); do \
(cd ocaml_src/$$i; $(MAKE) clean); \
done
# Stealing some Ocaml compiler sources
steal:
@if test "$(OCAML_SRC)" = ""; then \
echo "usage: make steal OCAML_SRC=..."; exit 1; \
fi
for i in $(FDIRS); do (cd $$i; $(MAKE) steal); done
for i in $(FDIRS); do (cd ocaml_src/$$i; $(MAKE) steal); done
compare_stolen:
@if test "$(OCAML_SRC)" = ""; then \
echo "usage: make compare_stolen OCAML_SRC=..."; exit 1; \
fi
for i in $(FDIRS); do (cd $$i; $(MAKE) compare_stolen); done
# Bootstrap the sources
bootstrap_sources:
cd etc; make pr_o.cmo
mkdir ocaml_src.new
@-for i in $(FDIRS); do \
(mkdir ocaml_src.new/$$i; cd ocaml_src.new/$$i; \
sed 's/# $$Id.*\$$/# Id/' ../../$$i/Makefile | \
sed 's-include ../config-include ../../config-g' | \
sed 's-../boot-../../boot-g' > Makefile; \
cp ../../$$i/.depend .) \
done
@-for i in $(FDIRS); do \
for j in $$i/*.ml*; do \
echo ============================================; \
echo ocaml_src.new/$$j; \
./tools/conv.sh $$j | \
sed 's/$$Id.*\$$/Id/' > ocaml_src.new/$$j; \
done; \
done
promote_sources:
make mv_cvs FROM=ocaml_src TO=ocaml_src.new
for i in $(FDIRS); do \
make mv_cvs FROM=ocaml_src/$$i TO=ocaml_src.new/$$i; \
done
mv ocaml_src/tools ocaml_src.new/.
mv ocaml_src ocaml_src.new/SAVED
mv ocaml_src.new ocaml_src
unpromote_sources:
mv ocaml_src ocaml_src.new
mv ocaml_src.new/SAVED ocaml_src
mv ocaml_src.new/tools ocaml_src/.
for i in $(FDIRS); do \
make mv_cvs FROM=ocaml_src.new/$$i TO=ocaml_src/$$i; \
done
make mv_cvs FROM=ocaml_src.new TO=ocaml_src
clean_sources:
rm -rf ocaml_src/SAVED/SAVED
# Utility
mv_cvs:
test ! -d $(FROM)/CVS || mv $(FROM)/CVS $(TO)/.
test ! -f $(FROM)/.cvsignore || mv $(FROM)/.cvsignore $(TO)/.
|