# * ghc&hslibs next
# then it's up to you
-ProjectsToBuild = glafp-utils literate ghc hslibs
+ProjectsToBuild = glafp-utils literate ghc hslibs
+#
+# Make a distinction between building and installing, ProjectsToInstall
+# does not include the literate bits..
+#
+ProjectsToInstall = glafp-utils ghc hslibs
#
# Should the various project tests directories be built?
# Build the compiler with the deforester included?
GhcWithDeforester=NO
+#
+# Building various ways?
+# (right now, empty if not).
+BuildingParallel=$(subst mp,YES,$(filter mp,$(WAYS)))
+BuildingConcurrent=$(subst mc,YES,$(filter mc,$(WAYS)))
+BuildingProfiling=$(subst p,YES,$(filter p,$(WAYS)))
+BuildingGranSim=$(subst mg,YES,$(filter mg,$(WAYS)))
+BuildingProfilingConcurrent=$(subst mr,YES,$(filter mr,$(WAYS)))
#---------------------------------------------------------------
#
-# Variables that control how the prelude libararies and runtime system are built
+# Variables that control how the prelude libraries and runtime system are built
# What extra ways to build the libraries in
# In addition to the normal sequential way, the default is to also build
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
+#UNUSED, see below: libexecdir = @libexecdir@
datadir = @datadir@
-sysconfdir = @datadir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
+#sysconfdir = @datadir@
+#sharedstatedir = @sharedstatedir@
+#localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
includedir = @includedir@
oldincludedir = @oldincludedir@
mandir = @mandir@
-srcdir = @srcdir@
+#UNUSED:srcdir = @srcdir@
+
+#
+# Default values for most of the above are only set if
+# they weren't configured to anything in particular
+# via the configure script. (i.e., we make no assumption
+# that the autoconf-generated script will assign defaults
+# to all of the above).
+#
+ifeq "$(strip $(exec_prefix))" ""
+exec_prefix = $(prefix)
+endif
+ifeq "$(strip $(bindir))" ""
+bindir = $(exec_prefix)/bin
+endif
+
+#
+# NOTE: by intention, libexecdir and libdir point to
+# the same place.
+# => Only way to override this is to set libexecdir= on the command line.
+# (NOTE: configure script setting is ignored).
+libexecdir = $(libdir)
+
+ifeq "$(strip $(datadir))" ""
+datadir = $(prefix)/share
+endif
+ifeq "$(strip $(libdir))" ""
+libdir = $(exec_prefix)/lib
+endif
+ifeq "$(strip $(infodir))" ""
+infodir = $(prefix)/info
+endif
+ifeq "$(strip $(includedir))" ""
+includedir = $(prefix)/include
+endif
+ifeq "$(strip $(oldincludedir))" ""
+oldincludedir = /usr/include
+endif
+ifeq "$(strip $(mandir))" ""
+mandir = $(prefix)/man
+endif
+
#################################################################################
#
# install-sh script (if chosen). This not terribly useful to us, so we convert
# it into an abs. path.
#
-ifeq "$(INSTALL)" ".././install-sh"
-INSTALL = $(FPTOOLS_TOP_ABS)/install-sh
-endif
+INSTALL := $(subst .././install-sh,$(FPTOOLS_TOP_ABS)/install-sh,$(INSTALL))
LATEX = latex
LN_S = @LN_S@
MANMACROS = -man
# friends can be overridden from their original settings in mk/config.mk.in
# || mk/build.mk
#
-.PHONY: install installdirs install-strip install-dirs uninstall install-docs
+.PHONY: install installdirs install-strip install-dirs uninstall install-docs show-install
+
+show-install :
+ @echo "bindir = $(bindir)"
+ @echo "libdir = $(libdir)"
+ @echo "libexecdir = $(libexecdir) # by default, same as libdir"
+ @echo "datadir = $(datadir) # unused for ghc project"
#
# Sometimes useful to separate out the creation of install directories
# from the installation itself.
#
-installdirs ::
+install-dirs ::
@$(INSTALL_DIR) $(bindir)
@$(INSTALL_DIR) $(libdir)
@$(INSTALL_DIR) $(libexecdir)
@$(INSTALL_DIR) $(datadir)
# Better do this first...
-install:: installdirs
+# but we won't for the moment, do it on-demand from
+# within the various install targets instead.
+#install:: install-dirs
ifneq "$(INSTALL_PROGS)" ""
install:: $(INSTALL_PROGS)
+ @$(INSTALL_DIR) $(bindir)
for i in $(INSTALL_PROGS); do \
$(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(bindir); \
done
#
ifneq "$(INSTALL_SCRIPTS)" ""
install:: $(INSTALL_SCRIPTS)
+ @$(INSTALL_DIR) $(bindir)
ifeq "$(INTERP)" "perl"
ifneq "$(BIN_DIST)" "1"
@for i in $(INSTALL_SCRIPTS); do \
echo "eval 'exec $(PERL) -S $$$""0 $$""{1+\"$$$""@\"}'" > $$i.tmp ; \
echo " if $$""running_under_some_shell;" >> $$i.tmp ; \
echo $$"bindir='$(bindir)';" >> $$i.tmp ; \
- echo $$"libdir='$(real_libdir)';" >> $$i.tmp ; \
- echo $$"datadir='$(real_datadir)';" >> $$i.tmp ; \
+ echo $$"libdir='$(libdir)';" >> $$i.tmp ; \
+ echo $$"libexecdir='$(libexecdir)';" >> $$i.tmp ; \
+ echo $$"datadir='$(datadir)';" >> $$i.tmp ; \
cat $$i >> $$i.tmp ; \
- echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(bindir) ; \
- $(INSTALL_PROGRAM) $(filter-out -s,,$(INSTALL_BIN_OPTS)) $$i.tmp $(bindir)/$$i ; \
+ echo $(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_OPTS)) $$i.tmp $(bindir)/$$i ; \
+ $(INSTALL_PROGRAM) $(filter-out -s,$(INSTALL_BIN_OPTS)) $$i.tmp $(bindir)/$$i ; \
$(RM) $$i.tmp; \
done
else
ifneq "$(INSTALL_LIB_SCRIPTS)" ""
install:: $(INSTALL_LIB_SCRIPTS)
+ @$(INSTALL_DIR) $(libdir)
ifeq "$(INTERP)" "perl"
ifneq "$(BIN_DIST)" "1"
@for i in $(INSTALL_LIB_SCRIPTS); do \
echo "eval 'exec $(PERL) -S $$$""0 $$""{1+\"$$$""@\"}'" > $$i.tmp ; \
echo " if $$""running_under_some_shell;" >> $$i.tmp ; \
echo $$"bindir='$(bindir)';" >> $$i.tmp ; \
- echo $$"libdir='$(real_libdir)';" >> $$i.tmp ; \
- echo $$"datadir='$(real_datadir)';" >> $$i.tmp ; \
+ echo $$"libdir='$(libdir)';" >> $$i.tmp ; \
+ echo $$"libexecdir='$(libexecdir)';" >> $$i.tmp ; \
+ echo $$"datadir='$(datadir)';" >> $$i.tmp ; \
cat $$i >> $$i.tmp ; \
echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libdir) ; \
$(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libdir)/$$i ; \
ifneq "$(INSTALL_LIBEXEC_SCRIPTS)" ""
install:: $(INSTALL_LIBEXEC_SCRIPTS)
+ @$(INSTALL_DIR) $(libexecdir)
ifeq "$(INTERP)" "perl"
ifneq "$(BIN_DIST)" "1"
@for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
echo "eval 'exec $(PERL) -S $$$""0 $$""{1+\"$$$""@\"}'" > $$i.tmp ; \
echo " if $$""running_under_some_shell;" >> $$i.tmp ; \
echo $$"bindir='$(bindir)';" >> $$i.tmp ; \
- echo $$"libdir='$(real_libdir)';" >> $$i.tmp ; \
- echo $$"datadir='$(real_datadir)';" >> $$i.tmp ; \
+ echo $$"libdir='$(libdir)';" >> $$i.tmp ; \
+ echo $$"libexecdir='$(libexecdir)';" >> $$i.tmp ; \
+ echo $$"datadir='$(datadir)';" >> $$i.tmp ; \
cat $$i >> $$i.tmp ; \
echo $(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i $(libexecdir) ; \
$(INSTALL_PROGRAM) $(INSTALL_OPTS) $$i.tmp $(libexecdir)/$$i ; \
ifneq "$(INSTALL_LIBS)" ""
install:: $(INSTALL_LIBS)
+ @$(INSTALL_DIR) $(libdir)
for i in $(INSTALL_LIBS); do \
$(INSTALL_DATA) $(INSTALL_OPTS) $$i $(libdir); \
done
ifneq "$(INSTALL_LIBEXECS)" ""
install:: $(INSTALL_LIBEXECS)
+ @$(INSTALL_DIR) $(libexecdir)
-for i in $(INSTALL_LIBEXECS); do \
$(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(libexecdir); \
done
ifneq "$(INSTALL_DATAS)" ""
install:: $(INSTALL_DATAS)
+ @$(INSTALL_DIR) $(datadir)
for i in $(INSTALL_DATAS); do \
$(INSTALL_DATA) $(INSTALL_OPTS) $$i $(datadir); \
done