[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