[project @ 1997-03-24 08:39:18 by sof]
[ghc-hetmet.git] / Makefile
1 #################################################################################
2 #
3 #                       fptools/Makefile
4 #
5 #               This is the main Makefile for fptools.
6 #
7 #################################################################################
8
9 TOP=.
10 include $(TOP)/mk/boilerplate.mk
11 SRC_DIST_DIR=$(shell pwd)/$(SRC_DIST_NAME)
12
13 SUBDIRS = $(ProjectsToBuild)
14
15 #
16 # Files to include in fptools source distribution
17 #
18 SRC_DIST_DIRS += mk $(ProjectsToBuild)
19 SRC_DIST_FILES += configure.in config.guess config.sub configure README ANNOUNCE NEWS INSTALL Makefile
20
21
22 #
23 # Making a binary distribution
24 #
25 BIN_DIST_TMPDIR=$(shell pwd)
26 BIN_DIST_NAME=fptools
27
28 #
29 # list of toplevel `projects' to include in binary distrib.
30 #
31 BIN_DIST_DIRS=ghc
32
33 binary-dist:: binary-dist-pre
34
35 BIN_DIST_TOP= distrib/Makefile-bin.in \
36               distrib/configure-bin.in \
37               distrib/README \
38               distrib/INSTALL \
39               distrib/ANNOUNCE \
40               distrib/PATCHLEVEL \
41               glafp-utils/mkdirhier/mkdirhier \
42               ghc/RELEASE \
43               install-sh \
44               config.guess \
45               config.sub
46
47 binary-dist::
48         @for i in $(BIN_DIST_TOP); do \
49           echo cp $$i $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME); \
50           cp $$i $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME); \
51         done;
52         @echo "hackily rename some of these chaps.."
53         $(MV) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile-bin.in $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in 
54         $(MV) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/configure-bin.in $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/configure.in 
55         @echo "Generating a shippable configure script.."
56         -(cd $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME); autoconf )
57
58 #
59 # Creating and copying the documentation into the bin-dist tree.
60 # (this tries to be oh-so-general about copyng docs, but isn't really
61 # suited for anything else than ghc/)
62 #
63 # Needless to say, the rule below could be cleaned up somewhat.
64 #
65 binary-dist::
66         @$(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/html/ghc-2.02
67         @$(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/dvi/ghc-2.02
68         @$(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/info/ghc-2.02
69         @echo "Making html documentation.."
70         @echo "For fptools.."
71         #$(MAKE) -C docs --no-print-directory $(MFLAGS) html
72         #cp -f docs/html/* docs/*.html $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/html/ghc-2.02
73         #@echo "Done."
74         #@for i in $(BIN_DIST_DIRS); do \
75         #   echo "For $$i.."; \
76         #   echo cp -f $$i/docs/users_guide/html/* $$i/docs/users_guide/*.html $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/html/ghc-2.02; \
77         #   cp -f $$i/docs/users_guide/html/* $$i/docs/users_guide/*.html $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/html/ghc-2.02; \
78         #   echo cp -f $$i/docs/html/* $$i/docs/*.html $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/html/ghc-2.02; \
79         #   cp -f $$i/docs/html/* $$i/docs/*.html $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/html/ghc-2.02; \
80         #   echo "Done."; \
81         #done
82         ##@echo "Making dvi files.."
83         #@echo "For fptools.."
84         #-$(MAKE) -C docs --no-print-directory $(MFLAGS) dvi
85         #-cp -f docs/*.dvi  $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/dvi/ghc-2.02
86         #@echo "Done."
87         #@for i in $(BIN_DIST_DIRS); do \
88         #   echo "For $$i.."; \
89         #   echo cp -f $$i/docs/users_guide/*.dvi $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/dvi/ghc-2.02; \
90         #   cp -f $$i/docs/users_guide/*.dvi $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/dvi/ghc-2.02; \
91         #   echo cp -f $$i/docs/*.dvi $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/dvi/ghc-2.02; \
92         #   cp -f $$i/docs/*.dvi $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/dvi/ghc-2.02; \
93         #   echo "Done."; \
94         #done
95         #@echo "Making info files.."
96         #@echo "For fptools.."
97         #-$(MAKE) -C docs --no-print-directory $(MFLAGS) info
98         #-cp -f docs/*.info $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/info/ghc-2.02/
99         #@echo "Done."
100         #@for i in $(BIN_DIST_DIRS); do \
101         #   echo "For $$i docs.."; \
102         #   echo cp -f $$i/docs/users_guide/*.info  $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/info/ghc-2.02; \
103         #   cp -f $$i/docs/users_guide/*.info $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/info/ghc-2.02; \
104         #   echo cp -f $$i/docs/*.info $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/info/ghc-2.02; \
105         #   cp -f $$i/docs/*.info $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/info/ghc-2.02; \
106         #   echo "Done."; \
107         #done
108
109 #
110 # binary dist'ing hslibs/, hackily.
111 #
112 binary-dist ::
113         @echo $(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM)/ghc-$(ProjectVersion)/hslibs;
114         @$(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM)/ghc-$(ProjectVersion)/hslibs;
115         $(MAKE) -C hslibs $(MFLAGS) install \
116                 BIN_DIST=1 BIN_DIST_NAME=$(BIN_DIST_NAME) \
117                 prefix=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) \
118                 exec_prefix=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) \
119                 bindir=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM)/ghc-$(ProjectVersion) \
120                 libdir=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM)/ghc-$(ProjectVersion)/hslibs \
121                 libexecdir=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM)/ghc-$(ProjectVersion)/hslibs \
122                 datadir=$(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/share/$$i-$(ProjectVersion) ;
123
124 # Even more of a hack, but I'm too tired to fix this up right now..
125 BIN_DIST_SCRIPTS_NEEDING_RENAMING=ghc stat2resid hstags mkdependHS
126
127 binary-dist::
128         @for i in $(BIN_DIST_SCRIPTS_NEEDING_RENAMING); do \
129              echo "Renaming $$i to $$i.prl"; \
130             $(MV) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM)/ghc-$(ProjectVersion)/$$i  $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM)/ghc-$(ProjectVersion)/$$i.prl; \
131         done
132         @echo "Renaming hscpp to hscpp.prl"
133         @$(MV) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM)/ghc-$(ProjectVersion)/hscpp  $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM)/ghc-$(ProjectVersion)/hscpp.prl
134
135 dist :: dist-pre
136 include $(TOP)/mk/target.mk
137 dist :: dist-post
138
139 binary-dist::
140         @echo "Mechanical and super-natty! Inspect the result and *if* happy; freeze, sell and get some sleep!"