# by using the unpacked distribution tree in-situ or by installing the
# package.
#
-# Using the package directly is easy, just do `make config'. (The
+# Using the package directly is easy, just do `make in-place'. (The
# distribution will *not* work straight out of the box, you'll have to do
# this first)
#
# Note, if you specify /usr/foo/lib for libdir,
# the library files for your fptools package will be
# installed in /usr/foo/lib/<package>-<version>, e.g.,
-# /usr/foo/lib/ghc-2.07. If you don't want the package/version
+# /usr/foo/lib/ghc-3.00. If you don't want the package/version
# directory appended, you'll have to modify $(real_libdir)
# below.
#
real_libdir = $(libdir)/$(package)-$(version)
real_datadir = $(datadir)/$(package)-$(version)
-package = ghc
-version = 2.08
PERL = @PerlCmd@
SH = /bin/sh
RM = rm -f
LN_S = @LN_S@
CHMOD = chmod
INSTALL = @INSTALL@
+exeext = @exeext@
RAWCPP = @RAWCPP@
SED = @SedCmd@
+TMPDIR = /tmp
+
# sigh
INSTALL_DIR = ./mkdirhier
# to be created, i.e., create a symlink, ghc-$(version), pointing to ghc to
# avoid version vertigo.
#
-VERSION_SYMLINKS_FOR=ghc
-
-#
-# List of files in bin directory that need to have
-# local setup/install information prepended.
-#
-PACKAGE_SCRIPTS=ghc stat2resid hstags mkdependHS
-PACKAGE_SH_SCRIPTS=happy
-PACKAGE_LIB_SCRIPTS=hscpp
+VERSION_SYMLINKS_FOR=$(package)
# Binaries to install
-PACKAGE_BINS=$(PACKAGE_SCRIPTS) $(PACKAGE_SH_SCRIPTS) hp2ps
+PACKAGE_BIN_INSTALL=$(PACKAGE_PRL_SCRIPTS) $(PACKAGE_SH_SCRIPTS) $(PACKAGE_BINS)
#----------end of user-serviceable parts------------
#
config-pkgs ::
@echo "Configuring $(package), version $(version), on $(platform) ..."
- $(RM) bin/$(platform)/$(package)-$(version)/$(package)-$(version)
- @for i in $(PACKAGE_SCRIPTS); do \
+ @for i in $(PACKAGE_PRL_SCRIPTS) ""; do \
+ if test "$$i"; then \
echo "Creating a configured version of $$i .."; \
$(RM) bin/$(platform)/$(package)-$(version)/$$i.bak; \
- test -f bin/$(platform)/$(package)-$(version)/$$i && $(MV) bin/$(platform)/$(package)-$(version)/$$i bin/$(platform)/$(package)-$(version)/$$i.bak; \
+ if [ -f bin/$(platform)/$(package)-$(version)/$$i ]; then $(MV) bin/$(platform)/$(package)-$(version)/$$i bin/$(platform)/$(package)-$(version)/$$i.bak; fi; \
echo "#! $(PERL)" > bin/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"bindir='$(bindir)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"libdir='$(real_libdir)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"libexecdir='$(real_libdir)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"datadir='$(real_datadir)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"SED='$(SED)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"RAWCPP='$(RAWCPP)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"bindir='$(bindir)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"libdir='$(real_libdir)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"libexecdir='$(real_libdir)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"datadir='$(real_datadir)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"SED='$(SED)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"RAWCPP='$(RAWCPP)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"TMPDIR='$(TMPDIR)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \
cat bin/$(platform)/$(package)-$(version)/$$i.prl >> bin/$(platform)/$(package)-$(version)/$$i ; \
$(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \
echo "Done."; \
+ fi; \
done
- @for i in $(PACKAGE_LIB_SCRIPTS); do \
+ @for i in $(PACKAGE_LIB_PRL_SCRIPTS) ""; do \
+ if test "$$i"; then \
echo "Creating a configured version of $$i .."; \
$(RM) lib/$(platform)/$(package)-$(version)/$$i.bak; \
- test -f lib/$(platform)/$(package)-$(version)/$$i && $(MV) lib/$(platform)/$(package)-$(version)/$$i lib/$(platform)/$(package)-$(version)/$$i.bak; \
+ if [ -f lib/$(platform)/$(package)-$(version)/$$i ]; then $(MV) lib/$(platform)/$(package)-$(version)/$$i lib/$(platform)/$(package)-$(version)/$$i.bak; fi; \
echo "#! $(PERL)" > lib/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"bindir='$(bindir)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"libdir='$(real_libdir)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"libexecdir='$(real_libdir)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"datadir='$(real_datadir)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"SED='$(SED)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
- echo $$"RAWCPP='$(RAWCPP)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"bindir='$(bindir)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"libdir='$(real_libdir)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"libexecdir='$(real_libdir)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"datadir='$(real_datadir)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"SED='$(SED)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"RAWCPP='$(RAWCPP)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
+ echo '$$'"TMPDIR='$(TMPDIR)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \
cat lib/$(platform)/$(package)-$(version)/$$i.prl >> lib/$(platform)/$(package)-$(version)/$$i; \
$(CHMOD) $(BIN_PERMS) lib/$(platform)/$(package)-$(version)/$$i; \
echo "Done."; \
+ fi; \
done
- @for i in $(PACKAGE_SH_SCRIPTS); do \
+ @for i in $(PACKAGE_SH_SCRIPTS) ""; do \
+ if test "$$i"; then \
echo "Creating a configured version of $$i .."; \
$(RM) bin/$(platform)/$(package)-$(version)/$$i.bak; \
- test -f bin/$(platform)/$(package)-$(version)/$$i && $(MV) bin/$(platform)/$(package)-$(version)/$$i bin/$(platform)/$(package)-$(version)/$$i.bak; \
+ if [ -f bin/$(platform)/$(package)-$(version)/$$i ]; then $(MV) bin/$(platform)/$(package)-$(version)/$$i bin/$(platform)/$(package)-$(version)/$$i.bak; fi; \
echo "#! $(SH)" > bin/$(platform)/$(package)-$(version)/$$i ; \
echo "bindir='$(bindir)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \
echo "libdir='$(real_libdir)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \
echo "datadir='$(real_datadir)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \
echo "SED='$(SED)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \
echo "RAWCPP='$(RAWCPP)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \
+ echo "TMPDIR='$(TMPDIR)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \
cat bin/$(platform)/$(package)-$(version)/$$i.sh >> bin/$(platform)/$(package)-$(version)/$$i; \
$(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \
echo "Done."; \
+ fi; \
done
-
-mk-version-symlinks ::
- @for i in $(VERSION_SYMLINKS_FOR) ""; do \
- if [ "x$$i" != "x" ]; then \
- echo "Symlinking $$i to $$i-$(version)"; \
- (cd bin/$(platform)/$(package)-$(version); $(RM) $$i-$(version); $(LN_S) $$i $$i-$(version) ); \
- fi;\
- done
+# Convert pwd's UNC reported path into DOS style
+# (cygwin32 only.)
+CURRENT_DIR = $(shell pwd | sed 's|^//\(.\)|\1:|' )
in-place ::
- $(MAKE) $(MFLAGS) config-pkgs bindir=`pwd`/bin/$(platform)/$(package)-$(version) libdir=`pwd`/lib/$(platform) datadir=`pwd`/share/$(package)-$(version)
- $(MAKE) $(MFLAGS) mk-version-symlinks
- @echo "Finished configuring..to use, add `pwd`/bin/$(platform)/$(package)-$(version) to your PATH."
+ $(MAKE) $(MFLAGS) config-pkgs bindir=$(CURRENT_DIR)/bin/$(platform)/$(package)-$(version) libdir=$(CURRENT_DIR)/lib/$(platform) datadir=$(CURRENT_DIR)/share/$(package)-$(version)
+ @echo "Finished configuring..to use, add $(CURRENT_DIR)/bin/$(platform)/$(package)-$(version) to your PATH."
install-dirs ::
$(INSTALL_DIR) $(bindir)
(cd lib/$(platform)/$(package)-$(version); find . -type d -exec sh -c '../../../$(INSTALL_DIR) $$0 $(real_libdir)/$$0' {} \; )
(cd share/$(package)-$(version); find . -type d -exec sh -c '../../$(INSTALL_DIR) $(real_datadir)/$$0' {} \; )
-install :: config-pkgs mk-version-symlinks install-dirs install-bin install-libs install-datas
+install :: config-pkgs install-dirs install-bin install-libs install-datas
.PHONY: install-bin install-libs install-datas
install-bin:
- for i in $(PACKAGE_BINS); do \
+ for i in $(PACKAGE_BIN_INSTALL); do \
$(INSTALL_BIN) bin/$(platform)/$(package)-$(version)/$$i $(bindir); \
done;
for i in $(VERSION_SYMLINKS_FOR) ""; do \
if [ "x$$i" != "x" ]; then \
( cd $(bindir); \
- $(RM) $$i-$(version); \
- $(MV) $$i $$i-$(version); \
+ $(RM) $$i; \
$(LN_S) $$i-$(version) $$i \
); \
fi; \