summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorGuillermo Ramos2013-05-27 10:19:59 +0200
committerGuillermo Ramos2013-05-27 10:27:12 +0200
commitdef21c086d7205e8b07ca102abc20e3755748296 (patch)
tree6086d9119fc5584ebbca16ef8a3885d72188452a /Makefile
downloadjast-def21c086d7205e8b07ca102abc20e3755748296.tar.gz
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile53
1 files changed, 53 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..2daa325
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,53 @@
+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