Tizen 2.4.0 rev3 SDK Public Release
[framework/system/swap-probe.git] / Makefile
index 67e43a1..f04c541 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,6 @@
 INSTALLDIR = usr/lib
+BIN_INSTALLDIR = /usr/local/bin
+HEADER_INSTALLDIR = /usr/local/include/
 
 ## Since include directives do not impose additional dependencies, we can make
 ## Makefile more clear, simply putting all includes we ever need in single
@@ -9,25 +11,36 @@ DEBUG_FLAGS=                                 \
 INCLUDE_CPPFLAGS =                             \
                -I./include                     \
                -I./probe_thread                \
+               -I./probe_event                         \
                -I/usr/include/appfw            \
                -I/usr/include/dbus-1.0         \
                -I/usr/include/e_dbus-1         \
                -I/usr/include/ecore-1          \
+               -I/usr/include/ecore-x-1        \
+               -I/usr/include/ecore-input-1    \
+               -I/usr/include/ecore-evas-1     \
+               -I/usr/include/ecore-file-1     \
+               -I/usr/include/ecore-imf-1      \
+               -I/usr/include/ecore-con-1      \
                -I/usr/include/edje-1           \
                -I/usr/include/eet-1            \
                -I/usr/include/efreet-1         \
                -I/usr/include/eina-1           \
                -I/usr/include/eina-1/eina      \
                -I/usr/include/elementary-1     \
+               -I/usr/include/eldbus-1         \
                -I/usr/include/ethumb-1         \
+               -I/usr/include/ethumb-client-1  \
                -I/usr/include/evas-1           \
                -I/usr/include/pixman-1         \
                -I/usr/include/system           \
                -I/usr/include/capi-system-runtime-info \
                -I/usr/include/vconf            \
                -I/usr/lib/dbus-1.0/include     \
+               -I/usr/include/efl-1            \
+               -I/usr/include/eo-1                     \
 
-WARN_CFLAGS =                          \
+WARN_CFLAGS = -g                       \
                -Wall                   \
                -funwind-tables         \
                -fomit-frame-pointer    \
@@ -35,7 +48,7 @@ WARN_CFLAGS =                                 \
                --no-undefined          \
                -Werror                 \
                -Wextra                 \
-               -O2                     \
+               -O0                     \
                -Wwrite-strings         \
                -Wlogical-op            \
                -Wpacked                \
@@ -46,18 +59,9 @@ WARN_CFLAGS =                                \
 ## holds search paths and common libraries.
 
 LDFLAGS = -shared      \
-       -lX11                           \
-       -lXext                          \
-       -lcapi-appfw-application        \
-       -lcapi-system-runtime-info      \
-       -ldl                            \
-       -lecore                         \
-       -lecore_input                   \
-       -lecore_x                       \
-       -leina                          \
-       -levas                          \
        -lpthread                       \
        -lrt                            \
+       -ldl                            \
        -Wl,-z,noexecstack
 
 ASMFLAG = -O0 -g
@@ -83,13 +87,13 @@ PROBE_SRCS =                                        \
        ./probe_memory/libdamemalloc.c          \
        ./probe_memory/libdamemmanage.c         \
        ./probe_socket/libdasocket.c            \
+       ./probe_event/gesture.c                 \
        ./probe_event/da_event.c                \
        ./probe_event/keytouch.c                \
        ./probe_event/orientation.c             \
        ./probe_third/libdaemon.c               \
        ./probe_thread/libdathread.c            \
        ./probe_thread/libdasync.c              \
-       ./probe_userfunc/libdauserfunc.c        \
        ./probe_file/da_io_posix.c              \
        ./probe_file/da_io_stdc.c               \
 
@@ -106,20 +110,26 @@ TIZEN_SRCS =      $(COMMON_SRCS) $(CAPI_SRCS)\
                ./probe_graphics/da_gl_api_init.c                       \
                ./probe_graphics/da_gles20_tizen.cpp                    \
                ./probe_graphics/da_gles20_native.cpp                   \
