Makefiles generalisieren



  • Hallo Leute,

    ich möchte für meine Projekte gerne meine Makefiles generalisieren.
    Das heisst, ich möchte mir zwei Files schreiben; in das erste kommen alle Regeln, in das zweite alles allgemeine. Ich möchte also für jedes Projekt nur noch einen zusätzliches Makefile schreiben, in dem alle Dateien, Compiler- und Linkerflags eingetragen werden. Die ersten beiden Files werden in dieses Makefile eingebunden und man kann wunderbar kompilieren.

    Hat jemand von euch ein Ahnung, wie man sowas sinnvoll machen kann, oder gar ein Beispiel dafür???

    Grateful for any suggestions. 😃

    Meaculpa



  • Genauso wie unter C/C++,PHP

    include ./MakeInc



  • Hallo!

    Du wolltest ein Beispiel, du sollst es haben!

    Es gibt zwei Dateien, eine Makefile da wo du alle zu compilenden Dateien einträgst, sowie die zu verwendenden Libs, und ne Makefile.conf, die die eigentliche Arbeit macht.
    Die Makesfiles stammen aus Clanlib..

    Hoffe das hilft dir 🙂

    Makefile

    EXAMPLE_BIN=exename
    OBJF=main.o \
             bla.o
    # ^^ hier ist ein Tab eingefügt!
    
    LIBS=ncurses blaLib
    
    include Makefile.conf
    

    Makefile.conf

    # würde an alle libs ein "-0.7" anhängen
    # PACKAGES = $(patsubst %,%-0.7,$(LIBS))
    PACKAGES = LIBS
    
    CXXFLAGS += `pkg-config --cflags $(PACKAGES)`
    
    #EXAMPLE_BIN contains the binary to build
    all: $(EXAMPLE_BIN)
    
    $(EXAMPLE_BIN): $(OBJF)
    	$(CXX) $(CXXFLAGS) $(OBJF) -o $(EXAMPLE_BIN) `pkg-config --libs $(PACKAGES)`
    
            # toller piepsesound nach erfolgreichem compilen	
    	echo -e "\a"
    
    clean:
    	rm -f $(OBJF) $(EXAMPLE_BIN)
    
    %.o : %.cpp
    	$(CXX) $(CXXFLAGS) -c $< -o $@
    

    Edit:
    Kleiner Fehler beseitigt



  • Danke, dass sieht ja schon ziemlich gut aus...

    Dann werd ich mich mal dran machen dass für mich umzustricken.

    Gruß Mea


Anmelden zum Antworten