source: protocols/Makefile @ b0a89cc

Last change on this file since b0a89cc was b0a89cc, checked in by Wilmer van der Gaast <wilmer@…>, at 2010-08-27T08:48:18Z

Use nifty gcc -MD feature to automatically track .h dependencies of all C
files, this finally gives proper dependencies, which means the end of
getting broken binaries around headerfile changes, etc.

Sure, this may not work on obscurux with superawesomeincompatiblecc while
autoconf does, but at least BitlBee's configure script still runs in <1s.
:-)

  • Property mode set to 100644
File size: 1.3 KB
Line 
1###########################
2## Makefile for BitlBee  ##
3##                       ##
4## Copyright 2002 Lintux ##
5###########################
6
7### DEFINITIONS
8
9-include ../Makefile.settings
10ifdef SRCDIR
11SRCDIR := $(SRCDIR)protocols/
12endif
13
14# [SH] Program variables
15objects = account.o bee.o bee_chat.o bee_ft.o bee_user.o nogaim.o
16
17
18# [SH] The next two lines should contain the directory name (in $(subdirs))
19#      and the name of the object file, which should be linked into
20#      protocols.o (in $(subdirobjs)). These need to be in order, i.e. the
21#      first object file should be in the first directory.
22subdirs = $(PROTOCOLS)
23subdirobjs = $(PROTOOBJS)
24
25# Expansion of variables
26subdirobjs := $(join $(subdirs),$(addprefix /,$(subdirobjs)))
27LFLAGS += -r
28
29# [SH] Phony targets
30all: protocols.o
31check: all
32lcov: check
33gcov:
34        gcov *.c
35
36.PHONY: all clean distclean $(subdirs)
37
38clean: $(subdirs)
39        rm -f *.o $(OUTFILE) core
40
41distclean: clean $(subdirs)
42        rm -rf .depend
43
44$(subdirs):
45        @$(MAKE) -C $@ $(MAKECMDGOALS)
46
47### MAIN PROGRAM
48
49protocols.o: $(objects) $(subdirs)
50        @echo '*' Linking protocols.o
51        @$(LD) $(LFLAGS) $(objects) $(subdirobjs) -o protocols.o
52
53$(objects): ../Makefile.settings Makefile
54
55$(objects): %.o: $(SRCDIR)%.c
56        @echo '*' Compiling $<
57        @$(CC) -c $(CFLAGS) $< -o $@
58
59-include .depend/*.d
Note: See TracBrowser for help on using the repository browser.