File: Makefile.ghc

package info (click to toggle)
haskelldb 0.9.cvs.601-13
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 680 kB
  • ctags: 33
  • sloc: haskell: 4,392; sh: 1,900; makefile: 130
file content (87 lines) | stat: -rw-r--r-- 2,145 bytes parent folder | download | duplicates (2)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
COMPILER_DIR=$(BUILD_DIR)/ghc

WITH_HSQL = $(WITH_GHC_HSQL)
WITH_HSQL_ODBC = $(WITH_GHC_HSQL_ODBC)
WITH_HSQL_MYSQL = $(WITH_GHC_HSQL_MYSQL)
WITH_HSQL_SQLITE = $(WITH_GHC_HSQL_SQLITE)
WITH_HSQL_POSTGRESQL = $(WITH_GHC_HSQL_POSTGRESQL)
WITH_WX = $(WITH_GHC_WX)
WITH_PLUGINS = $(WITH_GHC_PLUGINS)

include common.mk

ifeq "$(WITH_HSQL)" "yes"
PACKAGE_FLAGS += -package hsql
endif
ifeq "$(WITH_WX)" "yes"
PACKAGE_FLAGS += -package wxcore
endif
ifeq "$(WITH_PLUGINS)" "yes"
PACKAGE_FLAGS += -package plugins
endif

GHCFLAGS += $(addprefix -i, $(COMPILER_DIR))
GHCFLAGS += -package-name haskelldb

LDFLAGS := -L$(COMPILER_DIR) -lHShdb $(LDFLAGS)

OBJS = $(patsubst %.hs, %.o, $(SRC))

OBJ_HSQL = $(patsubst %.hs, %.o, $(SRC_HSQL))
OBJ_WX = $(patsubst %.hs, %.o, $(SRC_WX))
OBJ_PLUGINS = $(patsubst %.hs, %.o, $(SRC_PLUGINS))

all: $(COMPILER_DIR)/libHShdb.a $(PROGRAMS)

$(COMPILER_DIR)/libHShdb.a: $(OBJS)
	$(AR) -rc $@ $(filter %.o, $^)

$(COMPILER_DIR)/Database/HaskellDB/BoundedList.o: GHCFLAGS += -fallow-undecidable-instances

$(COMPILER_DIR)/Database/HaskellDB/DriverAPI.o: GHCFLAGS += -Onot

$(COMPILER_DIR)/$(OBJ_HSQL): GHCFLAGS += -package hsql

$(COMPILER_DIR)/$(OBJ_WX): GHCFLAGS += -package wxcore

$(COMPILER_DIR)/$(OBJ_PLUGINS): GHCFLAGS += -package plugins

$(COMPILER_DIR)/DBDirect: GHCFLAGS += $(PACKAGE_FLAGS)

%: %.o
	$(GHC) $(GHCFLAGS) $^ $(LDFLAGS) -o $@


%.o: %.hs
	$(GHC) $(GHCFLAGS) -c $^ -o $@

%.hi: %.o
	@:

install: all haskelldb.pkg install-filesonly
	-cd $(GHC_DIR); rm -f HShdb.o
	$(GHC_PKG) -u --auto-ghci-libs -i haskelldb.pkg

install-filesonly: all
	cd build/ghc; tar -cf ghc-interfaces.tar `find Database -name '*.hi' -print`
	cp build/ghc/ghc-interfaces.tar $(GHC_DIR)/imports
	cd $(GHC_DIR)/imports; tar -xf ghc-interfaces.tar; rm -f ghc-interfaces.tar
	cd build/ghc; cp libHShdb.a $(GHC_DIR)

uninstall:
	-cd $(GHC_DIR)/imports; rm -rf Database/HaskellDB*
	-cd $(GHC_DIR); rm -f libHShdb.a HShdb.o
	-$(GHC_PKG) -r haskelldb

# cleaning up

clean: 
	-rm -f .depend

# dependencies

depend: .depend

.depend: $(SRC) $(PROG_SRC)
	$(GHC) -M -optdep-f -optdep.depend $(GHCFLAGS) $(PACKAGE_FLAGS) $^
include .depend