Last change
on this file since 6c0fe9b 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
|
Rev | Line | |
---|
[b7d3cc34] | 1 | ########################### |
---|
| 2 | ## Makefile for BitlBee ## |
---|
| 3 | ## ## |
---|
| 4 | ## Copyright 2002 Lintux ## |
---|
| 5 | ########################### |
---|
| 6 | |
---|
| 7 | ### DEFINITIONS |
---|
| 8 | |
---|
| 9 | -include ../Makefile.settings |
---|
[f60079b] | 10 | ifdef SRCDIR |
---|
| 11 | SRCDIR := $(SRCDIR)protocols/ |
---|
| 12 | endif |
---|
[b7d3cc34] | 13 | |
---|
| 14 | # [SH] Program variables |
---|
[aea8b68] | 15 | objects = 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. |
---|
| 22 | subdirs = $(PROTOCOLS) |
---|
| 23 | subdirobjs = $(PROTOOBJS) |
---|
| 24 | |
---|
| 25 | # Expansion of variables |
---|
| 26 | subdirobjs := $(join $(subdirs),$(addprefix /,$(subdirobjs))) |
---|
| 27 | LFLAGS += -r |
---|
| 28 | |
---|
| 29 | # [SH] Phony targets |
---|
| 30 | all: protocols.o |
---|
[66b9e86e] | 31 | check: all |
---|
[fc5cf88] | 32 | lcov: check |
---|
[66b9e86e] | 33 | gcov: |
---|
| 34 | gcov *.c |
---|
[b7d3cc34] | 35 | |
---|
| 36 | .PHONY: all clean distclean $(subdirs) |
---|
| 37 | |
---|
| 38 | clean: $(subdirs) |
---|
| 39 | rm -f *.o $(OUTFILE) core |
---|
| 40 | |
---|
| 41 | distclean: clean $(subdirs) |
---|
[b0a89cc] | 42 | rm -rf .depend |
---|
[b7d3cc34] | 43 | |
---|
| 44 | $(subdirs): |
---|
| 45 | @$(MAKE) -C $@ $(MAKECMDGOALS) |
---|
| 46 | |
---|
| 47 | ### MAIN PROGRAM |
---|
| 48 | |
---|
| 49 | protocols.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.