-############################################################################
-#
-# fptools/Makefile
-#
-# This is the main Makefile for fptools.
-#
-############################################################################
-
-TOP=.
-include $(TOP)/mk/boilerplate.mk
-
-# find the projects that actually exist...
-ProjectsThatExist = $(filter $(patsubst %/, %, $(wildcard */)), $(AllProjects))
-
-# and filter only those that the user requested, if necessary
-ifeq "$(ProjectsToBuild)" ""
-SUBDIRS = $(ProjectsThatExist)
-else
-SUBDIRS = $(filter $(ProjectsToBuild), $(ProjectsThatExist))
-endif
-
-ifneq "$(Project)" ""
- ifeq "$(Project)" "GreenCard"
- ProjectDirectory=greencard
- else
- ifeq "$(Project)" "HaskellDirect"
- ProjectDirectory=hdirect
- else
- ProjectDirectory=$(Project)
- endif
- endif
- include $(shell echo $(ProjectDirectory) | tr A-Z a-z)/mk/config.mk
-endif
-
-# -----------------------------------------------------------------------------
-# Certain targets require that Project is set from the command line.
-
-CURRENT_TARGET = $(MAKECMDGOALS)
-project-check :
- @if [ "$(Project)" = "" ]; then \
- echo " You need to set \"Project\" in order to make $(CURRENT_TARGET)"; \
- echo " eg. make $(CURRENT_TARGET) Project=Ghc"; \
- exit 1; \
- fi
-
-# -----------------------------------------------------------------------------
-# Targets: all, stage1, stage2, stage3
-
-DIST_CLEAN_FILES += config.cache config.status
-
-extraclean::
- $(RM) -rf autom4te.cache
-
-#
-# 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
-
-# If installing on Windows with MinGW32, copy the gcc compiler, headers and libs
-# and the perl interpreter and dll into the GHC prefix directory.
-# Gcc and Perl source locations derived from configuration data.
-ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
-ifneq "$(WhatGccIsCalled)" ""
-install ::
- -mkdir $(prefix)/gcc-lib
- -mkdir $(prefix)/include
- -mkdir $(prefix)/include/mingw
- -cp -rp $(GccDir)../include/* $(prefix)/include/mingw
- -cp -rp $(GccDir)../lib/gcc-lib/mingw32/$(GccVersion)/* $(prefix)/gcc-lib
- -cp $(GccDir)../lib/*.* $(prefix)/gcc-lib
- -cp $(GccDir)gcc.exe $(prefix)
- -cp $(GccDir)as.exe $(prefix)/gcc-lib
- -cp $(GccDir)ld.exe $(prefix)/gcc-lib
- -cp $(GccDir)dllwrap.exe $(prefix)/gcc-lib
- -cp $(GccDir)dlltool.exe $(prefix)/gcc-lib
- -cp $(GhcDir)../perl.exe $(prefix)
- -cp $(GhcDir)../perl56.dll $(prefix)
-endif
-endif
-
-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
-