[go: up one dir, main page]

File: Makefile

package info (click to toggle)
alex 2.3.3-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 560 kB
  • ctags: 70
  • sloc: haskell: 3,134; xml: 1,314; yacc: 235; makefile: 116; ansic: 4
file content (67 lines) | stat: -rw-r--r-- 1,703 bytes parent folder | download | duplicates (4)
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
TOP = ..
include $(TOP)/mk/boilerplate.mk

TEMPLATES = \
	AlexTemplate \
	AlexTemplate-ghc \
	AlexTemplate-ghc-debug \
	AlexTemplate-debug \
	AlexWrapper-basic \
	AlexWrapper-posn \
	AlexWrapper-monad \
	AlexWrapper-gscan

GENERIC_TEMPLATE = GenericTemplate.hs
EXCLUDED_SRCS = $(GENERIC_TEMPLATE) wrappers.hs

INSTALL_DATAS = $(TEMPLATES)

all :: $(TEMPLATES)

override datadir = $(libdir)

ghc_411_at_least = $(shell expr "$(GhcMajVersion)"  =   4 \& \
                                "$(GhcMinVersion)" \>= 11 \| \
                                "$(GhcMajVersion)" \>   4)

ifeq "$(ghc_411_at_least)" "1"
CPP_IT = $(GHC) -E -cpp -o
else
CPP_IT = $(GHC) -E -cpp >
endif

AlexTemplate.hspp : $(GENERIC_TEMPLATE)
	$(CPP_IT) $@ $(GENERIC_TEMPLATE)

AlexTemplate-ghc.hspp : $(GENERIC_TEMPLATE)
	$(CPP_IT) $@ -DALEX_GHC $(GENERIC_TEMPLATE)

AlexTemplate-ghc-debug.hspp : $(GENERIC_TEMPLATE)
	$(CPP_IT) $@ -DALEX_GHC -DALEX_DEBUG $(GENERIC_TEMPLATE)

AlexTemplate-debug.hspp : $(GENERIC_TEMPLATE)
	$(CPP_IT) $@ -DALEX_DEBUG $(GENERIC_TEMPLATE)

AlexTemplate-monad.hspp : $(GENERIC_TEMPLATE)
	$(CPP_IT) $@ -DALEX_MONAD $(GENERIC_TEMPLATE)

AlexWrapper-basic.hspp : wrappers.hs
	$(CPP_IT) $@ -DALEX_BASIC $<

AlexWrapper-posn.hspp : wrappers.hs
	$(CPP_IT) $@ -DALEX_POSN $<

AlexWrapper-monad.hspp : wrappers.hs
	$(CPP_IT) $@ -DALEX_MONAD $<

AlexWrapper-gscan.hspp : wrappers.hs
	$(CPP_IT) $@ -DALEX_GSCAN $<

# hack to turn cpp-style '# 27 "GenericTemplate.hs"' into 
# '{-# LINE 27 "GenericTemplate.hs" #-}'.
% : %.hspp
	perl -pe 's/^#\s+(\d+)\s+(\"[^\"]*\")/{-# LINE \1 \2 #-}/g;s/\$$(Id:.*)\$$/\1/g' < $< > $@

CLEAN_FILES += $(TEMPLATES) $(patsubst %, %.hspp, $(TEMPLATES))

include $(TOP)/mk/target.mk