File: Makefile

package info (click to toggle)
haskell-utils 1.11
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 292 kB
  • ctags: 64
  • sloc: makefile: 563; sh: 160
file content (68 lines) | stat: -rw-r--r-- 2,098 bytes parent folder | download
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

.PHONY: all install clean compiler_name

version=1.10
prefix := /usr/local
libdir := $(prefix)/lib
localstatedir := $(prefix)/lib

mylibdir := $(libdir)/haskell-utils

COMPILER := $(firstword $(shell bash -c "type -p ghc6 ghc hugs"))
COMPILER_NAME := $(notdir $(COMPILER))

GHC_FLAGS := -O -Wall -Werror
GHC_FLAGS += -package Cabal

USER_PROGRAMS   := update-haskell-control update-debian-haskell-files
SYSTEM_PROGRAMS := haskell-utils

PROGRAMS           := $(USER_PROGRAMS) $(SYSTEM_PROGRAMS)
SOURCES            := $(addsuffix .lhs,$(PROGRAMS))
MANPAGES           := $(addsuffix .1,$(USER_PROGRAMS)) \
                      $(addsuffix .8,$(SYSTEM_PROGRAMS))
SCRIPT_ALL         := $(wildcard scripts/*/*)
SCRIPT_EXECUTABLES := $(filter     %/rules %post% %pre%, $(SCRIPT_ALL))
SCRIPT_DATA        := $(filter-out %/rules %post% %pre%, $(SCRIPT_ALL))

SCRIPT_VERSION=$(shell cd scripts && ls -1 | sort -rn | head -n 1 )

all: $(PROGRAMS) $(MANPAGES)

$(PROGRAMS): %: %.lhs
ifeq "$(COMPILER_NAME)" "hugs"
	(echo "#!/usr/bin/runhugs +l"; cat $<) > $@
	chmod +x $@
else
	$(COMPILER) $(GHC_FLAGS) $< -o $@
endif

$(SOURCES) $(MANPAGES): %: %.in
	sed -e "s@^#line.*@@" \
	    -e "s#@version@#$(version)#g" \
	    -e "s#@libdir@#$(libdir)#g" \
	    -e "s#@localstatedir@#$(localstatedir)#g" \
	 < $< > $@

install: $(PROGRAMS)
	install -d $(prefix)/sbin/
	install -d $(prefix)/bin/
	install -m 755 $(USER_PROGRAMS)   $(prefix)/bin/
	install -m 755 $(SYSTEM_PROGRAMS) $(prefix)/sbin/
	install -d $(mylibdir)/
	install -d $(localstatedir)/haskell-utils/
	install -d $(mylibdir)/varfiles/
	install -m 644 haskell-utils-common_varfile $(mylibdir)/varfiles/
	install -d $(mylibdir)/scripts
	#set -e; for i in scripts/*; do install -d $(mylibdir)/$$i; done
	#set -e; for i in $(SCRIPT_DATA);        do install -m 644 $$i $(mylibdir)/$$i; done
	cp -a scripts $(mylibdir)
	#set -e; for i in $(SCRIPT_EXECUTABLES); do install -m 755 $$i $(mylibdir)/$$i; done
	ln -s $(SCRIPT_VERSION) $(mylibdir)/scripts/current

clean:
	rm -f *.o *.hi $(PROGRAMS) $(MANPAGES) $(SOURCES)

compiler_name:
	@echo $(COMPILER_NAME)