mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-08-10 12:32:45 +00:00
Running 'make' will leave 3 files in the source code tree that are not cleaned by a subsequent 'make clean'. These are: * tools/acrn-crashlog/acrnprobe/include/version.h * tools/acrn-crashlog/usercrash/include/version.h * tools/acrn-manager/acrn_mngr.o (as reported by 'git status' after 'make') This patch changes the location of these files so they are created in the target build directory and hence properly cleaned when running 'make clean' Other minor changes to the Makefiles include: * Remove BASEDIR by the built-in CURDIR variable * Add .PHONY targets Signed-off-by: Geoffroy Van Cutsem <geoffroy.vancutsem@intel.com>
80 lines
2.6 KiB
Makefile
80 lines
2.6 KiB
Makefile
MAJOR_VERSION=1
|
|
MINOR_VERSION=0
|
|
|
|
VERSION_H = $(BUILDDIR)/include/acrnprobe/version.h
|
|
|
|
LIBS = -lpthread -lxml2 -lcrypto -lrt $(EXTRA_LIBS)
|
|
INCLUDE += -I $(CURDIR)/include -I /usr/include/libxml2
|
|
INCLUDE += -I $(BUILDDIR)/include/acrnprobe
|
|
CFLAGS += $(INCLUDE)
|
|
CFLAGS += -g -O0 -std=gnu11
|
|
CFLAGS += -ffunction-sections -fdata-sections
|
|
|
|
LDFLAGS += $(LIBS) -Wl,--gc-sections
|
|
|
|
TARGET = $(BUILDDIR)/acrnprobe/bin/acrnprobe
|
|
|
|
.PHONY: all check_dirs
|
|
all: $(VERSION_H) check_dirs $(TARGET)
|
|
|
|
$(BUILDDIR)/acrnprobe/obj/%.o:%.c
|
|
$(CC) -c $(CFLAGS) $< -o $@
|
|
|
|
$(BUILDDIR)/acrnprobe/bin/acrnprobe: $(BUILDDIR)/acrnprobe/obj/main.o \
|
|
$(BUILDDIR)/common/obj/log_sys.o \
|
|
$(BUILDDIR)/common/obj/cmdutils.o \
|
|
$(BUILDDIR)/common/obj/fsutils.o \
|
|
$(BUILDDIR)/common/obj/strutils.o \
|
|
$(BUILDDIR)/acrnprobe/obj/load_conf.o \
|
|
$(BUILDDIR)/acrnprobe/obj/channels.o \
|
|
$(BUILDDIR)/acrnprobe/obj/event_queue.o \
|
|
$(BUILDDIR)/acrnprobe/obj/event_handler.o \
|
|
$(BUILDDIR)/acrnprobe/obj/crash_reclassify.o \
|
|
$(BUILDDIR)/acrnprobe/obj/sender.o \
|
|
$(BUILDDIR)/acrnprobe/obj/startupreason.o \
|
|
$(BUILDDIR)/acrnprobe/obj/property.o \
|
|
$(BUILDDIR)/acrnprobe/obj/probeutils.o \
|
|
$(BUILDDIR)/acrnprobe/obj/history.o \
|
|
$(BUILDDIR)/acrnprobe/obj/android_events.o
|
|
$(CC) -o $@ $^ $(LDFLAGS)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
@echo "Clean objects and binaries"
|
|
@if [ -e $(VERSION_H) ]; then \
|
|
$(RM) -f $(VERSION_H); \
|
|
fi
|
|
@if [ -d $(BUILDDIR)/acrnprobe/obj ]; then \
|
|
find $(BUILDDIR)/acrnprobe/obj -name "*.o" -exec $(RM) {} \; 2>&1 || exit 0; \
|
|
fi
|
|
@if [ -d $(BUILDDIR)/acrnprobe/bin ]; then \
|
|
$(RM) -r $(BUILDDIR)/acrnprobe/bin ; \
|
|
fi
|
|
@if [ -d $(BUILDDIR)/acrnprobe/obj ]; then \
|
|
$(RM) -r $(BUILDDIR)/acrnprobe/obj ; \
|
|
fi
|
|
|
|
$(VERSION_H):
|
|
@if [ ! -d $(BUILDDIR)/include/acrnprobe ]; then \
|
|
mkdir -p $(BUILDDIR)/include/acrnprobe ; \
|
|
fi
|
|
touch $(VERSION_H)
|
|
@COMMIT=`git log -1 --pretty=format:%h . 2>/dev/null`;\
|
|
DIRTY=`git diff --name-only $(CURDIR)`;\
|
|
if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\
|
|
TIME=`date "+%Y-%m-%d %H:%M:%S"`;\
|
|
cat $(CURDIR)/../license_header > $(VERSION_H);\
|
|
echo "#define AP_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\
|
|
echo "#define AP_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\
|
|
echo "#define AP_BUILD_VERSION "\""$$PATCH"\""" >> $(VERSION_H);\
|
|
echo "#define AP_BUILD_TIME "\""$$TIME"\""" >> $(VERSION_H);\
|
|
echo "#define AP_BUILD_USER "\""$(USER)"\""" >> $(VERSION_H)
|
|
|
|
check_dirs:
|
|
@if [ ! -d $(BUILDDIR)/acrnprobe/bin ]; then \
|
|
mkdir -p $(BUILDDIR)/acrnprobe/bin ; \
|
|
fi
|
|
@if [ ! -d $(BUILDDIR)/acrnprobe/obj ]; then \
|
|
mkdir -p $(BUILDDIR)/acrnprobe/obj ; \
|
|
fi
|