1MAJOR_VERSION=1 2MINOR_VERSION=0 3 4VERSION_H = $(BUILDDIR)/include/acrnprobe/version.h 5 6LIBS = -lpthread -lxml2 -lcrypto -lrt -lblkid -lext2fs -lcom_err \ 7 $(EXTRA_LIBS) 8INCLUDE += -I $(CURDIR)/include -I $(SYSROOT)/usr/include/libxml2 9INCLUDE += -I $(BUILDDIR)/include/acrnprobe 10CFLAGS += $(INCLUDE) 11CFLAGS += -fdata-sections 12CFLAGS += -fcommon 13 14LDFLAGS += $(LIBS) -Wl,--gc-sections 15 16TARGET = $(BUILDDIR)/acrnprobe/bin/acrnprobe 17 18.PHONY: all check_dirs 19all: $(VERSION_H) check_dirs $(TARGET) 20 rm -f $(VERSION_H) 21 22$(BUILDDIR)/acrnprobe/obj/%.o:%.c $(VERSION_H) 23 $(CC) -c $(CFLAGS) $< -o $@ 24 25$(BUILDDIR)/acrnprobe/bin/acrnprobe: $(BUILDDIR)/acrnprobe/obj/main.o \ 26 $(BUILDDIR)/common/obj/log_sys.o \ 27 $(BUILDDIR)/common/obj/cmdutils.o \ 28 $(BUILDDIR)/common/obj/fsutils.o \ 29 $(BUILDDIR)/common/obj/strutils.o \ 30 $(BUILDDIR)/acrnprobe/obj/load_conf.o \ 31 $(BUILDDIR)/acrnprobe/obj/channels.o \ 32 $(BUILDDIR)/acrnprobe/obj/event_queue.o \ 33 $(BUILDDIR)/acrnprobe/obj/event_handler.o \ 34 $(BUILDDIR)/acrnprobe/obj/crash_reclassify.o \ 35 $(BUILDDIR)/acrnprobe/obj/sender.o \ 36 $(BUILDDIR)/acrnprobe/obj/startupreason.o \ 37 $(BUILDDIR)/acrnprobe/obj/property.o \ 38 $(BUILDDIR)/acrnprobe/obj/probeutils.o \ 39 $(BUILDDIR)/acrnprobe/obj/history.o \ 40 $(BUILDDIR)/acrnprobe/obj/android_events.o \ 41 $(BUILDDIR)/acrnprobe/obj/loop.o \ 42 $(BUILDDIR)/acrnprobe/obj/vmrecord.o 43 $(CC) -o $@ $^ $(LDFLAGS) 44 45.PHONY: clean 46clean: 47 @echo "Clean objects and binaries" 48 @if [ -e $(VERSION_H) ]; then \ 49 $(RM) -f $(VERSION_H); \ 50 fi 51 @if [ -d $(BUILDDIR)/acrnprobe/obj ]; then \ 52 find $(BUILDDIR)/acrnprobe/obj -name "*.o" -exec $(RM) {} \; 2>&1 || exit 0; \ 53 fi 54 @if [ -d $(BUILDDIR)/acrnprobe/bin ]; then \ 55 $(RM) -r $(BUILDDIR)/acrnprobe/bin ; \ 56 fi 57 @if [ -d $(BUILDDIR)/acrnprobe/obj ]; then \ 58 $(RM) -r $(BUILDDIR)/acrnprobe/obj ; \ 59 fi 60 61$(VERSION_H): 62 @if [ ! -d $(BUILDDIR)/include/acrnprobe ]; then \ 63 mkdir -p $(BUILDDIR)/include/acrnprobe ; \ 64 fi 65 touch $(VERSION_H) 66 @if [ "$(BUILD_VERSION)"x = x ];then \ 67 COMMIT=`git log -1 --pretty=format:%h . 2>/dev/null`;\ 68 DIRTY=`git diff --name-only $(CURDIR)`;\ 69 if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ 70 else \ 71 PATCH="$(BUILD_VERSION)"; \ 72 fi; \ 73 TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \ 74 USER="$${USER:-$$(id -u -n)}"; \ 75 cat $(CURDIR)/../license_header > $(VERSION_H);\ 76 echo "#define AP_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\ 77 echo "#define AP_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\ 78 echo "#define AP_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION_H);\ 79 echo "#define AP_BUILD_TIME "\""$$TIME"\""" >> $(VERSION_H);\ 80 echo "#define AP_BUILD_USER "\""$$USER"\""" >> $(VERSION_H) 81 82check_dirs: 83 @if [ ! -d $(BUILDDIR)/acrnprobe/bin ]; then \ 84 mkdir -p $(BUILDDIR)/acrnprobe/bin ; \ 85 fi 86 @if [ ! -d $(BUILDDIR)/acrnprobe/obj ]; then \ 87 mkdir -p $(BUILDDIR)/acrnprobe/obj ; \ 88 fi 89