Commit 3bb15d8e authored by simonmar's avatar simonmar

[project @ 2003-05-19 13:29:15 by simonmar]

- rearrange the file a little

- build a binary distribution from stage 2 by default, unless
  overriden from the command line.
parent e23544cc
......@@ -43,6 +43,90 @@ project-check :
exit 1; \
fi
# -----------------------------------------------------------------------------
# Targets: all, stage1, stage2, stage3
DIST_CLEAN_FILES += config.cache config.status
#
# If you've ended up using an in-place version of Happy,
# make sure it gets built early on.
#
ifeq "$(HAPPY)" "$(FPTOOLS_TOP_ABS)/happy/src/happy-inplace"
build : $(FPTOOLS_TOP_ABS)/happy/src/happy-inplace
$(FPTOOLS_TOP_ABS)/happy/src/happy-inplace : glafp-utils
$(MAKE) -C happy boot all
endif
# Build all projects that we know about
build :
@case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
for i in $(SUBDIRS); do \
if [ -d $$i ]; then \
$(MAKE) -C $$i boot; \
if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \
$(MAKE) -C $$i all; \
if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \
fi; \
done
ifeq "$(findstring ghc, $(SUBDIRS))" "ghc"
stage1 : build
stage2 :
$(MAKE) -C ghc/compiler boot stage=2
$(MAKE) -C ghc/compiler stage=2
stage3 :
$(MAKE) -C ghc/compiler boot stage=3
$(MAKE) -C ghc/compiler stage=3
bootstrap : bootstrap2
bootstrap2 : stage1 stage2
bootstrap3 : stage1 stage2 stage3
all :: bootstrap
# We want to install the stage 2 bootstrapped compiler by default, but we let
# the user override this by saying 'make install stage=1', for example.
ifeq "$(stage)" ""
INSTALL_STAGE = stage=2
else
INSTALL_STAGE =
endif
else # Not building GHC
all :: build
INSTALL_STAGE =
endif
boot ::
@echo "Please use \`make all' only from the top-level, or \`make boot' followed"
@echo "by \`make all' in an individual project subdirectory (ghc, hslibs etc.)."
install ::
@case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
for i in $(filter-out $(ProjectsDontInstall), $(SUBDIRS)); do \
if [ -d $$i ]; then \
$(MAKE) -C $$i $(INSTALL_STAGE) install; \
if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \
fi; \
done
install-docs ::
@case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
for i in $(filter-out $(ProjectsDontInstall), $(SUBDIRS)); do \
if [ -d $$i ]; then \
$(MAKE) -C $$i $(INSTALL_STAGE) install-docs; \
if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \
fi; \
done
# -----------------------------------------------------------------------------
# Making a binary distribution
#
......@@ -120,14 +204,14 @@ endif
$(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM); \
echo $(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/share; \
$(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/share; \
echo $(MAKE) -C $$i $(MFLAGS) install \
echo $(MAKE) -C $$i $(MFLAGS) $(INSTALL_STAGE) install \
prefix=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) \
exec_prefix=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) \
bindir=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM) \
libdir=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM) \
libexecdir=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM) \
datadir=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/share; \
$(MAKE) -C $$i $(MFLAGS) install \
$(MAKE) -C $$i $(MFLAGS) $(INSTALL_STAGE) install \
prefix=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) \
exec_prefix=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) \
bindir=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM) \
......@@ -328,85 +412,6 @@ CLEAN_FILES += hc-files-to-go *-hc.tar.gz
# -----------------------------------------------------------------------------
DIST_CLEAN_FILES += config.cache config.status
#
# If you've ended up using an in-place version of Happy,
# make sure it gets built early on.
#
ifeq "$(HAPPY)" "$(FPTOOLS_TOP_ABS)/happy/src/happy-inplace"
build : $(FPTOOLS_TOP_ABS)/happy/src/happy-inplace
$(FPTOOLS_TOP_ABS)/happy/src/happy-inplace : glafp-utils
$(MAKE) -C happy boot all
endif
# Build all projects that we know about
build :
@case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
for i in $(SUBDIRS); do \
if [ -d $$i ]; then \
$(MAKE) -C $$i boot; \
if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \
$(MAKE) -C $$i all; \
if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \
fi; \
done
ifeq "$(findstring ghc, $(SUBDIRS))" "ghc"
stage1 : build
stage2 :
$(MAKE) -C ghc/compiler boot stage=2
$(MAKE) -C ghc/compiler stage=2
stage3 :
$(MAKE) -C ghc/compiler boot stage=3
$(MAKE) -C ghc/compiler stage=3
bootstrap : bootstrap2
bootstrap2 : stage1 stage2
bootstrap3 : stage1 stage2 stage3
all :: bootstrap
# We want to install the stage 2 bootstrapped compiler by default, but we let
# the user override this by saying 'make install stage=1', for example.
ifeq "$(stage)" ""
INSTALL_STAGE = stage=2
endif
else # Not building GHC
all :: build
INSTALL_STAGE =
endif
boot ::
@echo "Please use \`make all' only from the top-level, or \`make boot' followed"
@echo "by \`make all' in an individual project subdirectory (ghc, hslibs etc.)."
install ::
@case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
for i in $(filter-out $(ProjectsDontInstall), $(SUBDIRS)); do \
if [ -d $$i ]; then \
$(MAKE) -C $$i $(INSTALL_STAGE) install; \
if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \
fi; \
done
install-docs ::
@case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
for i in $(filter-out $(ProjectsDontInstall), $(SUBDIRS)); do \
if [ -d $$i ]; then \
$(MAKE) -C $$i $(INSTALL_STAGE) install-docs; \
if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \
fi; \
done
# Turn off target.mk's rules for 'all', 'boot' and 'install'.
NO_BOOT_TARGET=YES
NO_ALL_TARGET=YES
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment