[FIX] pack_string: correct null string handling
[platform/core/system/swap-probe.git] / Makefile
1 INSTALLDIR = usr/lib
2
3 ## Since include directives do not impose additional dependencies, we can make
4 ## Makefile more clear, simply putting all includes we ever need in single
5 ## variable. Keep it alphabetic, please.
6
7 INCLUDE_CPPFLAGS =                              \
8                 -I./include                     \
9                 -I./probe_thread                \
10                 -I/usr/include/appfw            \
11                 -I/usr/include/dbus-1.0         \
12                 -I/usr/include/e_dbus-1         \
13                 -I/usr/include/ecore-1          \
14                 -I/usr/include/edje-1           \
15                 -I/usr/include/eet-1            \
16                 -I/usr/include/efreet-1         \
17                 -I/usr/include/eina-1           \
18                 -I/usr/include/eina-1/eina      \
19                 -I/usr/include/elementary-1     \
20                 -I/usr/include/ethumb-1         \
21                 -I/usr/include/evas-1           \
22                 -I/usr/include/osp              \
23                 -I/usr/include/pixman-1         \
24                 -I/usr/include/system           \
25                 -I/usr/include/vconf            \
26                 -I/usr/lib/dbus-1.0/include     \
27
28 WARN_CFLAGS =                           \
29                 -Wall                   \
30                 -funwind-tables         \
31                 -fomit-frame-pointer    \
32                 -Xlinker                \
33                 --no-undefined          \
34                 -Werror                 \
35                 -Wextra                 \
36                 -O2                     \
37                 -Wwrite-strings         \
38                 -Wlogical-op            \
39                 -Wpacked                \
40                 -Winline                \
41                 -Wno-psabi              \
42                 -isystem /usr/include/osp
43
44 ## Since linking unneeded libraries bloats output of ldd(1), this variable
45 ## holds search paths and common libraries.
46
47 LDFLAGS = -shared -L/usr/lib/osp        \
48         -lX11                           \
49         -lXext                          \
50         -lcapi-appfw-application        \
51         -lcapi-system-runtime-info      \
52         -ldl                            \
53         -lecore                         \
54         -lecore_input                   \
55         -lecore_x                       \
56         -leina                          \
57         -levas                          \
58         -lpthread                       \
59         -lrt
60
61 ## FIXME: Ideally, UTILITY_SRCS is sources for probe infrastructure and
62 ## PROBE_SRCS is sources for actual replacement functions.  Unfortunatelly,
63 ## it is not so easy and UTILITY_SRCS do not link alone.
64
65 COMMON_SRCS = $(UTILITY_SRCS) $(PROBE_SRCS)
66 UTILITY_SRCS =                          \
67         ./helper/libdaprobe.c           \
68         ./helper/dahelper.c             \
69         ./helper/btsym.c                \
70         ./helper/dacollection.c         \
71         ./helper/dacapture.c            \
72         ./custom_chart/da_chart.c       \
73
74 PROBE_SRCS =                                    \
75         ./probe_memory/libdamemalloc.c          \
76         ./probe_memory/libdamemmanage.c         \
77         ./probe_socket/libdasocket.c            \
78         ./probe_event/da_event.c                \
79         ./probe_event/keytouch.c                \
80         ./probe_event/orientation.c             \
81         ./probe_third/libdaemon.c               \
82         ./probe_thread/libdathread.c            \
83         ./probe_thread/libdasync.c              \
84         ./probe_userfunc/libdauserfunc.c        \
85         ./probe_file/da_io_posix.c              \
86         ./probe_file/da_io_stdc.c               \
87
88 DUMMY_SRCS = ./custom_chart/da_chart_dummy.c
89 CAPI_SRCS =     $(COMMON_SRCS)                  \
90                 ./helper/appfw-capi.c           \
91                 ./helper/addr-capi.c            \
92                 ./probe_capi/capi_appfw.c       \
93                 ./probe_ui/capi_capture.c
94
95 TIZEN_SRCS =    $(COMMON_SRCS)                          \
96                 ./helper/appfw-tizen.cpp                \
97                 ./helper/addr-tizen.c                   \
98                 ./probe_memory/libdanew.cpp             \
99                 ./probe_tizenapi/tizen_file.cpp         \
100                 ./probe_tizenapi/tizen_socket.cpp       \
101                 ./probe_tizenapi/tizen_http.cpp         \
102                 ./probe_tizenapi/tizen_thread.cpp       \
103                 ./probe_tizenapi/tizen_lifecycle.cpp    \
104                 ./probe_tizenapi/tizen_sync.cpp         \
105                 ./probe_tizenapi/tizen_controls.cpp     \
106                 ./probe_tizenapi/tizen_constructor.cpp  \
107                 ./probe_event/gesture.cpp               \
108                 ./probe_ui/tizen_capture.cpp            \
109                 ./probe_ui/tizen_scenemanager.cpp       \
110                 ./probe_ui/tizen_frameani.cpp           \
111                 ./probe_ui/tizen_display.cpp            \
112                 ./probe_graphics/da_gles20.cpp
113
114 ## Totally brain-dead.
115 ## FIXME: Rewrite this normally with eval.
116 CAPI_OBJS = $(patsubst %.c,%.o, $(CAPI_SRCS))
117 TIZEN_OBJS = $(patsubst %.cpp,%.o, $(patsubst %.c,%.o, $(TIZEN_SRCS)))
118 DUMMY_OBJS = $(patsubst %.c,%.o, $(DUMMY_SRCS))
119
120
121 CAPI_TARGET = da_probe_capi.so
122 TIZEN_TARGET = da_probe_tizen.so
123 DUMMY_TARGET = libdaprobe.so
124
125 CPPFLAGS = $(INCLUDE_CPPFLAGS) -D_GNU_SOURCE
126 CFLAGS = $(WARN_CFLAGS) -fPIC
127 CXXFLAGS = $(WARN_CFLAGS) -fPIC
128
129 TIZEN_CPPFLAGS = -DTIZENAPP
130 TIZEN_LDFLAGS = -lstdc++ -losp-uifw -losp-appfw
131
132 all:    capi tizen dummy
133 capi:   headers $(CAPI_TARGET)
134 tizen:  headers $(TIZEN_TARGET)
135 dummy:  headers $(DUMMY_TARGET)
136
137 GENERATED_HEADERS = include/api_id_mapping.h include/api_id_list.h include/id_list
138 headers: $(GENERATED_HEADERS)
139
140 include/api_id_mapping.h: ./scripts/gen_api_id_mapping_header.awk
141 include/api_id_list.h: ./scripts/gen_api_id_mapping_header_list.awk
142 include/id_list: ./scripts/gen_api_id_mapping_list.awk
143 $(GENERATED_HEADERS): APINAMES=scripts/api_names.txt
144 $(GENERATED_HEADERS):
145         awk -f $< < $(APINAMES) > $@
146
147 $(CAPI_TARGET): $(CAPI_OBJS)
148         $(CC) $(LDFLAGS) $^ -o $@
149
150 $(TIZEN_TARGET): LDFLAGS+=$(TIZEN_LDFLAGS)
151 $(TIZEN_TARGET): CPPFLAGS+=$(TIZEN_CPPFLAGS)
152 $(TIZEN_TARGET): $(TIZEN_OBJS)
153         $(CC) $(LDFLAGS) $^ -o $@
154
155 $(DUMMY_TARGET): $(DUMMY_OBJS)
156         $(CC) $(LDFLAGS) $^ -o $@
157
158 install:
159         [ -d "$(DESTDIR)/$(INSTALLDIR)" ] || mkdir -p $(DESTDIR)/$(INSTALLDIR)
160         install $(TIZEN_TARGET) $(DUMMY_TARGET) $(DESTDIR)/$(INSTALLDIR)/
161         install -m 644 include/id_list $(DESTDIR)/$(INSTALLDIR)/da_api_map
162
163 clean:
164         rm -f *.so *.o
165
166 .PHONY: all capi tizen dummy clean install headers