POS/Lab 4 2022

Izvor: SI Wiki
< ПОС
Datum izmene: 3. oktobar 2022. u 01:46; autor: KockaAdmiralac (razgovor | doprinosi) (Ispravljeno rešenje)
Pređi na navigaciju Pređi na pretragu

Postavka

Vaš kolega iz tima i Vi zajedno radite na projektu čiju strukturu (organizacija datoteka po fasciklama) je postavio vaš vođa tima. Te strukture morate da se držite i ne smete da je menjate jer takvu strukturu imaju svi projekti u firmi. Kolega je napisao makefile za prevođenje projekta, ali je to radio veoma brzo i napravio je nekoliko grešaka. Šef je došao kod Vas i zatražio da u narednih pola sata ispravite makefile i još jednom Vam napomenuo da ne smete menjati strukturu projekta. Takođe, šef je zatražio da dodate pravilo koje će omogućiti da se komandom make check pokrene izvršavanje prevedenog projekta. (Datoteka test4.zip sadrži projekat koji je potrebno prevesti.)

Prekopirati ispravljeni makefile.

Rešenje

IDIR = ./code/include
OBJDIR = ./build/obj
SRCDIR = ./code/source
DEPDIR = ./build/_dFiles
COMPILER = gcc

CFLAGS = -w -I $(IDIR)
PROGRAM = ./distribution/prog

SRC = $(wildcard $(SRCDIR)/*.c)
OBJ = $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(SRC))

DEP = $(patsubst $(SRCDIR)/%.c, $(DEPDIR)/%.d, $(SRC))

$(PROGRAM): $(OBJ)
    $(COMPILER) -o $@ $^

$(OBJDIR)/%.o: $(SRCDIR)/%.c
    $(COMPILER) -o $@ -c $&lt; $(CFLAGS)

$(DEPDIR)/%.d: $(SRCDIR)/%.c
    $(COMPILER) -MM -MT $(OBJDIR)/$*.o $&lt; $(CFLAGS) &gt; $@

include $(DEP)

make check:
    make -f makefile $(PROGRAM)
    $PROGRAM

clean:
    rm -f $(OBJDIR)/*.o
    rm -f $(DEPDIR)/*.d
    rm -f *~
    rm -f $(PROGRAM)

.PHONY: clean
    make check

Rešenje