Version 1.1 Update
[ctprof_srv/ctprof_srv.git] / example_app / makefile
1 #
2 # makefile for ctoolsprof server
3 #
4 # examples:
5 # make clean debug CC=your-favorite-gcc DESTDIR=your-destination-dir install
6 # make clean release CC=your-favorite-gcc DESTDIR=your-destination-dir install
7 # To Use CROSS_COMPILE:
8 # make clean debug arm DESTDIR=your-destination-dir install
9 # make clean release arm DESTDIR=your-destination-dir install 
10 # make all arm DESTDIR=your-destination-dir
12 ifeq ($(findstring arm, $(MAKECMDGOALS)), arm) 
13         CC= $(CROSS_COMPILE)gcc
14 endif
16 ifeq ($(findstring debug, $(MAKECMDGOALS)), debug) 
17         CFLAGS= -std=c99 -c -g -Wall $(INC_PATH) -D DEBUG -D _GNU_SOURCE
18         OBJDIR= ./debug
19 else 
20     CFLAGS= -std=c99 -c -O2 $(INC_PATH) -D SERVER -D _GNU_SOURCE
21         OBJDIR= ./release
22 endif
23 LFLAGS =
24 LIBS= 
25 LIB_PATH=
26 INCLUDE_PATH = -I ../example_app
28 .PHONY: clean debug release install arm
30 all: clean release install
32 #
33 # Declare.c and .h dependencies
34 #
35 ctprof_ex.o: ctprof_ex.c
36 ctprof_utility.o : ctprof_utility.h ctprof_utility.c 
38 #
39 # Add objects
40 #
42 OBJECTS = $(addprefix $(OBJDIR)/, ctprof_ex.o ctprof_utility.o)
44 #.c.o:
45 #       @echo "Compiling" $<
46 #       $(CC) $(CFLAGS) $<
48 $(OBJDIR)/%.o: %.c
49         @echo "Compiling" $<
50         @mkdir -p $(OBJDIR)
51         $(CC) $(CFLAGS) $(INCLUDE_PATH) -o $@ $<
53 ctprof_ex: $(OBJECTS)
54         @echo "Building target" $@
55         $(CC) $(LFLAGS) $(LIBS_PATH) -o $(OBJDIR)/$@ $(OBJECTS) $(LIBS)
57 debug: ctprof_ex
58         @echo "debug build complete"
60 release: ctprof_ex
61         @echo "release build complete"
63 arm: ctprof_ex
64         @echo "ARM version built"
66 install: 
67         mv $(OBJDIR)/ctprof_ex $(DESTDIR)
69 clean:
70         -rm $(OBJECTS)