Makefile
changeset 6 85718bc3ff47
parent 4 5701b7859a31
child 8 8d0f25ef038e
equal deleted inserted replaced
5:7718f04c8cd1 6:85718bc3ff47
     1 
     1 DEPS         = sqlite3
     2 CFLAGS       = -O2
     2 DEPS_DEBUG   = sqlite3 libprofiler
     3 CFLAGS_DEBUG = -Wall -L /opt/local/lib -I /opt/local/include -DDEBUG -DPROG='"volta (debugmode)"'
     3 CFLAGS       = $(shell pkg-config --cflags-only-I --libs-only-L $(DEPS)) -O2
     4 LIBS         = -lsqlite3
     4 LIBS         = $(shell pkg-config --libs-only-l $(DEPS))
     5 LIBS_DEBUG   = -lprofiler  # requires proftools
       
     6 #OBJS         = $(patsubst %.c,%.o,$(wildcard *.c)) parser.o
     5 #OBJS         = $(patsubst %.c,%.o,$(wildcard *.c)) parser.o
     7 OBJS         = accept_loop.o db.o main.o parser.o util.o
     6 OBJS         = accept_loop.o db.o main.o parser.o util.o
       
     7 RAGEL_FLAGS  = -LCe -G2
     8 
     8 
     9 ########################################################################
     9 ########################################################################
    10 ### P R O D U C T I O N
    10 ### P R O D U C T I O N
    11 ########################################################################
    11 ########################################################################
    12 
    12 
    15 	strip $@
    15 	strip $@
    16 
    16 
    17 $(OBJS): volta.h
    17 $(OBJS): volta.h
    18 
    18 
    19 # don't actually depend on parser.rl, so distributions don't require ragel
    19 # don't actually depend on parser.rl, so distributions don't require ragel
    20 # ragel -C -T0 parser.rl -o $@
       
    21 parser.c:
    20 parser.c:
    22 	ragel -L -C -e -G2 parser.rl -o $@
    21 	ragel $(RAGEL_FLAGS) -s parser.rl -o $@
    23 
    22 
    24 
    23 
    25 ########################################################################
    24 ########################################################################
    26 ### D E B U G
    25 ### D E B U G
    27 ########################################################################
    26 ########################################################################
    28 
    27 
    29 debug: CFLAGS += $(CFLAGS_DEBUG)
    28 debug: CFLAGS = -ggdb -Wall -DDEBUG -DPROG='"volta (debugmode)"'\
    30 debug: LIBS   += $(LIBS_DEBUG)
    29 	$(shell pkg-config --cflags-only-I --libs-only-L $(DEPS_DEBUG))
    31 debug: volta-debug parser_graph.xml parser_graph.png parser_graph.dot
    30 debug: LIBS = $(shell pkg-config --libs-only-l $(DEPS_DEBUG))
       
    31 debug: volta-debug parser_graph.xml parser_graph.pdf parser_graph.dot
    32 
    32 
    33 volta-debug: $(OBJS)
    33 volta-debug: $(OBJS)
    34 	$(CC) $(CFLAGS) $(LIBS) -o volta $(OBJS)
    34 	$(CC) $(CFLAGS) $(LIBS) -o volta $(OBJS)
    35 
    35 
    36 parser_graph.xml parser_graph.png parser_graph.dot: parser.rl
    36 parser_graph.xml parser_graph.pdf parser_graph.dot: parser.rl
    37 	ragel -Vp parser.rl > parser_graph.dot
    37 #	ragel -Vp parser.rl > parser_graph.dot
    38 	ragel -C -e -G2 -x parser.rl -o parser_graph.xml
    38 #	ragel $(RAGEL_FLAGS) -x parser.rl -o parser_graph.xml
    39 	dot -Tpng parser_graph.dot > parser_graph.png
    39 #	dot -Tpdf parser_graph.dot > parser_graph.pdf
    40 
    40 
    41 # export CPUPROFILE="cpu.prof" before running volta for cpu profiling
    41 # export CPUPROFILE="cpu.prof" before running volta for cpu profiling
    42 # export CPUPROFILE_FREQUENCY=100 (default)
    42 # export CPUPROFILE_FREQUENCY=100 (default)
    43 profile:
    43 profile:
    44 	pprof --dot ./volta $(CPUPROFILE) | dot -Tpng > $(CPUPROFILE).png
    44 	pprof --dot ./volta $(CPUPROFILE) | dot -Tpng > $(CPUPROFILE).png