mirror of
https://github.com/linux-msm/qdl.git
synced 2026-02-25 13:12:25 -08:00
In order to implement a proper versioning scheme, let's generate a version.h file that defines VERSION variable built from git workspace. The version format will be v<MAJOR>.<MINOR>-<COMMIT##>-<SHA1> Where: * MAJOR and MINOR are from the most recent tag * COMMIT## is the number of commits since last tag, to ensure incremental numbering * SHA1 is an abbreviated representation of the actual commit SHA. This requires building from a git workspace, with we are effectively calling 'git describe' during the build. We then define print_version() utility function to be used by all programs. Ensure that util.c depends on version.h and that we only update version.h timestamps when the version actually changes to avoid unnecessary rebuilds. Signed-off-by: Nicolas Dechesne <nicolas.dechesne@oss.qualcomm.com>
49 lines
1.3 KiB
Makefile
49 lines
1.3 KiB
Makefile
QDL := qdl
|
|
RAMDUMP := qdl-ramdump
|
|
GITREF := $(shell git describe --dirty --always --tags)
|
|
|
|
CFLAGS += -O2 -Wall -g `pkg-config --cflags libxml-2.0 libusb-1.0`
|
|
LDFLAGS += `pkg-config --libs libxml-2.0 libusb-1.0`
|
|
prefix := /usr/local
|
|
|
|
QDL_SRCS := firehose.c qdl.c sahara.c util.c patch.c program.c read.c ufs.c usb.c ux.c
|
|
QDL_OBJS := $(QDL_SRCS:.c=.o)
|
|
|
|
RAMDUMP_SRCS := ramdump.c sahara.c usb.c util.c ux.c
|
|
RAMDUMP_OBJS := $(RAMDUMP_SRCS:.c=.o)
|
|
|
|
KS_OUT := ks
|
|
KS_SRCS := ks.c sahara.c util.c ux.c
|
|
KS_OBJS := $(KS_SRCS:.c=.o)
|
|
|
|
default: versionfile $(QDL) $(RAMDUMP) $(KS_OUT)
|
|
|
|
$(QDL): $(QDL_OBJS)
|
|
$(CC) -o $@ $^ $(LDFLAGS)
|
|
|
|
$(RAMDUMP): $(RAMDUMP_OBJS)
|
|
$(CC) -o $@ $^ $(LDFLAGS)
|
|
|
|
$(KS_OUT): $(KS_OBJS)
|
|
$(CC) -o $@ $^ $(LDFLAGS)
|
|
|
|
compile_commands.json: $(QDL_SRCS) $(KS_SRCS)
|
|
@echo -n $^ | jq -snR "[inputs|split(\" \")[]|{directory:\"$(PWD)\", command: \"$(CC) $(CFLAGS) -c \(.)\", file:.}]" > $@
|
|
|
|
versionfile:
|
|
@echo "#define VERSION \"$(GITREF)\"" > .version.h
|
|
@cmp -s .version.h version.h || cp .version.h version.h
|
|
|
|
util.o: version.h
|
|
|
|
clean:
|
|
rm -f $(QDL) $(QDL_OBJS)
|
|
rm -f $(RAMDUMP) $(RAMDUMP_OBJS)
|
|
rm -f $(KS_OUT) $(KS_OBJS)
|
|
rm -f compile_commands.json
|
|
rm -f version.h .version.h
|
|
|
|
install: $(QDL) $(RAMDUMP) $(KS_OUT)
|
|
install -d $(DESTDIR)$(prefix)/bin
|
|
install -m 755 $^ $(DESTDIR)$(prefix)/bin
|