-               ./probe_graphics/da_gles20_direct.cpp
+               ./probe_graphics/da_gles30_native.cpp
 
 ASM_SRC = ./helper/da_call_original.S
 
+PARSE_ELF_LIB_SRC = ./elf_parsing/lib_parse_elf.c
+PARSE_ELF_BIN_SRC = ./elf_parsing/parse_elf.c
+
 ## Totally brain-dead.
 ## FIXME: Rewrite this normally with eval.
 ASM_OBJ = $(patsubst %.S,%.o, $(ASM_SRC))
 CAPI_OBJS = $(patsubst %.c,%.o, $(CAPI_SRCS)) $(ASM_OBJ)
 TIZEN_OBJS = $(patsubst %.cpp,%.o, $(patsubst %.c,%.o, $(TIZEN_SRCS))) $(ASM_OBJ)
 DUMMY_OBJS = $(patsubst %.c,%.o, $(DUMMY_SRCS))
-
+PARSE_ELF_LIB_OBJ = $(patsubst %.c,%.o, $(PARSE_ELF_LIB_SRC))
+PARSE_ELF_BIN_OBJ = $(patsubst %.c,%.o, $(PARSE_ELF_BIN_SRC))
 
 TIZEN_TARGET = da_probe_tizen.so
 DUMMY_TARGET = libdaprobe.so
+PARSE_ELF_LIB_TARGET = libparserelf.so
+PARSE_ELF_BIN_TARGET = parse_elf
 
 CPPFLAGS = $(INCLUDE_CPPFLAGS) -D_GNU_SOURCE -DSELF_LIB_NAME="\"/$(INSTALLDIR)/$(TIZEN_TARGET)\""
 CFLAGS = $(WARN_CFLAGS) -fPIC
@@ -128,32 +138,47 @@ CXXFLAGS = $(WARN_CFLAGS) -fPIC
 TIZEN_CPPFLAGS = -DTIZENAPP $(SWAP_PROBE_DEFS)
 TIZEN_LDFLAGS = -lstdc++
 
-all:   capi tizen dummy
-tizen: headers $(TIZEN_TARGET)
-dummy: headers $(DUMMY_TARGET)
+
+all:           elflib capi tizen dummy elfparser
+tizen:         headers $(TIZEN_TARGET)
+dummy:         headers $(DUMMY_TARGET)
+elflib:                $(PARSE_ELF_LIB_OBJ) $(PARSE_ELF_LIB_TARGET)
+elfparser:     elflib $(PARSE_ELF_BIN_OBJ) $(PARSE_ELF_BIN_TARGET)
 
 $(ASM_OBJ): $(ASM_SRC)
        $(CC) $(ASMFLAG) -c $^ -o $@
 
-GENERATED_CONFIG = include/api_config.h
-GENERATED_HEADERS = include/api_id_mapping.h include/api_id_list.h include/id_list
-headers: $(GENERATED_CONFIG) $(GENERATED_HEADERS)
+$(PARSE_ELF_LIB_OBJ): $(PARSE_ELF_LIB_SRC)
+       $(CC) -fPIC -c $^ -o $@
+
+$(PARSE_ELF_BIN_OBJ): $(PARSE_ELF_BIN_SRC)
+       $(CC) -c $^ -o $@
+
+API_NAME_LIST = scripts/api_names_all.txt
+GENERATED_HEADERS = include/api_id_mapping.h include/x_define_api_id_list.h
+SOURCE_HEADERS = include/api_ld_mapping.h
+
+headers: $(API_NAME_LIST) $(GENERATED_HEADERS)
 rmheaders:
-       rm -f $(GENERATED_CONFIG) $(GENERATED_HEADERS)
+       rm -f $(API_NAME_LIST) $(GENERATED_HEADERS) $(SOURCE_HEADERS)
+
+$(API_NAME_LIST):
+       if [ -f $@ ]; then rm $@;fi
+       cat include/api_names_global.h > $@
+       cat */api_names.txt >> $@
 
