56 lines
No EOL
1.3 KiB
Makefile
56 lines
No EOL
1.3 KiB
Makefile
#Makefile
|
|
#Řešení IJC-DU2, 22.4.2024
|
|
#Autor: Roman Nečas, FIT
|
|
|
|
# Nastavenie kompilátora a príznakov
|
|
CC=gcc
|
|
CFLAGS=-std=c11 -pedantic -Wall -Wextra -g
|
|
PIC_CFLAGS=$(CFLAGS) -fPIC
|
|
|
|
# Zdrojove subory kniznice
|
|
HTAB_SRCS=htab_init.c htab_size.c htab_bucket_count.c htab_find.c htab_lookup_add.c htab_erase.c htab_for_each.c htab_clear.c htab_free.c htab_statistics.c htab_hash_function.c
|
|
|
|
#Ciele
|
|
all: tail wordcount wordcount-dynamic libhtab.a libhtab.so
|
|
|
|
# Pravidla pre programy
|
|
tail: tail.o
|
|
$(CC) $(CFLAGS) $< -o $@
|
|
|
|
wordcount: wordcount.o io.o libhtab.a
|
|
$(CC) $(CFLAGS) $^ -o $@
|
|
|
|
wordcount-dynamic: wordcount.o io.o libhtab.so
|
|
$(CC) $(CFLAGS) $^ -o $@
|
|
|
|
# Zavislosti pre objektove subory
|
|
%.o: %.c htab.h htab_struct.h
|
|
$(CC) $(PIC_CFLAGS) -c $<
|
|
|
|
io.o: io.c
|
|
$(CC) $(CFLAGS) -c $<
|
|
|
|
# Pravidla pre staticku a dynamicku kniznicu
|
|
libhtab.a: $(HTAB_SRCS:.c=.o)
|
|
ar rcs $@ $^
|
|
|
|
libhtab.so: $(HTAB_SRCS:.c=.o)
|
|
$(CC) $(CFLAGS) -shared -o $@ $^
|
|
|
|
# Pravidla pre spustenie programov
|
|
run: run-tail run-wordcount run-wordcount-dynamic
|
|
|
|
run-wordcount: wordcount
|
|
./wordcount < wordcount.c
|
|
|
|
run-wordcount-dynamic: wordcount-dynamic
|
|
LD_LIBRARY_PATH="." ./wordcount-dynamic < wordcount.c
|
|
|
|
run-tail: tail
|
|
./tail < wordcount.c
|
|
|
|
# Cistenie
|
|
clean:
|
|
rm -f *.o *.a *.so tail wordcount wordcount-dynamic
|
|
|
|
.PHONY: all clean run run-wordcount run-wordcount-dynamic run-tail |