File: Makefile

package info (click to toggle)
pxp 1.2.9-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,844 kB
  • sloc: ml: 28,666; xml: 2,597; makefile: 822; sh: 691
file content (88 lines) | stat: -rw-r--r-- 2,330 bytes parent folder | download | duplicates (5)
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
88
# make all: compiles the configured packages with ocamlc
# make opt: compiles the configured packages with ocamlopt
# make install: installs the configured packages
# make clean: cleans everything up

NAME=pxp
TOP_DIR=.

include Makefile.rules

.PHONY: build
build: all
	if ocamlopt 2>/dev/null; then $(MAKE) opt; fi

.PHONY: all
all:
	$(MAKE) -C tools all
	for pkg in $(PKGLIST); do $(MAKE) -C src/$$pkg all || exit; done
	for pkg in $(GENPKGLIST); do $(MAKE) -C gensrc/$$pkg clean || exit; done
	for pkg in $(GENPKGLIST); do $(MAKE) -C gensrc/$$pkg generate || exit; done
	for pkg in $(GENPKGLIST); do $(MAKE) -C gensrc/$$pkg all || exit; done

.PHONY: opt
opt:
	for pkg in $(PKGLIST); do $(MAKE) -C src/$$pkg opt || exit; done
	for pkg in $(GENPKGLIST); do $(MAKE) -C gensrc/$$pkg opt || exit; done

# The following are for development:
.PHONY: lexers
lexers:
	for pkg in $(GENPKGLIST); do $(MAKE) -C gensrc/$$pkg generate || exit; done
	for pkg in $(GENPKGLIST); do $(MAKE) -C gensrc/$$pkg all || exit; done

.PHONY: lexers-again
lexers-again:
	for pkg in $(GENPKGLIST); do $(MAKE) -C gensrc/$$pkg clean || exit; done
	$(MAKE) lexers


# The following PHONY rule is important for Cygwin:
.PHONY: install
install:
	for pkg in $(PKGLIST); do $(MAKE) -C src/$$pkg install || exit; done
	for pkg in $(GENPKGLIST); do $(MAKE) -C gensrc/$$pkg install || exit; done

.PHONY: uninstall
uninstall:
	$(MAKE) -C src uninstall	
	for pkg in $(ALLGENPKGLIST); do $(OCAMLFIND) remove $$pkg; done

# On the toplevel, clean is CLEAN:

.PHONY: clean
clean:
	$(MAKE) -C tools CLEAN
	$(MAKE) -C src CLEAN
	for dir in gensrc/pxp-*; do $(MAKE) -C $$dir CLEAN || true; done
	$(MAKE) -C examples CLEAN
	$(MAKE) -C rtests CLEAN
	rm -f .testscript .testout

.PHONY: CLEAN
CLEAN: clean

.PHONY: distclean
distclean: clean
	rm -f *~ Makefile.conf
	$(MAKE) -C tools distclean
	$(MAKE) -C src distclean
	$(MAKE) -C examples distclean
	$(MAKE) -C rtests distclean
	test ! -f doc/Makefile || $(MAKE) -C doc distclean
	for dir in gensrc/pxp-*; do if [ -f $$dir/gen_dir ]; then rm -rf $$dir; else $(MAKE) -C $$dir distclean; fi; done

.PHONY: RELEASE
RELEASE:
	./configure -version >RELEASE

# for oasis
.PHONY: _oasis
_oasis: _oasis.in
	sed -e 's/@VERSION@/$(VERSION)/' _oasis.in >_oasis
	oasis setup

.PHONY: postconf
postconf:
	cat setup.save >>setup.data