-$(GENERATED_CONFIG): ./scripts/gen_api_config.sh
-       sh $< > $@
+$(SOURCE_HEADERS): $(API_NAME_LIST)
+$(SOURCE_HEADERS): ./scripts/gen_headers.py
+       python $< $(API_NAME_LIST) $(TIZEN_TARGET) $(INSTALLDIR) > $@ >&2
+       cat $@
 
 include/api_id_mapping.h: ./scripts/gen_api_id_mapping_header.awk
-include/api_id_list.h: ./scripts/gen_api_id_mapping_header_list.awk
-include/id_list: ./scripts/gen_api_id_mapping_list.awk
+include/x_define_api_id_list.h: ./scripts/gen_api_id_mapping_list.awk
 
 da_api_map: $(GENERATED_HEADERS)
 
-$(GENERATED_HEADERS): APINAMES=scripts/api_names.txt
-$(GENERATED_HEADERS): ./scripts/api_names.txt
 $(GENERATED_HEADERS):
-       awk -f $< < $(APINAMES) > $@
+       awk -f $< < $(API_NAME_LIST) > $@
 
 $(TIZEN_TARGET): LDFLAGS+=$(TIZEN_LDFLAGS)
 $(TIZEN_TARGET): CPPFLAGS+=$(TIZEN_CPPFLAGS)
@@ -164,12 +189,35 @@ $(TIZEN_TARGET): $(TIZEN_OBJS)
 $(DUMMY_TARGET): $(DUMMY_OBJS)
        $(CC) $(LDFLAGS) $^ -o $@
 
-install: all
+$(PARSE_ELF_LIB_TARGET): $(PARSE_ELF_LIB_OBJ)
+       $(CC) $^ -shared -o $@
+
+$(PARSE_ELF_BIN_TARGET): $(PARSE_ELF_BIN_OBJ) $(PARSE_ELF_LIB_TARGET)
+       $(CC) $^ -o $@ -L. -lparserelf
+
+ldheader:      $(SOURCE_HEADERS)
+
+install: install_da install_ld install_elf
+
+install_da: all
        [ -d "$(DESTDIR)/$(INSTALLDIR)" ] || mkdir -p $(DESTDIR)/$(INSTALLDIR)
        install $(TIZEN_TARGET) $(DUMMY_TARGET) $(DESTDIR)/$(INSTALLDIR)/
-       install -m 644 include/id_list $(DESTDIR)/$(INSTALLDIR)/da_api_map
+
+
+install_ld: ldheader # var_addr
+       install -m 644 include/ld_preload_probes.h $(DESTDIR)/$(HEADER_INSTALLDIR)/ld_preload_probes.h
+       install -m 644 include/ld_preload_types.h $(DESTDIR)/$(HEADER_INSTALLDIR)/ld_preload_types.h
+       install -m 644 include/ld_preload_probe_lib.h $(DESTDIR)/$(HEADER_INSTALLDIR)/ld_preload_probe_lib.h
+       install -m 644 include/x_define_api_id_list.h $(DESTDIR)/$(HEADER_INSTALLDIR)/x_define_api_id_list.h
+       install -m 644 include/app_protocol.h $(DESTDIR)/$(HEADER_INSTALLDIR)/app_protocol.h
+
+install_elf: elflib elfparser
+       install $(PARSE_ELF_LIB_TARGET) $(DESTDIR)/$(INSTALLDIR)/libparserelf.so
+       install $(PARSE_ELF_BIN_TARGET) $(DESTDIR)/$(BIN_INSTALLDIR)/parse_elf
+       install -m 644 elf_parsing/parse_elf.h $(DESTDIR)/$(HEADER_INSTALLDIR)/parse_elf.h
+
 
 clean:
-       rm -f *.so *.o $(GENERATED_HEADERS)
+       rm -f *.so $(TIZEN_OBJS) $(PARSE_ELF_LIB_OBJ) $(PARSE_ELF_BIN_OBJ) $(GENERATED_HEADERS) $(API_NAME_LIST) $(SOURCE_HEADERS)
 
-.PHONY: all capi tizen dummy clean install headers
+.PHONY: all capi tizen dummy clean install_ld install_da install_elf install headers