# Skrócona treść pliku makefile

####### Kompilator, narzędzia i opcje

CC            = gcc     # plik wykonywalny kompilatora C
CXX           = g++     # plik wykonywalny kompilatora C++
LINK          = g++     # plik wykonywalny konsolidatora

# Flagi przekazywane kompilatorowi
CFLAGS        = -pipe -g -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS      = -pipe -g -Wall -W -D_REENTRANT $(DEFINES)
INCPATH       = -I/usr/local/qt/mkspecs/default -I. \
                -I$(QT4)/include/QtGui -I$(QT4)/include/QtCore \
                -I$(QT4)/include

# Flagi konsolidatora
LIBS          = $(SUBLIBS) -L$(QT4)/lib -lQtCore_debug -lQtGui_debug -lpthread
LFLAGS        = -Wl,-rpath,$(QT4)/lib

# Makra dla innych operacji wykonywanych w ramach procesu budowania
QMAKE         = /usr/local/qt/bin/qmake

####### Pliki

HEADERS       =    # Gdyby istniały nagłówki, umieścilibyśmy je tutaj
SOURCES       = main.cpp
OBJECTS       = main.o
[snip]
QMAKE_TARGET  = qapp
DESTDIR       = 
TARGET        = qapp  # domyślny wynik procesu budowania

first: all            # by zbudować "first", musimy najpierw zbudować "all"

####### Reguły domyślne

.SUFFIXES: .c .o .cpp .cc .cxx .C

.cpp.o:
         $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<

## Możliwe cele — produkty procesu budowania

all: Makefile $(TARGET)  # Tak budujemy "all"

$(TARGET):  $(OBJECTS) $(OBJMOC)    # Tak budujemy qapp
        $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJMOC) $(OBJCOMP) \
    $(LIBS)

        qmake:  FORCE               # "qmake" też jest celem! 
        @$(QMAKE) -o Makefile qapp.pro  # co to robi?

dist:                               # Inny cel
        @mkdir -p .tmp/qapp \
    && $(COPY_FILE) --parents $(SOURCES) $(HEADERS) \ 
       $(FORMS) $(DIST) .tmp/qapp/ \ 
    &&  (cd `dirname .tmp/qapp` \ && $(TAR) qapp.tar qapp \ 
         && $(COMPRESS) qapp.tar) \ 
    && $(MOVE) `dirname .tmp/qapp`/qapp.tar.gz . \ 
    && $(DEL_FILE) -r .tmp/qapp

clean:compiler_clean                # Jeszcze inny cel
       -$(DEL_FILE) $(OBJECTS)
       -$(DEL_FILE) *~ core *.core


####### Zależności domyślnych reguł

main.o: main.cpp
