-
-package = ghc
-version = 2.02
-PERL = @PerlCmd@
-
-.PHONY: config install install-dirs
-
-config:
- @echo Configuring $(package), version $(version), on $(platform)
- @RM `pwd`/bin/$(platform)/$(package)-$(version)/$(package)-$(version)
- @RM `pwd`/bin/$(platform)/$(package)-$(version)/$(package)
- @echo $(PerlCmd) > `pwd`/bin/$(platform)/$(package)
- @echo "$""bindir='"`pwd`"/bin/$(platform)/$(package)-$(version)';" >> `pwd`/bin/$(platform)/$(package)-$(version)/$(package)
- @echo "$""libdir='"`pwd`"/lib/$(platform)/$(package)-$(version)';" >> `pwd`/bin/$(platform)/$(package)-$(version)/$(package)
- @echo "$""datadir='"`pwd`"/share/$(platform)/$(package)-$(version)';" >> `pwd`/bin/$(platform)/$(package)-$(version)/$(package)
- @cat `pwd`/bin/$(platform)/$(package)-$(version)/$(package).prl';" >> `pwd`/bin/$(platform)/$(package)-$(version)/$(package)
- @(cd `pwd`/bin/$(platform)/$(package)-$(version); $(LN_S) $(package) $(package)-$(version) )
- @echo Finished..to use, add `pwd`/bin/$(platform)/$(package)-$(version) to your PATH.
-
-libdirs = . imports include
-datadirs = . include
-
-install-dirs:
- $(MKDIRHIER) $(bindir)
- @for i in $(libdirs) ; do \
- echo (MKDIRHIER) $(real_libdir)/$$i; \
- (MKDIRHIER) $(real_libdir)/$$i; \
- done;
- @for i in $(datadirs) ; do \
- echo (MKDIRHIER) $(real_datadir)/$$i; \
- (MKDIRHIER) $(real_datadir)/$$i; \
+#----------end of user-serviceable parts------------
+#
+#
+# How to install the different pieces
+#
+INSTALL_BIN = $(INSTALL) $(INSTALL_BIN_OPTS)
+INSTALL_LIB = $(INSTALL) $(INSTALL_LIB_OPTS)
+INSTALL_DATA = $(INSTALL) $(INSTALL_DATA_OPTS)
+
+# What's common to all installs
+INSTALL_OPTS= $(EXTRA_INSTALL_OPTS)
+
+BIN_PERMS = 755
+LIB_PERMS = 644
+
+INSTALL_BIN_OPTS = -m $(BIN_PERMS) $(INSTALL_OPTS) $(EXTRA_INSTALL_BIN_OPTS)
+INSTALL_LIB_OPTS = -m $(LIB_PERMS) $(INSTALL_OPTS) $(EXTRA_INSTALL_LIB_OPTS)
+INSTALL_DATA_OPTS = -m $(LIB_PERMS) $(INSTALL_OPTS) $(EXTRA_INSTALL_DATA_OPTS)
+
+.PHONY: in-place config-pkgs mk-version-symlinks install-dirs install
+
+config-pkgs ::
+ @echo "Configuring $(package), version $(version), on $(platform) ..."
+ @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; \
+ 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 ; \
+ 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_PRL_SCRIPTS) ""; do \
+ if test "$$i"; then \
+ echo "Creating a configured version of $$i .."; \
+ $(RM) 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 ; \
+ 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 \
+ if test "$$i"; then \
+ echo "Creating a configured version of $$i .."; \
+ $(RM) 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 "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 ; \
+ 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
+
+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."
+
+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
+
+.PHONY: install-bin install-libs install-datas
+
+install-bin:
+ for i in $(PACKAGE_BIN_INSTALL); do \
+ $(INSTALL_BIN) bin/$(platform)/$(package)-$(version)/$$i $(bindir); \