summaryrefslogtreecommitdiff
path: root/utils/ghc-pkg/Makefile
blob: 6fba1c814bbd25f458fa65a7a0376751fd71f11a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

TOP=../..
include $(TOP)/mk/boilerplate.mk
include $(TOP)/mk/cabal-flags.mk

SRC_HC_OPTS += -Wall

# XXX From old Makefile:
# SRC_HC_OPTS += -cpp -Wall -fno-warn-name-shadowing -fno-warn-unused-matches

ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
INSTALL_FLAGS =
else
INSTALL_FLAGS = --enable-shell-wrappers
endif

default all: with-bootstrapping-compiler

with-bootstrapping-compiler: Version.hs
	$(CABAL) configure --distpref dist-inplace         \
	                   $(INPLACE_DIRS_CONFIGURE_FLAGS) \
	                   $(USE_BOOT_CONFIGURE_FLAGS)     \
	                   $(COMMON_CONFIGURE_FLAGS)
	$(CABAL) build     --distpref dist-inplace $(BUILD_FLAGS)
	$(CABAL) install   --distpref dist-inplace $(INSTALL_FLAGS)

with-stage-1: Version.hs
	$(CABAL) configure --distpref dist-install         \
	                   $(INSTALL_DIRS_CONFIGURE_FLAGS) \
	                   $(USE_STAGE1_CONFIGURE_FLAGS)   \
	                   $(COMMON_CONFIGURE_FLAGS)
	$(CABAL) build     --distpref dist-install $(BUILD_FLAGS)

install:
	$(INSTALL_PACKAGE) install UNUSED UNUSED '$(DESTDIR)' '$(prefix)' \
	                   '$(prefix)' '$(bindir)' '$(libdir)'            \
                       '$(libexecdir)' '$(dynlibdir)' '$(datadir)'    \
                       '$(docdir)' '$(htmldir)' '$(haddockdir)'
	                   --distpref dist-install                        \
	                   $(INSTALL_FLAGS)

clean: distclean

distclean:
	-$(CABAL) clean --distpref dist-inplace
	-$(CABAL) clean --distpref dist-install
	$(RM) -f Version.hs

# XXX fix binary-dist

##### Here down is unique to ghc-pkg

Version.hs: Makefile $(TOP)/mk/config.mk
	$(RM) -f Version.hs
	echo "module Version where"                    >> Version.hs
	echo "version, targetOS, targetARCH :: String" >> Version.hs
	echo "version    = \"$(ProjectVersion)\""      >> Version.hs
	echo "targetOS   = \"$(TargetOS_CPP)\""        >> Version.hs
	echo "targetARCH = \"$(TargetArch_CPP)\""      >> Version.hs