# Makefile for gpted PREFIX ?= /usr/local BINDIR ?= $(PREFIX)/bin MANDIR ?= $(PREFIX)/share/man ifeq (,$(VERSION)) VERSION := $(shell git rev-parse --short HEAD) ifneq (,$(shell git diff-index --name-only HEAD)) VERSION := $(VERSION)-dirty endif endif CC := gcc AR := ar LD := gcc CFLAGS := -g -Wall -Werror LDFLAGS := -g LIB_C_SRC := util.c crc32.c gpt.c TARGET_LIB := libgpt.a EXE_C_SRC := gpted.c TARGET_EXE := gpted ifeq ($(WITH_READLINE),true) SYSLIBS := -lreadline else CFLAGS += -I. LIB_C_SRC += readline/readline.c endif LIB_C_OBJ := $(LIB_C_SRC:.c=.o) EXE_C_OBJ := $(EXE_C_SRC:.c=.o) C_SRC := $(LIB_C_SRC) $(EXE_C_SRC) C_OBJ := $(LIB_C_OBJ) $(EXE_C_OBJ) all: $(TARGET_EXE) define cmd_c_compile $(CC) $(CPPFLAGS) $(CFLAGS) -MD -MP -MF .$(@F:.o=.d) -c -o $@ $< endef -include $(wildcard .*.d) %.o: %.c $(cmd_c_compile) verdep := $(shell grep -l "^\#include \"version\.h\"" $(C_SRC)) ifneq ($(verdep),) $(verdep): version.h endif $(TARGET_EXE): $(EXE_C_OBJ) $(TARGET_LIB) $(LD) $(LDFLAGS) -o $@ $^ $(SYSLIBS) $(TARGET_LIB): $(LIB_C_OBJ) $(AR) r $@ $^ version.h: @echo "/* Autogenerated file. Do not edit. */" > .$@.tmp && \ echo "#ifndef VERSION_H" >> .$@.tmp && \ echo "#define PACKAGE \"$(TARGET)\"" >> .$@.tmp && \ echo "#define VERSION \"$(VERSION)\"" >> .$@.tmp && \ echo "#endif" >> .$@.tmp && \ rm -f $@ && \ mv -f .$@.tmp $@ tags: $(C_SRC) ctags -R .PHONY: install install -D gpted $(DESTDIR)$(BINDIR) install -D gpted.1 $(DESTDIR)$(MANDIR)/man1 .PHONY: clean clean: rm -f core .*.d readline/*.o *.o *.a gpted .PHONY: distclean distclean: clean rm -f .*.d .PHONY: tarball tarball: distclean (d=`basename $PWD`; cd ..; \ cp -ar $d $d-$(VERSION); \ tar czvf $d-$(VERSION).tar.gz `find $d-$(VERSION) -type f | egrep -v "CVS|debian|\.git"`; \ rm -rf $d-$(VERSION); \ cd $(PWD);