root / trunk / code / projects / colonet / ColonetServer / Makefile @ 127
History | View | Annotate | Download (1.51 KB)
1 |
# ColonetServer makefile |
---|---|
2 |
|
3 |
CC = g++ |
4 |
CFLAGS = -Wall -Wshadow -Wextra -g |
5 |
|
6 |
COLONETCPPFILES = ColonetServer.cpp client.cpp ConnectionPool.cpp |
7 |
COLONETCPPOBJECTS = $(COLONETCPPFILES:.cpp=.o) |
8 |
COLONETFILES = options.c |
9 |
COLONETOBJECTS = $(COLONETFILES:.c=.o) |
10 |
LOGGINGFILES = Log.cpp |
11 |
LOGGINGOBJECTS = $(LOGGINGFILES:.cpp=.o) |
12 |
|
13 |
VPATH = ../lib:../lib/colonet_wireless |
14 |
INCLUDE_DIRS = ../lib/colonet_wireless ../lib ../../libwireless/lib |
15 |
LIBRARY_DIRS = ../lib ../../libwireless/lib |
16 |
|
17 |
|
18 |
#this takes the include directory and puts a -I in front of each directory name before being used in a gcc statement |
19 |
INCLUDE_DIRS_FOR_GCC = $(patsubst %, -I %, $(INCLUDE_DIRS)) |
20 |
#this takes the library directory and puts a -L in front of each directory name so it can be used in a gcc statement |
21 |
LIBRARY_DIRS_FOR_GCC = $(patsubst %,-L%, $(LIBRARY_DIRS)) |
22 |
|
23 |
.PHONY : all clean |
24 |
|
25 |
all: ColonetServer |
26 |
|
27 |
#TODO: make a variable that handles the multiple -I blah stuff so it doesn't have to be written on every line |
28 |
#TODO: make use of VPATH or vpath directive to point at lib directory and then use -lcolonet_wireless |
29 |
ColonetServer: $(COLONETCPPFILES) $(COLONETFILES) $(LOGGINGFILES) -lcolonet_wireless |
30 |
ar x ../lib/libcolonet_wireless.a |
31 |
$(CC) $(CFLAGS) -c $(COLONETFILES) $(INCLUDE_DIRS_FOR_GCC) |
32 |
$(CC) $(CFLAGS) -c $(COLONETCPPFILES) $(INCLUDE_DIRS_FOR_GCC) |
33 |
$(CC) $(CFLAGS) -c $(LOGGINGFILES) $(INCLUDE_DIRS_FOR_GCC) |
34 |
$(CC) $(CFLAGS) $(COLONETOBJECTS) $(COLONETCPPOBJECTS) $(LOGGINGOBJECTS) $(LIBRARY_DIRS_FOR_GCC) -lpthread $(INCLUDE_DIRS_FOR_GCC) -o $@ |
35 |
|
36 |
clean: |
37 |
rm -rf *.o ColonetServer |