1 ############################################################################
3 # This is the top-level Makefile for GHC
8 # Builds GHC, then builds the libraries,
9 # then uses this GHC ("stage 1") to build itself
16 # bootstrap2 + we build GHC one more time ("stage 3")
19 # Just build up to stage 1
22 # Just build stage 2 (stage 1 must be built)
25 # Just build stage 3 (stage 2 must be built)
31 # Install everything, including stage 2 compiler by default
32 # (override with stage=3, for example).
35 # Make a source dist (WARNING: runs 'make distclean' first)
38 # Builds a binary distribution
40 # framework-pkg [MacOS only]
41 # Builds /Library/Frameworks/GHC.framework wrapped into a Mac
44 # framework-binary-dist [MacOS only]
45 # Builds GHC.framework encapsulating a binary distribution
46 # (to give a relocatable framework)
49 # Builds an HC-file bundle, for bootstrapping
51 # clean, distclean, maintainer-clean
52 # Increasing levels of cleanliness
54 ############################################################################
57 include $(TOP
)/mk
/boilerplate.mk
60 # Order is important! It's e.g. necessary to descend into include/
61 # before the rest to have a config.h, etc.
63 # If we're booting from .hc files, swap the order
64 # we descend into subdirs - to boot utils must be before driver.
66 .PHONY
: stage1 stage2 stage3 bootstrap bootstrap2 bootstrap3
68 # We can't 'make boot' in libraries until stage1 is built
69 ifeq "$(BootingFromHc)" "YES"
70 SUBDIRS_BUILD
= includes rts compat compiler docs utils driver
72 SUBDIRS_BUILD
= includes compat utils driver docs compiler rts libraries
/Cabal
/doc
75 SUBDIRS
= gmp libffi includes compat utils driver docs rts libraries compiler libraries
/Cabal
/doc
77 # Sanity check that all the boot libraries are in the tree, to catch
78 # failure to run darcs-all.
80 @ds
=`cat libraries/boot-packages`;\
82 if
test ! -d libraries
/$$d; then \
83 echo
"Looks like you're missing libraries/$$d,"; \
84 echo
"maybe you haven't done './darcs-all get'?"; \
88 @if
test ! -f libraries
/base
/configure
; then \
89 echo
"Looks like you're missing base's configure script."; \
90 echo
"Did you run 'sh boot' at the top level?"; \
94 ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
95 ifneq "$(WhatGccIsCalled)" ""
96 GCC_LIB_DEP
= stamp.inplace-gcc-lib
100 stage1
: $(GCC_LIB_DEP
) check-packages
101 $(MAKE
) -C libraries boot
103 $(MAKE
) -C libffi
all
104 $(MAKE
) -C utils
/mkdependC boot
105 @case
'${MFLAGS}' in
*-[ik
]*) x_on_err
=0;; *-r
*[ik
]*) x_on_err
=0;; *) x_on_err
=1;; esac
; \
106 for i in
$(SUBDIRS_BUILD
); do \
107 echo
"------------------------------------------------------------------------"; \
108 echo
"== $(MAKE) boot $(MFLAGS);"; \
109 echo
" in $(shell pwd)/$$i"; \
110 echo
"------------------------------------------------------------------------"; \
111 $(MAKE
) --no-print-directory
-C
$$i $(MFLAGS
) boot
; \
112 if
[ $$?
-eq
0 -o
$$x_on_err -eq
0 ] ; then true
; else exit
1; fi
; \
114 for i in
$(SUBDIRS_BUILD
); do \
115 echo
"------------------------------------------------------------------------"; \
116 echo
"== $(MAKE) all $(MFLAGS);"; \
117 echo
" in $(shell pwd)/$$i"; \
118 echo
"------------------------------------------------------------------------"; \
119 $(MAKE
) --no-print-directory
-C
$$i $(MFLAGS
) all; \
120 if
[ $$?
-eq
0 -o
$$x_on_err -eq
0 ] ; then true
; else exit
1; fi
; \
122 $(MAKE
) -C libraries
all
124 # When making distributions (i.e., whether with binary-dist or using the
125 # vanilla install target to create an installer package), we can have problems
126 # if some things (e.g. ghc-pkg) are compiled with the bootstrapping compiler
127 # and some (e.g. the stage 2 compiler) with the stage1 compiler. See #1860 for
128 # an example. Thus, we explicitly build a second version with the stage 1
129 # compiler of all utils that get installed and of all extra support binaries
130 # includes in binary dists.
131 stage2
: check-packages
132 $(MAKE
) -C compiler boot stage
=2
133 $(MAKE
) -C compiler stage
=2
136 stage3
: check-packages
137 $(MAKE
) -C compiler boot stage
=3
138 $(MAKE
) -C compiler stage
=3
140 bootstrap
: bootstrap2
145 bootstrap3
: bootstrap2
148 ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
149 ifneq "$(WhatGccIsCalled)" ""
150 all :: stamp.inplace-gcc-lib
152 .PHONY
: stamp.inplace-gcc-lib
154 # This is a hack to make Cabal able to find ld when we run tests with
155 # the inplace ghc. We should probably install all the gcc stuff in our
156 # tree somewhere, and then have install copy it from there rather than
157 # from the filesystem.
158 stamp.inplace-gcc-lib
:
159 $(RM
) -r compiler
/gcc-lib
160 mkdir compiler
/gcc-lib
161 cp
$(LD
) compiler
/gcc-lib
165 $(RM
) -r compiler
/gcc-lib
166 $(RM
) -f inplace-gcc-lib
172 # -----------------------------------------------------------------------------
175 # We want to install the stage 2 bootstrapped compiler by default, but we let
176 # the user override this by saying 'make install stage=1', for example.
178 INSTALL_STAGE
= stage
=2
184 $(MAKE
) INSTALL_PROGRAM
='$(INSTALL_PROGRAM) -s' install
186 # Same as default rule, but we pass $(INSTALL_STAGE) to $(MAKE) too
187 install :: check-packages
188 @case
'${MFLAGS}' in
*-[ik
]*) x_on_err
=0;; *-r
*[ik
]*) x_on_err
=0;; *) x_on_err
=1;; esac
; \
189 for i in
$(SUBDIRS
); do \
190 echo
"------------------------------------------------------------------------"; \
191 echo
"== $(MAKE) $@ $(MFLAGS);"; \
192 echo
" in $(shell pwd)/$$i"; \
193 echo
"------------------------------------------------------------------------"; \
194 $(MAKE
) --no-print-directory
-C
$$i $(INSTALL_STAGE
) $(MFLAGS
) $@
; \
195 if
[ $$?
-eq
0 -o
$$x_on_err -eq
0 ] ; then true
; else exit
1; fi
; \
198 ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
199 # These files need to be in the InstallShield
200 # INSTALL_DATAS rather than INSTALL_DOCS is used so these files go
201 # in the top-level directory of the distribution
202 INSTALL_DATAS
+= ANNOUNCE LICENSE README
205 # If installing on Windows with MinGW32, copy the gcc compiler, headers and libs
206 # and the perl interpreter and dll into the GHC prefix directory.
207 # Gcc and Perl source locations derived from configuration data.
208 ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
209 ifneq "$(WhatGccIsCalled)" ""
211 -mkdir
$(prefix)/gcc-lib
212 -mkdir
$(prefix)/include
213 -mkdir
$(prefix)/include/mingw
214 -cp
-rp
$(GccDir
)..
/include/* $(prefix)/include/mingw
215 -cp
-rp
$(GccDir
)..
/lib
/gcc-lib
/mingw32
/$(GccVersion
)/* $(prefix)/gcc-lib
216 -cp
-rp
$(GccDir
)..
/lib
/gcc
/mingw32
/$(GccVersion
)/* $(prefix)/gcc-lib
217 -cp
-rp
$(GccDir
)..
/libexec
/gcc
/mingw32
/$(GccVersion
)/* $(prefix)/gcc-lib
218 -cp
$(GccDir
)..
/lib
/*.
* $(prefix)/gcc-lib
219 -cp
$(GccDir
)gcc.exe
$(prefix)
220 -cp
$(GccDir
)as.exe
$(prefix)/gcc-lib
221 -cp
$(GccDir
)ld.exe
$(prefix)/gcc-lib
222 -cp
$(GccDir
)dllwrap.exe
$(prefix)/gcc-lib
223 -cp
$(GccDir
)dlltool.exe
$(prefix)/gcc-lib
224 -cp
$(GhcDir
)..
/perl.exe
$(prefix)
225 -cp
$(GhcDir
)..
/perl56.dll
$(prefix)
229 # Install gcc-extra-opts
231 $(INSTALL_DIR
) $(DESTDIR
)$(libdir)
232 $(INSTALL_DATA
) $(INSTALL_OPTS
) extra-gcc-opts
$(DESTDIR
)$(libdir)
235 @case
'${MFLAGS}' in
*-[ik
]*) x_on_err
=0;; *-r
*[ik
]*) x_on_err
=0;; *) x_on_err
=1;; esac
; \
236 for i in
$(SUBDIRS
); do \
237 echo
"------------------------------------------------------------------------"; \
238 echo
"== $(MAKE) $@ $(MFLAGS);"; \
239 echo
" in $(shell pwd)/$$i"; \
240 echo
"------------------------------------------------------------------------"; \
241 $(MAKE
) --no-print-directory
-C
$$i $(INSTALL_STAGE
) $(MFLAGS
) $@
; \
242 if
[ $$?
-eq
0 -o
$$x_on_err -eq
0 ] ; then true
; else exit
1; fi
; \
245 # -----------------------------------------------------------------------------
246 # Making a binary distribution
248 # `dist' `binary-dist'
249 # Create a distribution tar file for this program. The tar file
250 # should be set up so that the file names in the tar file start with
251 # a subdirectory name which is the name of the package it is a
252 # distribution for. This name can include the version number.
254 # For example, the distribution tar file of GCC version 1.40 unpacks
255 # into a subdirectory named `gcc-1.40'.
257 # The easiest way to do this is to create a subdirectory
258 # appropriately named, use ln or cp to install the proper files in
259 # it, and then tar that subdirectory.
261 # The dist target should explicitly depend on all non-source files
262 # that are in the distribution, to make sure they are up to date in
263 # the distribution. See Making Releases.
265 # binary-dist is a GHC addition for binary distributions
269 -rm -rf
$(BIN_DIST_DIR
)
270 -$(RM
) $(BIN_DIST_TARBALL
)
272 ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
275 $(MAKE
) prefix=$(BIN_DIST_DIR
) install
276 $(MAKE
) prefix=$(BIN_DIST_DIR
) install-docs
279 cd
$(BIN_DIST_DIR
) && $(SHELL
) ..
/distrib
/prep-bin-dist-mingw
282 $(MKDIRHIER
) $(BIN_DIST_DIR
)/icons
283 cp distrib
/hsicon.ico
$(BIN_DIST_DIR
)/icons
287 BinDistDirs
= includes compiler docs rts
289 BIN_DIST_TOP
= distrib
/Makefile \
290 distrib
/configure-bin.ac \
301 ifeq "$(darwin_TARGET_OS)" "1"
302 BIN_DIST_TOP
+=mk
/fix_install_names.sh
305 .PHONY
: binary-dist-pre
% binary-dist
307 binary-dist
:: binary-dist-pre
310 $(MKDIRHIER
) $(BIN_DIST_DIR
)/mk
311 echo
'include $$(TOP)/Makefile-vars' > $(BIN_DIST_DIR
)/mk
/boilerplate.mk
312 echo
'include $$(TOP)/mk/package.mk' > $(BIN_DIST_DIR
)/mk
/target.mk
313 echo
'include $$(TOP)/mk/install.mk' >> $(BIN_DIST_DIR
)/mk
/target.mk
314 echo
'include $$(TOP)/mk/recurse.mk' >> $(BIN_DIST_DIR
)/mk
/target.mk
315 echo
'' > $(BIN_DIST_DIR
)/mk
/compat.mk
316 cp mk
/package.mk
$(BIN_DIST_DIR
)/mk
/
317 cp mk
/install.mk
$(BIN_DIST_DIR
)/mk
/
318 cp mk
/recurse.mk
$(BIN_DIST_DIR
)/mk
/
319 cp mk
/fptools.css
$(BIN_DIST_DIR
)/mk
/
320 $(MKDIRHIER
) $(BIN_DIST_DIR
)/lib
/$(TARGETPLATFORM
)
321 $(MKDIRHIER
) $(BIN_DIST_DIR
)/share
324 $(MAKE
) -C gmp binary-dist DOING_BIN_DIST
=YES
325 $(MAKE
) -C includes binary-dist DOING_BIN_DIST
=YES
326 $(MAKE
) -C compiler binary-dist DOING_BIN_DIST
=YES
$(INSTALL_STAGE
)
327 $(MAKE
) -C rts binary-dist DOING_BIN_DIST
=YES
328 $(MAKE
) -C driver binary-dist DOING_BIN_DIST
=YES
329 $(MAKE
) -C utils binary-dist DOING_BIN_DIST
=YES
330 $(MAKE
) -C docs binary-dist DOING_BIN_DIST
=YES
331 $(MAKE
) -C libraries binary-dist DOING_BIN_DIST
=YES
332 $(MAKE
) -C libraries
/Cabal
/doc binary-dist DOING_BIN_DIST
=YES
334 VARFILE
=$(BIN_DIST_DIR
)/Makefile-vars.in
337 @for i in
$(BIN_DIST_TOP
); do \
338 if
test -f
"$$i"; then \
339 echo cp
$$i $(BIN_DIST_DIR
); \
340 cp
$$i $(BIN_DIST_DIR
); \
343 @echo
"Configuring the Makefile for this project..."
345 echo
"package = ghc" >> $(VARFILE
)
346 echo
"version = $(ProjectVersion)" >> $(VARFILE
)
347 echo
"ProjectVersion = $(ProjectVersion)" >> $(VARFILE
)
348 echo
"HaveLibGmp = $(HaveLibGmp)" >> $(VARFILE
)
349 echo
"GhcLibsWithUnix = $(GhcLibsWithUnix)" >> $(VARFILE
)
350 echo
"GhcWithInterpreter = $(GhcWithInterpreter)" >> $(VARFILE
)
351 echo
"GhcHasEditline = $(GhcHasEditline)" >> $(VARFILE
)
352 echo
"BootingFromHc = $(BootingFromHc)" >> $(VARFILE
)
353 echo
"XMLDocWays = $(XMLDocWays)" >> $(VARFILE
)
354 # We won't actually use xsltproc, but we need to know if it's "" or not
355 echo
"XSLTPROC = $(XSLTPROC)" >> $(VARFILE
)
356 echo
"TARGETPLATFORM = $(TARGETPLATFORM)" >> $(VARFILE
)
357 echo
"HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(VARFILE
)
359 cat distrib
/Makefile-bin-vars.in
>> $(VARFILE
)
360 @echo
"Generating a shippable configure script.."
361 $(MV
) $(BIN_DIST_DIR
)/configure-bin.ac
$(BIN_DIST_DIR
)/configure.ac
362 ( cd
$(BIN_DIST_DIR
); autoreconf
)
365 # Tar up the distribution and build a manifest
366 binary-dist
:: tar-binary-dist
368 .PHONY
: tar-binary-dist
370 ( cd
$(BIN_DIST_TOPDIR_ABS
); tar cf
- $(BIN_DIST_NAME
) | bzip2
>$(BIN_DIST_TARBALL
) )
371 ( cd
$(BIN_DIST_TOPDIR_ABS
); bunzip2
-c
$(BIN_DIST_TARBALL
) |
tar tf
- | sed
"s/^ghc-$(ProjectVersion)/fptools/" |
sort >$(FPTOOLS_TOP_ABS
)/bin-manifest-
$(ProjectVersion
) )
373 PUBLISH_FILES
= $(BIN_DIST_TARBALL
)
375 # Upload the distribution and documentation
377 WINDOWS_INSTALLER_BASE
= ghc-
$(ProjectVersion
)-$(TARGETPLATFORM
)
378 WINDOWS_INSTALLER
= $(WINDOWS_INSTALLER_BASE
)$(exeext
)
380 PUBLISH_FILES
+= $(WINDOWS_INSTALLER
)
382 binary-dist
:: generate-windows-installer
384 .PHONY
: generate-windows-installer
385 generate-windows-installer
::
386 $(SED
) "s/@VERSION@/$(ProjectVersion)/" distrib
/ghc.iss |
$(ISCC
) /O.
/F
$(WINDOWS_INSTALLER_BASE
) -
389 # Upload the distribution and documentation
390 ifneq "$(PublishLocation)" ""
392 make publish-binary-dist
'prefix=$(BIN_DIST_INST_DIR)'
395 nTimes
= set
-e
; for i in
`seq 1 $(1)`; do echo Try
"$$i: $(2)"; if
$(2); then break
; fi
; done
397 .PHONY
: publish-binary-dist
398 publish-binary-dist
::
399 @for f in
$(PUBLISH_FILES
); \
400 do
$(call nTimes
,10,$(PublishCp
) $$f $(PublishLocation
)/dist); \
403 # You need to "make binddisttest" before publishing the docs, as it
404 # works by publish setting $(prefix) to inside the binddisttest
405 # directory so $(docdir) points to the right place.
407 # We assume that Windows means Cygwin, as we can't just use docdir
408 # unchanged or rsync (really SSH?) thinks that c:/foo means /foo on
411 ifeq "$(Windows)" "YES"
412 PUBLISH_DOCDIR
= $(shell cygpath
--unix
$(docdir
))
414 PUBLISH_DOCDIR
= $(docdir
)
417 publish-binary-dist
::
418 $(call nTimes
,10,$(PublishCp
) -r
"$(PUBLISH_DOCDIR)"/* $(PublishLocation
)/docs
)
421 @echo
"Mechanical and super-natty! Inspect the result and *if* happy; freeze, sell and get some sleep!"
423 # -----------------------------------------------------------------------------
424 # Building MacOS installer packages
427 # Create an installer package for /Library/Frameworks/GHC.framework
429 # 'framework-binary-dist'
430 # Create an installer package for GHC.framework encapsulating a
431 # binary-dist to make it relocatable
432 # FIXME: This is only partially implemented so far
434 ifeq "$(darwin_TARGET_OS)" "1"
436 .PHONY
: framework-pkg
, framework-binary-dist
439 $(MAKE
) -C distrib
/MacOS framework-pkg
441 framework-binary-dist
:
442 $(MAKE
) -C distrib
/MacOS framework-binary-dist
446 # -----------------------------------------------------------------------------
447 # Building source distributions
454 # WARNING: `make dist' calls `make distclean' before tarring up the tree.
460 # Directory in which we're going to build the src dist
462 SRC_DIST_NAME
=ghc-
$(ProjectVersion
)
463 SRC_DIST_DIR
=$(shell pwd
)/$(SRC_DIST_NAME
)
466 # Files to include in source distributions
468 SRC_DIST_DIRS
+= mk docs distrib bindisttest
$(filter-out docs distrib libraries
/Cabal
/doc
,$(SUBDIRS
))
470 configure.ac config.guess config.sub configure \
471 aclocal.m4 README ANNOUNCE HACKING LICENSE Makefile install-sh \
472 ghc.spec.in ghc.spec extra-gcc-opts.in VERSION boot
474 # -----------------------------------------------------------------------------
475 # Source distributions
477 # A source dist is built from a complete build tree, because we
478 # require some extra files not contained in a darcs checkout: the
479 # output from Happy and Alex, for example.
481 # The steps performed by 'make dist' are as follows:
482 # - create a complete link-tree of the current build tree in /tmp
483 # - run 'make distclean' on that tree
484 # - remove a bunch of other files that we know shouldn't be in the dist
485 # - tar up first the extralibs package, then the main source package
487 EXTRA_LIBS
=$(patsubst %, $(SRC_DIST_NAME
)/libraries
/%, $(shell cat libraries
/extra-packages
))
489 SRC_DIST_TARBALL
= ghc-
$(ProjectVersion
)-src.
tar.bz2
490 SRC_DIST_EXTRALIBS_TARBALL
= ghc-
$(ProjectVersion
)-src-extralibs.
tar.bz2
493 echo
$(ProjectVersion
) >VERSION
498 $(RM
) -rf
$(SRC_DIST_DIR
)
499 $(RM
) $(SRC_DIST_NAME
).
tar.gz
500 mkdir
$(SRC_DIST_DIR
)
501 ( cd
$(SRC_DIST_DIR
) \
502 && for i in
$(SRC_DIST_DIRS
); do mkdir
$$i; (cd
$$i && lndir
$(FPTOOLS_TOP_ABS
)/$$i ); done \
503 && for i in
$(SRC_DIST_FILES
); do
$(LN_S
) $(FPTOOLS_TOP_ABS
)/$$i .
; done \
504 && $(MAKE
) distclean \
505 && if
test -f
$(FPTOOLS_TOP_ABS
)/libraries
/haskell-src
/dist/build
/Language
/Haskell
/Parser.hs
; then
$(CP
) $(FPTOOLS_TOP_ABS
)/libraries
/haskell-src
/dist/build
/Language
/Haskell
/Parser.hs libraries
/haskell-src
/Language
/Haskell
/ ; mv libraries
/haskell-src
/Language
/Haskell
/Parser.ly libraries
/haskell-src
/Language
/Haskell
/Parser.ly.source
; fi \
506 && $(RM
) -rf compiler
/stage
[123] mk
/build.mk \
507 && $(FIND
) $(SRC_DIST_DIRS
) \
( -name _darcs
-o
-name SRC
-o
-name
"autom4te*" -o
-name
"*~" -o
-name
".cvsignore" -o
-name
"\#*" -o
-name
".\#*" -o
-name
"log" -o
-name
"*-SAVE" -o
-name
"*.orig" -o
-name
"*.rej" \
) -print | xargs
$(RM
) -rf \
509 tar chf
- $(EXTRA_LIBS
) | bzip2
>$(FPTOOLS_TOP_ABS
)/$(SRC_DIST_EXTRALIBS_TARBALL
)
510 $(RM
) -rf
$(EXTRA_LIBS
)
511 tar chf
- $(SRC_DIST_NAME
) 2>$src_log | bzip2
>$(FPTOOLS_TOP_ABS
)/$(SRC_DIST_TARBALL
)
513 # Upload the distribution(s)
514 # Retrying is to work around buggy firewalls that corrupt large file transfers
516 ifneq "$(PublishLocation)" ""
518 @for i in
0 1 2 3 4 5 6 7 8 9; do \
519 echo
"Try $$i: $(PublishCp) $(SRC_DIST_EXTRALIBS_TARBALL) $(PublishLocation)/dist"; \
520 if
$(PublishCp
) $(SRC_DIST_EXTRALIBS_TARBALL
) $(PublishLocation
)/dist; then break
; fi\
522 @for i in
0 1 2 3 4 5 6 7 8 9; do \
523 echo
"Try $$i: $(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation)/dist"; \
524 if
$(PublishCp
) $(SRC_DIST_TARBALL
) $(PublishLocation
)/dist; then break
; fi\
528 # -----------------------------------------------------------------------------
532 $(RM
) -r ghc-
$(ProjectVersion
)
533 $(LN_S
) . ghc-
$(ProjectVersion
)
534 $(FIND
) ghc-
$(ProjectVersion
)/compiler \
535 ghc-
$(ProjectVersion
)/utils \
536 ghc-
$(ProjectVersion
)/compat \
537 ghc-
$(ProjectVersion
)/libraries
-follow \
538 \
( -name
"*.hc" -o
-name
"*_hsc.[ch]" -o
-name
"*_stub.[ch]" \
) -print > hc-files-to-go
539 for f in
`$(FIND) ghc-$(ProjectVersion)/compiler ghc-$(ProjectVersion)/utils ghc-$(ProjectVersion)/libraries -name "*.hsc" -follow -print` ""; do \
540 if
test "x$$f" != "x" && test -e
`echo "$$f" | sed 's/hsc$$/hs/g'`; then \
541 echo
`echo "$$f" | sed 's/hsc$$/hs/g' ` >> hc-files-to-go
; \
544 for f in
`$(FIND) ghc-$(ProjectVersion)/compiler ghc-$(ProjectVersion)/rts -name "*.cmm" -follow -print` ""; do \
545 if
test "x$$f" != "x"; then \
546 echo
`echo "$$f" | sed 's/cmm$$/hc/g' ` >> hc-files-to-go
; \
549 echo ghc-
$(ProjectVersion
)/libraries
/base
/GHC
/PrimopWrappers.hs
>> hc-files-to-go
550 echo ghc-
$(ProjectVersion
)/compiler
/parser
/Parser.hs
>> hc-files-to-go
551 echo ghc-
$(ProjectVersion
)/compiler
/parser
/ParserCore.hs
>> hc-files-to-go
552 echo ghc-
$(ProjectVersion
)/compiler
/main
/ParsePkgConf.hs
>> hc-files-to-go
553 echo ghc-
$(ProjectVersion
)/libraries
/haskell-src
/Language
/Haskell
/Parser.hs
>> hc-files-to-go
554 tar czf ghc-
$(ProjectVersion
)-$(TARGETPLATFORM
)-hc.
tar.gz
`cat hc-files-to-go`
556 # -----------------------------------------------------------------------------
559 CLEAN_FILES
+= hc-files-to-go
*-hc.
tar.gz
561 DIST_CLEAN_FILES
+= config.cache config.status mk
/config.h mk
/stamp-h \
562 docs
/users_guide
/ug-book.xml extra-gcc-opts
564 # don't clean config.mk: it's needed when cleaning stuff later on
565 LATE_DIST_CLEAN_FILES
+= mk
/config.mk
567 # VERSION is shipped in a source dist
568 MAINTAINER_CLEAN_FILES
+= VERSION
571 $(RM
) -rf autom4te.cache
574 $(MAKE
) -C bindisttest
$@
575 if
test -d testsuite
; then
$(MAKE
) -C testsuite
$@
; fi
577 # -----------------------------------------------------------------------------
579 # Turn off target.mk's rules for 'all', 'boot' and 'install'.
582 NO_INSTALL_TARGET
=YES
584 include $(TOP
)/mk
/target.mk
586 # -----------------------------------------------------------------------------