1 CC = gcc |
1 # |
2 CARG = -Wall -std=gnu99 -O |
2 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. |
3 BUILDDIR = build/ |
3 # |
4 OBJ = $(shell ls | grep '\.c' | sed 's/^\([^.]*\)\.c$$/${BUILDDIR:/=\/}\1.o/g' | tr '\n' ' ') |
4 # Copyright 2011 Mike Becker. All rights reserved. |
5 BIN = ${BUILDDIR}cline |
5 # |
|
6 # Redistribution and use in source and binary forms, with or without |
|
7 # modification, are permitted provided that the following conditions are met: |
|
8 # |
|
9 # 1. Redistributions of source code must retain the above copyright |
|
10 # notice, this list of conditions and the following disclaimer. |
|
11 # |
|
12 # 2. Redistributions in binary form must reproduce the above copyright |
|
13 # notice, this list of conditions and the following disclaimer in the |
|
14 # documentation and/or other materials provided with the distribution. |
|
15 # |
|
16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|
17 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
18 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
|
19 # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
|
20 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
21 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
|
22 # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
|
23 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
24 # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|
25 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
26 # |
|
27 # available configurations: |
|
28 # gcc (default) (will use libc regex implicitly) |
|
29 # mingw (will use libregex as static lib) |
|
30 # |
|
31 # debug configurations: |
|
32 # gcc-debug |
|
33 # mingw-debug |
|
34 # |
|
35 |
|
36 #ifndef CONF |
|
37 CONF = gcc |
|
38 #endif |
|
39 |
|
40 include ${CONF}.mk |
6 |
41 |
7 .PHONY: setup run-compile teardown |
42 .PHONY: setup run-compile teardown |
8 |
43 |
9 all: setup run-compile teardown |
44 all: setup run-compile teardown |
10 |
45 |
11 |
46 |
12 run-compile: |
47 run-compile: |
13 -${MAKE} compile |
48 -${MAKE} compile |
14 |
49 |
15 compile: ${OBJ} |
50 compile: ${OBJ} |
16 ${CC} -o ${BIN} ${OBJ} |
51 ${LD} -o ${BIN} ${OBJ} ${LDFLAGS} |
17 |
52 |
18 setup: |
53 setup: |
19 mkdir -p ${BUILDDIR} |
54 mkdir -p ${BUILDDIR} |
20 rm -f build/cline.o |
55 rm -f ${BUILDDIR}cline.o |
21 mv cline.h cline.src |
56 mv cline.h cline.src |
22 cat cline.src | sed "s/VERSION.*/VERSION=\"$(shell hg identify -n) ($(shell hg identify -i))\";/g" > cline.h |
57 cat cline.src | sed "s/VERSION.*/VERSION=\"$(shell hg identify -n) ($(shell hg identify -i))\";/g" > cline.h |
23 |
58 |
24 teardown: |
59 teardown: |
25 rm -f cline.h |
60 rm -f cline.h |
26 mv cline.src cline.h |
61 mv cline.src cline.h |
27 |
62 |
28 ${BUILDDIR}%.o: %.c |
63 ${BUILDDIR}%.o: %.c |
29 ${CC} ${CARG} -c -o ${BUILDDIR}$*.o $< |
64 ${CC} ${CFLAGS} -c -o ${BUILDDIR}$*.o $< |
30 |
65 |
31 clean: |
66 clean: |
32 rm -f build/* |
67 rm -f ${BUILDDIR}*.o |
33 |
68 |