2012-01-25 17:02:47 +04:00
|
|
|
-include Makefile.inc
|
2011-09-23 12:00:45 +04:00
|
|
|
|
|
|
|
CFLAGS += -I./include
|
|
|
|
CFLAGS += -O0 -ggdb3
|
|
|
|
|
2011-11-03 11:58:45 +04:00
|
|
|
LIBS += -lrt -lpthread
|
2011-09-23 12:00:45 +04:00
|
|
|
|
|
|
|
DEFINES += -D_FILE_OFFSET_BITS=64
|
|
|
|
DEFINES += -D_GNU_SOURCE
|
|
|
|
|
|
|
|
ifneq ($(WERROR),0)
|
|
|
|
WARNINGS += -Werror
|
|
|
|
endif
|
|
|
|
|
2011-12-27 02:27:20 +04:00
|
|
|
ifeq ($(DEBUG),1)
|
|
|
|
DEFINES += -DCR_DEBUG
|
|
|
|
endif
|
|
|
|
|
2011-09-23 12:00:45 +04:00
|
|
|
WARNINGS += -Wall -Wno-unused
|
|
|
|
CFLAGS += $(WARNINGS) $(DEFINES)
|
|
|
|
|
|
|
|
PROGRAM := crtools
|
|
|
|
|
2011-09-29 16:03:36 +04:00
|
|
|
export CC ECHO MAKE CFLAGS LIBS ARCH DEFINES
|
|
|
|
|
2012-01-17 22:17:00 +04:00
|
|
|
OBJS_GEN_DEP += parasite-syscall.o
|
|
|
|
OBJS_GEN_DEP += cr-restore.o
|
|
|
|
DEPS_GEN := $(patsubst %.o,%.d,$(OBJS_GEN_DEP))
|
2011-09-23 12:00:45 +04:00
|
|
|
|
2012-01-17 22:17:00 +04:00
|
|
|
OBJS += $(OBJS_GEN_DEP)
|
2011-09-23 12:00:45 +04:00
|
|
|
OBJS += crtools.o
|
2012-01-13 20:52:35 +04:00
|
|
|
OBJS += proc_parse.o
|
2011-09-23 12:00:45 +04:00
|
|
|
OBJS += cr-dump.o
|
|
|
|
OBJS += cr-show.o
|
|
|
|
OBJS += util.o
|
2011-12-19 21:57:59 +04:00
|
|
|
OBJS += ptrace.o
|
2011-12-19 18:52:50 +04:00
|
|
|
OBJS += log.o
|
2011-12-26 22:12:03 +04:00
|
|
|
OBJS += libnetlink.o
|
|
|
|
OBJS += sockets.o
|
2012-01-10 18:03:00 +04:00
|
|
|
OBJS += files.o
|
2012-01-26 15:27:00 +04:00
|
|
|
OBJS += namespaces.o
|
2011-09-23 12:00:45 +04:00
|
|
|
|
2011-09-29 16:03:36 +04:00
|
|
|
OBJS-BLOB += parasite.o
|
2011-09-23 12:00:45 +04:00
|
|
|
SRCS-BLOB += $(patsubst %.o,%.c,$(OBJS-BLOB))
|
|
|
|
|
|
|
|
HEAD-BLOB-GEN := $(patsubst %.o,%-blob.h,$(OBJS-BLOB))
|
|
|
|
HEAD-BIN := $(patsubst %.o,%.bin,$(OBJS-BLOB))
|
|
|
|
HEAD-LDS := $(patsubst %.o,%.lds.S,$(OBJS-BLOB))
|
|
|
|
|
2012-01-23 11:26:00 +04:00
|
|
|
ROBJS-BLOB := restorer.o
|
|
|
|
#
|
|
|
|
# Everything embedded into restorer as a separate
|
|
|
|
# object file should go here.
|
|
|
|
ROBJS := $(ROBJS-BLOB)
|
|
|
|
ROBJS += restorer-log.o
|
|
|
|
|
|
|
|
RDEPS-BLOB += $(patsubst %.o,%.d,$(ROBJS))
|
|
|
|
RSRCS-BLOB += $(patsubst %.o,%.c,$(ROBJS))
|
|
|
|
|
2012-01-17 22:17:00 +04:00
|
|
|
RSRCS-BLOB += $(patsubst %.o,%.c,$(ROBJS-BLOB))
|
|
|
|
|
|
|
|
RHEAD-BLOB-GEN := $(patsubst %.o,%-blob.h,$(ROBJS-BLOB))
|
|
|
|
RHEAD-BIN := $(patsubst %.o,%.bin,$(ROBJS-BLOB))
|
|
|
|
RHEAD-LDS := $(patsubst %.o,%.lds.S,$(ROBJS-BLOB))
|
|
|
|
|
2012-01-20 16:53:48 +03:00
|
|
|
DEPS := $(patsubst %.o,%.d,$(OBJS)) \
|
|
|
|
$(patsubst %.o,%.d,$(OBJS-BLOB)) \
|
|
|
|
$(patsubst %.o,%.d,$(ROBJS-BLOB))
|
2012-01-17 16:08:29 +03:00
|
|
|
|
2012-01-17 16:08:08 +03:00
|
|
|
all: $(PROGRAM)
|
|
|
|
|
2011-09-29 16:03:36 +04:00
|
|
|
$(OBJS-BLOB): $(SRCS-BLOB)
|
2011-09-23 12:00:45 +04:00
|
|
|
$(E) " CC " $@
|
|
|
|
$(Q) $(CC) -c $(CFLAGS) -fpic $< -o $@
|
|
|
|
|
|
|
|
$(HEAD-BIN): $(OBJS-BLOB) $(HEAD-LDS)
|
|
|
|
$(E) " GEN " $@
|
|
|
|
$(Q) $(LD) -T $(patsubst %.bin,%.lds.S,$@) $< -o $@
|
|
|
|
|
2012-01-17 16:08:29 +03:00
|
|
|
$(HEAD-BLOB-GEN): $(HEAD-BIN)
|
2011-09-23 12:00:45 +04:00
|
|
|
$(E) " GEN " $@
|
2011-12-05 20:36:57 +04:00
|
|
|
$(Q) $(SH) gen-offsets.sh \
|
|
|
|
parasite_h__ \
|
|
|
|
parasite_blob_offset__ \
|
|
|
|
parasite_blob \
|
|
|
|
$(OBJS-BLOB) \
|
|
|
|
$(HEAD-BIN) > parasite-blob.h
|
2011-09-29 16:03:36 +04:00
|
|
|
$(Q) sync
|
2011-09-23 12:00:45 +04:00
|
|
|
|
2012-01-23 11:26:00 +04:00
|
|
|
$(ROBJS): $(RSRCS-BLOB)
|
2012-01-14 21:22:06 +03:00
|
|
|
$(E) " CC " $@
|
2012-01-23 11:26:00 +04:00
|
|
|
$(Q) $(CC) -c $(CFLAGS) -fpic $(patsubst %.o,%.c,$@) -o $@
|
2012-01-14 21:22:06 +03:00
|
|
|
|
2012-01-23 11:26:00 +04:00
|
|
|
$(RHEAD-BIN): $(ROBJS) $(RHEAD-LDS)
|
2012-01-14 21:22:06 +03:00
|
|
|
$(E) " GEN " $@
|
2012-01-23 11:26:00 +04:00
|
|
|
$(Q) $(LD) -T $(patsubst %.bin,%.lds.S,$@) -o $@ $(ROBJS)
|
2012-01-14 21:22:06 +03:00
|
|
|
|
|
|
|
$(RHEAD-BLOB-GEN): $(RHEAD-BIN) $(RDEPS-BLOB)
|
|
|
|
$(E) " GEN " $@
|
|
|
|
$(Q) $(SH) gen-offsets.sh \
|
|
|
|
restorer_h__ \
|
|
|
|
restorer_blob_offset__ \
|
|
|
|
restorer_blob \
|
|
|
|
$(ROBJS-BLOB) \
|
|
|
|
$(RHEAD-BIN) > restorer-blob.h
|
|
|
|
$(Q) sync
|
|
|
|
|
2011-09-23 12:00:45 +04:00
|
|
|
%.o: %.c
|
|
|
|
$(E) " CC " $@
|
|
|
|
$(Q) $(CC) -c $(CFLAGS) $< -o $@
|
|
|
|
|
2012-01-26 14:00:40 +04:00
|
|
|
%.i: %.c
|
|
|
|
$(E) " CC " $@
|
|
|
|
$(Q) $(CC) -E $(CFLAGS) $< -o $@
|
|
|
|
|
2011-12-05 16:38:08 +04:00
|
|
|
$(PROGRAM): $(OBJS)
|
2011-09-23 12:00:45 +04:00
|
|
|
$(E) " LINK " $@
|
2011-09-29 16:03:36 +04:00
|
|
|
$(Q) $(CC) $(CFLAGS) $(OBJS) $(LIBS) -o $@
|
2011-09-23 12:00:45 +04:00
|
|
|
|
2012-01-17 22:17:00 +04:00
|
|
|
$(DEPS_GEN): $(HEAD-BLOB-GEN) $(RHEAD-BLOB-GEN)
|
2011-09-23 12:00:45 +04:00
|
|
|
%.d: %.c
|
|
|
|
$(Q) $(CC) -M -MT $(patsubst %.d,%.o,$@) $(CFLAGS) $< -o $@
|
|
|
|
|
2012-01-24 19:37:44 +04:00
|
|
|
test-legacy:
|
|
|
|
$(Q) $(MAKE) -C test/legacy all
|
|
|
|
.PHONY: test-legacy
|
|
|
|
|
|
|
|
zdtm:
|
|
|
|
$(Q) $(MAKE) -C test/zdtm all
|
|
|
|
.PHONY: zdtm
|
|
|
|
|
|
|
|
test: zdtm
|
2012-01-25 16:56:57 +04:00
|
|
|
$(Q) $(SH) test/zdtm.sh
|
2011-09-29 16:03:36 +04:00
|
|
|
.PHONY: test
|
|
|
|
|
2011-11-03 11:58:45 +04:00
|
|
|
rebuild:
|
|
|
|
$(E) " FORCE-REBUILD"
|
|
|
|
$(Q) $(RM) -f ./*.o
|
|
|
|
$(Q) $(RM) -f ./*.d
|
|
|
|
$(Q) $(MAKE)
|
|
|
|
.PHONY: rebuild
|
|
|
|
|
2011-09-23 12:00:45 +04:00
|
|
|
clean:
|
|
|
|
$(E) " CLEAN"
|
2011-09-29 16:03:36 +04:00
|
|
|
$(Q) $(RM) -f ./*.o
|
|
|
|
$(Q) $(RM) -f ./*.d
|
2012-01-26 14:00:40 +04:00
|
|
|
$(Q) $(RM) -f ./*.i
|
2011-09-29 16:03:36 +04:00
|
|
|
$(Q) $(RM) -f ./*.img
|
|
|
|
$(Q) $(RM) -f ./*.out
|
|
|
|
$(Q) $(RM) -f ./*.bin
|
|
|
|
$(Q) $(RM) -f ./tags
|
|
|
|
$(Q) $(RM) -f ./cscope*
|
|
|
|
$(Q) $(RM) -f ./$(PROGRAM)
|
|
|
|
$(Q) $(RM) -f ./$(HEAD-BLOB-GEN)
|
2012-01-17 22:17:00 +04:00
|
|
|
$(Q) $(RM) -f ./$(RHEAD-BLOB-GEN)
|
2012-01-24 19:37:44 +04:00
|
|
|
$(Q) $(MAKE) -C test/legacy clean
|
2012-01-25 17:40:09 +04:00
|
|
|
$(Q) $(MAKE) -C test/zdtm cleandep
|
2012-01-24 19:37:44 +04:00
|
|
|
$(Q) $(MAKE) -C test/zdtm clean
|
2012-01-25 17:45:49 +04:00
|
|
|
$(Q) $(MAKE) -C test/zdtm cleanout
|
2011-09-23 12:00:45 +04:00
|
|
|
.PHONY: clean
|
|
|
|
|
|
|
|
tags:
|
|
|
|
$(E) " GEN" $@
|
|
|
|
$(Q) $(RM) -f tags
|
|
|
|
$(Q) $(FIND) . -name '*.[hcS]' -print | xargs ctags -a
|
|
|
|
.PHONY: tags
|
|
|
|
|
|
|
|
cscope:
|
|
|
|
$(E) " GEN" $@
|
|
|
|
$(Q) $(FIND) . -name '*.[hcS]' -print > cscope.files
|
|
|
|
$(Q) $(CSCOPE) -bkqu
|
|
|
|
.PHONY: cscope
|
2012-01-17 16:08:22 +03:00
|
|
|
|
2012-01-25 17:45:49 +04:00
|
|
|
ifeq ($(filter-out no-deps-targets, $(MAKECMDGOALS)),)
|
2012-01-17 16:08:22 +03:00
|
|
|
-include $(DEPS)
|
2012-01-20 17:53:19 +03:00
|
|
|
endif
|