summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile43
1 files changed, 43 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..86f0ae6
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,43 @@
+PROJ=libcmd
+CC=gcc
+CFLAGS=-g3
+LDFLAGS=
+RAGEL=ragel
+DOT=dot
+
+SOURCE=cmd cmd_parse
+OBJECTS=$(SOURCE:=.o)
+SOURCES=$(SOURCE:=.c)
+
+%.o: %.c
+ $(CC) $(CFLAGS) -c $<
+
+
+make: dynamic static object
+
+dynamic: CFLAGS+=-fPIC
+dynamic: clean $(OBJECTS)
+ $(CC) $(CFLAGS) $(OBJECTS) -shared -o $(PROJ).so
+
+static: clean $(OBJECTS)
+ ar rcs $(PROJ).a $(OBJECTS)
+
+object: clean $(OBJECTS)
+ ld -r $(OBJECTS) -o $(PROJ).o
+
+ragel:
+ $(RAGEL) cmd_parse.ragel
+
+cli:
+ $(CC) $(CFLAGS) -L./ -I./ -lcmd ./test/cmd_cli.c -o ./cmd_cli
+
+pdf:
+ $(RAGEL) -V cmd_parse.ragel -o cmd_parse.dot
+ $(DOT) -Tpdf cmd_parse.dot -o cmd_parse.pdf
+
+leak:
+ valgrind --leak-check=full --track-origins=yes --log-file=log.txt ./cmd_cli
+
+clean:
+ rm -f cmd_cli
+ rm -rf *.so *.o *.dot *.pdf