1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
# Copyright (C) 2008 by Johannes Overmann <Johannes.Overmann@gmx.de>
# Please see COPYING for license.
# --- config ----------------------------------------------------------------
WARN = -Wall -W -g
#OPT = -O2
OPT =
CPPFLAGS += $(ADDITIONAL_CPPFLAGS)
CXXFLAGS += $(WARN) $(OPT)
CXX = g++
CC = $(CXX)
# --- default target
default: all
# --- target definition -----------------------------------------------------
-include Makefile.init # indirectly include TARGET
include TARGET
SRC := $(wildcard *.cc) $(ADDITIONAL_SOURCES)
VERSION := $(shell grep '\#define VERSION' $(TARGET).cc | sed 's/.*"\([^"]*\)".*/\1/g')
DISTFILES := $(SRC) $(wildcard *.h) TARGET INSTALL COPYING Makefile configure $(wildcard $(TARGET).1)
# --- common rules ----------------------------------------------------------
OBJ := $(SRC:.cc=.o)
all: $(TARGET)
usage:
@echo "Targets: $(TARGET) strip install dist clean"
$(TARGET): $(OBJ)
strip:
strip $(TARGET)
install: all
mkdir -p $(DESTDIR)/usr/bin
cp $(TARGET) $(DESTDIR)/usr/bin
PACKAGE = $(TARGET)-$(VERSION)
dist:
rm -rf $(PACKAGE)
mkdir $(PACKAGE)
cp $(DISTFILES) $(PACKAGE)
tar czvhf $(PACKAGE).tgz $(PACKAGE)
clean:
rm -f $(OBJ) $(DEP) $(TARGET) *~ $(PACKAGE).tgz
rm -rf $(PACKAGE) $(ADDITIONAL_CLEANFILES)
svnclean: clean
.PHONY: default all clean strip dist svnclean install usage
# --- meta object compiler for qt -------------------------------------------
moc_%.cc: %.h
moc -o $@ $<
# --- dependency generation -------------------------------------------------
.dep.%: %.cc
$(CXX) $(CPPFLAGS) -MM -MT "$@ $(<:%.cc=%.o)" $< -o $@
DEP := $(SRC:%.cc=.dep.%)
ifeq ($(findstring $(MAKECMDGOALS),clean),)
ifeq ($(findstring $(MAKECMDGOALS),svnclean),)
-include $(DEP)
endif
endif
|