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
|