source: protocols/Makefile @ 17f6079

Last change on this file since 17f6079 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
RevLine 
[b7d3cc34]1###########################
2## Makefile for BitlBee  ##
3##                       ##
4## Copyright 2002 Lintux ##
5###########################
6
7### DEFINITIONS
8
9-include ../Makefile.settings
[f60079b]10ifdef SRCDIR
11SRCDIR := $(SRCDIR)protocols/
12endif
[b7d3cc34]13
14# [SH] Program variables
[aea8b68]15objects = account.o bee.o bee_chat.o bee_ft.o bee_user.o nogaim.o
[3ddb7477]16
[b7d3cc34]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
[66b9e86e]31check: all
[fc5cf88]32lcov: check
[66b9e86e]33gcov:
34        gcov *.c
[b7d3cc34]35
36.PHONY: all clean distclean $(subdirs)
37
38clean: $(subdirs)
39        rm -f *.o $(OUTFILE) core
40
41distclean: clean $(subdirs)
[b0a89cc]42        rm -rf .depend
[b7d3cc34]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
[f60079b]55$(objects): %.o: $(SRCDIR)%.c
[b7d3cc34]56        @echo '*' Compiling $<
57        @$(CC) -c $(CFLAGS) $< -o $@
[b0a89cc]58
59-include .depend/*.d
Note: See TracBrowser for help on using the repository browser.