# HG changeset patch # User Guido Berhoerster # Date 1318345669 -7200 # Node ID 56a7ed833d0a1bf870dca6cec1ed49f08a6c5cfa # Parent 7539e6e1c299e890fe9363bfdbd76c846544bb5e allow overriding CFLAGS add automatic target dependencies to makefile add install target to Makefile minor makefile fixes diff -r 7539e6e1c299 -r 56a7ed833d0a Makefile --- a/Makefile Thu Oct 06 16:02:19 2011 +0200 +++ b/Makefile Tue Oct 11 17:07:49 2011 +0200 @@ -1,16 +1,44 @@ -CC=gcc -OBJS=main.o notify.o packagekit.o -CFLAGS=$(shell pkg-config --cflags gtk+-2.0 libnotify packagekit-glib2) -Wall -DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE -LDFLAGS=$(shell pkg-config --libs gtk+-2.0 libnotify packagekit-glib2) -NAME=pk-update-icon +INSTALL := install +INSTALL.exec := $(INSTALL) -D -m 0755 +INSTALL.data := $(INSTALL) -D -m 0644 +SED := sed + +DESTDIR ?= +prefix ?= /usr/local +bindir ?= $(prefix)/bin +sysconfdir ?= /etc +xdgautostartdir ?= $(sysconfdir)/xdg/autostart -all: $(NAME) +PACKAGE = pk-update-icon +VERSION = 0.1 +OBJS = main.o notify.o packagekit.o +AUTOSTART_FILE = $(PACKAGE).desktop +CPPFLAGS := $(shell pkg-config --cflags gtk+-2.0 libnotify packagekit-glib2) \ + -DI_KNOW_THE_PACKAGEKIT_GLIB2_API_IS_SUBJECT_TO_CHANGE +LDLIBS := $(shell pkg-config --libs gtk+-2.0 libnotify packagekit-glib2) -$(NAME): $(OBJS) - $(CC) $(OBJS) $(LDFLAGS) -o $(NAME) +.DEFAULT_TARGET = all + +.PHONY: all clean install + +all: $(PACKAGE) + +$(PACKAGE): $(OBJS) + $(LINK.o) $^ $(LDLIBS) -o $@ %.o: %.c - $(CC) -c $< $(CFLAGS) -o $@ + $(COMPILE.c) -MD -o $@ $< + @cp $*.d $*.P; \ + $(SED) -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ + -e '/^$$/ d' -e 's/$$/ :/' < $*.d >> $*.P; \ + rm -f $*.d + +install: + $(INSTALL.exec) $(PACKAGE) $(DESTDIR)$(bindir)/$(PACKAGE) + $(INSTALL.data) $(AUTOSTART_FILE) \ + $(DESTDIR)$(xdgautostartdir)/$(AUTOSTART_FILE) clean: - rm -f $(OBJS) $(NAME) + -rm -f $(PACKAGE) $(OBJS) + +-include $(patsubst %.o,%.P,$(OBJS))