[linux] Generieke regel voor executables in make

Cecil Westerhof CecilWesterhof op xs4all.nl
Ma Aug 23 20:05:14 CEST 2010


Ik ben aan het stoeien met make. Ik heb op het ogenblik de volgende
Makefile:
    HELLO_WORLD_EXEC	= helloWorld
    HELLO_WORLD_OBJECTS = helloWorld.o

    CXX             = g++
    CXXFLAGS        = -Wall -Wextra
    EXECUTABLES     = $(HELLO_WORLD_EXEC)
    GENERAL_HEADERS = std_lib_facilities.h
    LDFLAGS         =
    OBJECTS			= $(HELLO_WORLD_OBJECTS)

    .PHONY: all

    all: $(EXECUTABLES)

    clean:
        rm -f $(EXECUTABLES) $(OBJECTS)

    $(HELLO_WORLD_EXEC): $(HELLO_WORLD_OBJECTS)
        $(CXX) $(LDFLAGS) -o $(HELLO_WORLD_EXEC) $(HELLO_WORLD_OBJECTS)

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

Op dit moment is het een beetje overkill, maar ik wil het zo generiek
mogelijk maken. In de toekomst wil ik met één Makefile meerdere
programma's maken.

Ik heb al iets generieks gevonden voor de object files. Dit werkt
echter alleen indien alle object files van dezelfde header files
afhankelijk zijn. Is er ook een manier om dit te doen als de object
files van verschillende header files afhankelijk zijn?
Een oplossing zou zijn om alle header files mee te nemen. Nadeel
daarvan is dat het dan kan gebeuren dat object files voor niets worden
aangemaakt.

Wat ik hier heb gedaan voor object files, is dat ook te doen voor
executables?

Of kan ik beter op een compleet andere manier gaan werken?

-- 
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof



More information about the Linux mailing list