-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
50 lines (41 loc) · 1.37 KB
/
Makefile
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
# Build ELLCC.
VERSION=0.0.2
# Get the names of the subdirectories.
SUBDIRS := llvm-build gnu libecc
all install clean veryclean check:: llvm-build gnu/gnu-build
@for dir in $(SUBDIRS) ; do \
echo Making $@ in $$dir ; \
$(MAKE) CLANG_VENDOR="ellcc $(VERSION)svn based on" -C $$dir $@ || exit 1 ; \
done
install:: docs
llvm-build gnu/gnu-build:
./build
.PHONY: buildrelease
buildrelease:
$(MAKE) -C llvm-build clean
$(MAKE) CLANG_VENDOR="ellcc $(VERSION) based on" -C llvm-build install || exit 1 ; \
.PHONY: release
release:
mkdir -p release
rm -fr ellcc-$(VERSION)
mkdir -p ellcc-$(VERSION)
make -C libecc veryclean
make -C workspace veryclean
tar --exclude "*.svn*" --exclude "*/test/*" -cvp -f- bin libecc workspace | \
(cd ellcc-$(VERSION); tar xfp -)
(cd ellcc-$(VERSION); tree -T "ELLCC Release Directory Tree" -H ellcc --nolinks > ../tree.html)
tar -cvpz -frelease/ellcc-$(VERSION)-linux-x86_64.tgz ellcc-$(VERSION)
.PHONY: tagrelease
tagrelease:
svn cp -m "Tag release $(VERSION)." http://ellcc.org/svn/ellcc/trunk http://ellcc.org/svn/ellcc/tags/ellcc-$(VERSION)
.PHONY: untagrelease
untagrelease:
svn rm http://ellcc.org/svn/ellcc/trunk http://ellcc.org/svn/ellcc/tags/ellcc-$(VERSION)
.PHONY: docs
docs:
cp -r ./lib/share/doc/ld.html \
./lib/share/doc/gdb \
./lib/share/doc/binutils.html \
./lib/share/doc/as.html \
./share/doc/qemu \
libecc/doc