CC = gcc CFLAGS = -Wall -Wextra -pedantic -std=c99 -O3 -Idoll LDFLAGS = -lm OBJECTS = jast.o HEADERS = jast.h DEPENDS = doll/doll.o RELOCAT = libjast.o LIBRARY = libjast.a JAST_TEST = jast_test PREFIX = /usr/local release: $(RELOCAT) $(LIBRARY) $(RELOCAT): $(DEPENDS) $(OBJECTS) ld -r $(DEPENDS) $(OBJECTS) -o $(RELOCAT) $(LIBRARY): $(DEPENDS) $(OBJECTS) ar rcs $(LIBRARY) $(OBJECTS) $(DEPENDS) $(JAST_TEST)_lib: $(LIBRARY) $(JAST_TEST).o $(CC) $(JAST_TEST).o $(LDFLAGS) -L. -ljast -o $(JAST_TEST) $(JAST_TEST): $(RELOCAT) $(JAST_TEST).o $(CC) $(JAST_TEST).o $(RELOCAT) $(LDFLAGS) -o $(JAST_TEST) test: release $(JAST_TEST) ./$(JAST_TEST) doc: rm -rf doc doxygen re: clean release clean: cd doll && make clean rm -rf *.o *.a doc $(JAST_TEST) $(TARGET) install: release mkdir -p $(PREFIX)/lib mkdir -p $(PREFIX)/include cp $(LIBRARY) $(PREFIX)/lib/ cp $(HEADERS) $(PREFIX)/include/ chmod 644 $(PREFIX)/lib/$(LIBRARY) doll/doll.o: cd doll && make %.o: %.c $(CC) $(CFLAGS) -c $< .PHONY: release doll test doc re clean install