74 lines
2.6 KiB
Makefile
74 lines
2.6 KiB
Makefile
LOCAL_PATH := $(shell pwd)
|
|
OUT_DIR ?= .
|
|
|
|
LOCAL_INCLUDES := -I. -Iinclude -I$(STAGING_DIR)/usr/include
|
|
LOCAL_LIBS := -L$(STAGING_DIR)/usr/lib -lpthread
|
|
LOCAL_DEFINES := -DHAVE_PTHREADS -DHAVE_ANDROID_OS=1
|
|
|
|
CFLAGS += -fPIC -Wall -Wno-unknown-pragmas -Wno-format -O3 -g -Wno-error=format-security
|
|
CFLAGS += $(LOCAL_INCLUDES) $(LOCAL_DEFINES) $(CFLAGS_EXTRA)
|
|
|
|
LDFLAGS += $(LOCAL_LIBS)
|
|
LDFLAGS += -L $(OUT_DIR)/
|
|
|
|
# binder src and obj
|
|
BINDER_CPP_SRCS := $(wildcard binder/*.cpp)
|
|
BINDER_CPP_SRCS += $(wildcard utils/*.cpp)
|
|
BINDER_C_SRCS := $(wildcard cutils/*.c)
|
|
|
|
BINDER_CPP_OBJS := $(patsubst %.cpp, %.lo, $(BINDER_CPP_SRCS))
|
|
BINDER_C_OBJS := $(patsubst %.c, %.o, $(BINDER_C_SRCS))
|
|
BINDER_OBJS := $(BINDER_C_OBJS) $(BINDER_CPP_OBJS)
|
|
|
|
# servicemanager src and obj
|
|
SVCMGR_SRCS := $(wildcard servicemgr/*.c)
|
|
SVCMGR_OBJS := $(patsubst %.c, %.o, $(SVCMGR_SRCS))
|
|
|
|
|
|
$(info "OUT_DIR : $(OUT_DIR)")
|
|
$(info "BINDER_OBJS : $(BINDER_OBJS)")
|
|
$(info "SVCMGR_OBJS : $(SVCMGR_OBJS)")
|
|
|
|
LOCAL_TARGETS := libbinder.so servicemanager
|
|
LOCAL_TARGETS_FULLPATH := $(patsubst %, $(OUT_DIR)/%, $(LOCAL_TARGETS))
|
|
$(info LOCAL_TARGETS_FULLPATH = $(LOCAL_TARGETS_FULLPATH))
|
|
|
|
.PHONY: all clean install
|
|
# rules
|
|
all: $(LOCAL_TARGETS)
|
|
|
|
libbinder.so: $(BINDER_OBJS)
|
|
$(CXX) -shared -O3 -g $(LDFLAGS) $(patsubst %, $(OUT_DIR)/%, $^) -o $(OUT_DIR)/$@
|
|
|
|
servicemanager: $(SVCMGR_OBJS)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) $(patsubst %, $(OUT_DIR)/%, $^) -o $(OUT_DIR)/$@
|
|
|
|
%.o: %.c
|
|
$(CC) -c $(CFLAGS) $(LDFLAGS) $< -o $(OUT_DIR)/$@
|
|
|
|
%.lo: %.cpp
|
|
$(CXX) -c $(CFLAGS) $(LDFLAGS) $< -o $(OUT_DIR)/$@
|
|
|
|
clean:
|
|
rm -f $(OUT_DIR)/*.o $(OUT_DIR)/*.lo $(LOCAL_TARGETS_FULLPATH)
|
|
rm -rf $(STAGING_DIR)/usr/include/libbinder
|
|
rm -rf $(STAGING_DIR)/usr/lib/libbinder.so
|
|
rm -rf $(TARGET_DIR)/usr/lib/libbinder.so
|
|
rm -rf $(STAGING_DIR)/usr/bin/servicemanager
|
|
rm -rf $(TARGET_DIR)/usr/bin/servicemanager
|
|
|
|
install:
|
|
install -m 644 $(OUT_DIR)/libbinder.so $(STAGING_DIR)/usr/lib
|
|
install -m 644 $(OUT_DIR)/libbinder.so $(TARGET_DIR)/usr/lib
|
|
$(STRIP) $(TARGET_DIR)/usr/lib/libbinder.so
|
|
mkdir -p $(STAGING_DIR)/usr/include/binder
|
|
mkdir -p $(STAGING_DIR)/usr/include/utils
|
|
install -m 644 $(LOCAL_PATH)/include/binder/* $(STAGING_DIR)/usr/include/binder
|
|
install -m 644 $(LOCAL_PATH)/include/utils/* $(STAGING_DIR)/usr/include/utils
|
|
install -m 755 $(OUT_DIR)/servicemanager $(STAGING_DIR)/usr/bin
|
|
install -m 755 $(OUT_DIR)/servicemanager $(TARGET_DIR)/usr/bin
|
|
$(STRIP) $(TARGET_DIR)/usr/bin/servicemanager
|
|
install -m 755 $(LOCAL_PATH)/servicemgr/S52_binderSmr $(TARGET_DIR)/etc/init.d/S52_binderSmr
|
|
|
|
$(shell mkdir -p $(OUT_DIR)/binder $(OUT_DIR)/utils $(OUT_DIR)/cutils $(OUT_DIR)/servicemgr)
|