-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
43 lines (37 loc) · 1.14 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
SOURCE = muse.m
TARGET = $(basename $(SOURCE))
CFLAGS = -ObjC -fobjc-arc
CC = clang
FRAMEWORK = -framework Foundation -framework AVFoundation
LIBRARY = -lncurses
# subsitution for documentation
# TO_FIX
string=<span class=\"err\">@<\/span><span class=\"s\">
stringSub=<span class=\"s\">@
keyword=<span class=\"err\">@<\/span><span class=\"n\">
keywordSub=<span class=\"k\">@
punctuation=<span class=\"err\">@<\/span><span class=\"p\">
punctuationSub=<span class=\"p\">@
default: make
analyze:
$(CC) $(CFLAGS) --analyze $(SOURCE)
make: $(SOURCE)
@mkdir -p ./build
$(CC) $(CFLAGS) $(LIBRARY) $(FRAMEWORK) $(SOURCE) -o ./build/$(TARGET)
clean:
@rm -rf ./build
documentation:
# Really need to write a docco for ObjC
ifeq ($(shell type docco >/dev/null && echo "YES"), YES)
@cp muse.m muse.js
@docco muse.js
@rm muse.js
@sed -i "" "s/muse\.js/muse.m/g" docs/muse.html
@sed -i "" "s/$(string)/$(stringSub)/g" docs/muse.html
@sed -i "" "s/$(keyword)/$(keywordSub)/g" docs/muse.html
@sed -i "" "s/$(punctuation)/$(punctuationSub)/g" docs/muse.html
open -a safari docs/muse.html
endif
install:
@mkdir -p /usr/local/bin
cp ./build/$(TARGET) /usr/local/bin