Makefile

changeset 3
b1fbfab67908
parent 1
6e704fc09528
child 5
f878a9ffa3e0
equal deleted inserted replaced
2:e14a1aba4c56 3:b1fbfab67908
1 # 1 ##
2 # libtu Makefile 2 ## libtu Makefile
3 # 3 ##
4 4
5 # Where to install? ($PREFIX/lib/libtu.a, $PREFIX/include/libtu/) 5 # System-specific configuration is in system.mk
6 # 6 include system.mk
7 PREFIX=/usr/local
8
9 # Any extra defines needed
10 #
11 #DEFINES=
12
13 # Any extra include paths needed
14 #
15 #INCLUDES=
16
17 ######################################
18
19 WARN= -W -Wimplicit -Wreturn-type -Wswitch -Wcomment \
20 -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized \
21 -Wparentheses -pedantic-errors
22
23 CC_FLAGS=-g -O2 -ansi $(DEFINES) $(INCLUDES) $(WARN)
24 CC=gcc
25 AR=ar
26 AR_FLAGS=crs
27
28 INSTALL=install
29 MODE=644
30 7
31 ###################################### 8 ######################################
32 9
33 OBJS= misc.o output.o util.o optparser.o parser.o tokenizer.o 10 OBJS= misc.o output.o util.o optparser.o parser.o tokenizer.o
34
35 DEPEND= .depend
36 11
37 LIBDIR=$(PREFIX)/lib 12 LIBDIR=$(PREFIX)/lib
38 INCDIR=$(PREFIX)/include/libtu 13 INCDIR=$(PREFIX)/include/libtu
39 14
40 TARGETS=libtu.a 15 TARGETS=libtu.a
41 TESTERS=tester tester2 tester3 16 TESTERS=tester tester2 tester3
42 17
43 ###################################### 18 ######################################
44 19
45 all: $(TARGETS) 20 include rules.mk
21
22 ######################################
46 23
47 testers: $(TESTERS) 24 testers: $(TESTERS)
48 25
49 libtu.a: $(OBJS) 26 libtu.a: $(OBJS)
50 $(AR) $(AR_FLAGS) $@ $+ 27 $(AR) $(AR_FLAGS) $@ $+
51 28
52 %: %.c libtu.a 29 %: %.c libtu.a
53 $(CC) $(CC_FLAGS) $+ -L. -ltu -lm -o $@ 30 $(CC) $(CC_FLAGS) $+ -L. -ltu -lm -o $@
54 31
55 %.o: %.c 32 _install:
56 $(CC) $(CC_FLAGS) -c $< -o $@
57
58 clean:
59 rm -f $(OBJS) $(DEPEND)
60
61 realclean: clean
62 rm -f $(TARGETS)
63
64 depend:
65 $(CC) -M $(CC_FLAGS) *.c > $(DEPEND)
66
67 install:
68 $(INSTALL) -d $(LIBDIR) 33 $(INSTALL) -d $(LIBDIR)
69 $(INSTALL) -d $(INCDIR) 34 $(INSTALL) -d $(INCDIR)
70 $(INSTALL) -m $(MODE) libtu.a $(LIBDIR) 35 $(INSTALL) -m $(DATA_MODE) libtu.a $(LIBDIR)
71 $(INSTALL) -m $(MODE) include/* $(INCDIR) 36 $(INSTALL) -m $(DATA_MODE) include/*.h $(INCDIR)
72 37
73 ifeq ($(DEPEND),$(wildcard $(DEPEND)))
74 include $(DEPEND)
75 endif

mercurial