mirror of
https://github.com/Thesola10/umd-livepatch.git
synced 2025-04-19 22:13:22 +00:00
44 lines
819 B
Makefile
44 lines
819 B
Makefile
TARGET = umdiff
|
|
C_OBJS = main.c.o rdiff.c.o file.c.o patch.c.o
|
|
OBJS = $(C_OBJS)
|
|
|
|
CMAKE := cmake
|
|
RAGEL := ragel
|
|
DOCOPT2RAGEL := docopt2ragel
|
|
|
|
LIBRSYNC_SOURCE := librsync
|
|
|
|
ifeq (,$(wildcard /usr/lib*/librsync.*))
|
|
CFLAGS += -I$(LIBRSYNC_SOURCE)/src
|
|
OBJS += librsync.a
|
|
else
|
|
LIBS += -lrsync
|
|
endif
|
|
|
|
$(TARGET): $(OBJS) usage.rl.h
|
|
$(CC) -o $@ $(OBJS) $(CFLAGS) $(LIBS)
|
|
|
|
usage.rl: USAGE
|
|
$(DOCOPT2RAGEL) USAGE > $@
|
|
|
|
%.rl.h: %.rl
|
|
$(RAGEL) $< -o $@
|
|
|
|
%.c.o: %.c
|
|
$(CC) -c $< -o $@ $(CFLAGS)
|
|
|
|
librsync:
|
|
git clone https://github.com/librsync/librsync
|
|
|
|
librsync.a: $(LIBRSYNC_SOURCE)
|
|
mkdir -p librsync.build
|
|
cd librsync.build && $(CMAKE) -DBUILD_SHARED_LIBS=0 $(shell realpath $(LIBRSYNC_SOURCE)) && make
|
|
mv librsync.build/librsync.a .
|
|
rm -rf librsync.build
|
|
|
|
|
|
clean:
|
|
rm -rf librsync $(OBJS) *.rl $(TARGET)
|
|
|
|
.PHONY: clean
|