Simple library for C language divided into modules.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
869B

  1. CC = gcc
  2. CFLAGS = -g -Wall -I$(IDIR)
  3. LIBS = -lm
  4. IDIR = ./inc
  5. ODIR = obj
  6. MKDIR = mkdir -p
  7. _DEPS = msconf.h moss.h moss/array.h moss/hash.h moss/string.h
  8. DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))
  9. _OBJS = array.o string.o hash/djb.o hash/fnv.o hash/joaat.o hash/murmur.o hash/sdbm.o hash/xxhash.o
  10. OBJS = $(patsubst %,$(ODIR)/%,$(_OBJS))
  11. .PHONY: all
  12. .PHONY: clean
  13. .PHONY: directories
  14. .PHONY: doc
  15. moss: obj/main.o $(OBJS)
  16. $(CC) -o build/$@ $^ $(CFLAGS) $(LIBS)
  17. directories:
  18. $(MKDIR) $(ODIR)
  19. $(MKDIR) $(ODIR)/hash
  20. obj/main.o: main.c $(DEPS)
  21. $(CC) -c -o $@ $< $(CFLAGS)
  22. $(ODIR)/%.o: src/%.c $(DEPS)
  23. $(CC) -c -o $@ $< $(CFLAGS)
  24. # tylko pliki biblioteki
  25. library: directories moss
  26. # wszystko
  27. all: directories moss doc
  28. # dokumentacja
  29. doc:
  30. make -C ./doc html
  31. # czyści wszystkie pliki zapisane w folderze obj
  32. clean:
  33. rm -f $(ODIR)/*.o $(ODIR)/hash/*.o