File: Makefile

package info (click to toggle)
valabind 0.6.4-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 256 kB
  • sloc: sh: 226; makefile: 115; python: 12; cs: 10; java: 9; cpp: 8; perl: 6; ruby: 5
file content (85 lines) | stat: -rw-r--r-- 2,243 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# run make V= to get debug output
VERSION=0.6.4
CONTACT=pancake@nopcode.org
PWD=$(shell pwd)
CC?=gcc
DESTDIR?=
PREFIX?=/usr
VALAC?=valac
BIN=valabind
FILES=main.vala config.vala valabindcompiler.vala
FILES+=girwriter.vala swigwriter.vala cxxwriter.vala gearwriter.vala
RTLIBS=gobject-2.0 glib-2.0
VALAPKG=`./getvv`
OBJS=$(subst .vala,.o,${FILES})
CFILES=$(subst .vala,.c,${FILES})
CFLAGS?=-g
V=@

all: config.vala ${BIN}

${BIN}: $(OBJS)
	@echo LN $(BIN)
	$(V)$(CC) -o $(BIN) $(OBJS) $$(pkg-config --libs ${RTLIBS} ${VALAPKG})

config.vala:
	@echo "mkconfig config.vala"
	@echo "const string version_string = \"${BIN} ${VERSION} - ${CONTACT}\";" > config.vala

$(CFILES): $(FILES)
	@for a in $(FILES) ; do \
	   c=`echo $$a|sed -e s,.vala,.c,`; \
	   if [ ! -f $$c -o $$a -nt $$c ]; then \
	     $(MAKE) clean ; $(MAKE) c || exit 1 ; fi ; done

$(OBJS): $(CFILES)
	@echo Using $(VALAPKG)
	@echo CC $(CFILES)
	$(V)$(CC) -c $$(pkg-config --cflags ${RTLIBS} ${VALAPKG}) $(CFILES)

a:
	@echo VALAPKG=$(VALAPKG)
	@echo ${VALAC} -g --pkg posix --pkg ${VALAPKG} ${FILES} -o ${BIN}
	@${VALAC} -g --pkg posix --pkg ${VALAPKG} ${FILES} -o ${BIN}

c:
	@echo VALAC $(FILES)
	$(V)${VALAC} -C -g --pkg posix --pkg ${VALAPKG} ${FILES} -o ${BIN}

install_dirs:
	mkdir -p ${DESTDIR}${PREFIX}/bin
	mkdir -p ${DESTDIR}${PREFIX}/share/man/man1

install: install_dirs
	cp ${BIN}.1 ${DESTDIR}${PREFIX}/share/man/man1
	cp ${BIN}-cc.1 ${DESTDIR}${PREFIX}/share/man/man1
	cp ${BIN} ${DESTDIR}${PREFIX}/bin
	cp ${BIN}-cc ${DESTDIR}${PREFIX}/bin

symstall: install_dirs
	chmod +x ${PWD}/${BIN}-cc
	ln -fs ${PWD}/${BIN}.1 ${DESTDIR}${PREFIX}/share/man/man1
	ln -fs ${PWD}/${BIN}-cc.1 ${DESTDIR}${PREFIX}/share/man/man1
	ln -fs ${PWD}/${BIN} ${DESTDIR}${PREFIX}/bin
	ln -fs ${PWD}/${BIN}-cc ${DESTDIR}${PREFIX}/bin

dist:
	rm -rf valabind-${VERSION}
	hg clone . valabind-${VERSION}
	cd valabind-${VERSION} && $(MAKE) config.vala #c
	rm -rf valabind-${VERSION}/.hg
	tar czvf valabind-${VERSION}.tar.gz valabind-${VERSION}

clean:
	rm -f valabind *.o *.c

mrproper: clean
	rm -f config.vala

deinstall: uninstall

uninstall:
	-rm ${DESTDIR}${PREFIX}/bin/${BIN}
	-rm ${DESTDIR}${PREFIX}/bin/${BIN}-cc

.PHONY: all clean dist install symstall uninstall deinstall mrproper c a