92 lines
1.8 KiB
Makefile
92 lines
1.8 KiB
Makefile
|
# 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);
|