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.

76 lines
1.6 KiB

# Define EVDIR=/foo/bar if your libev header and library files are in
# /foo/bar/include and /foo/bar/lib directories.
EVDIR=$(HOME)/local/libev
# Define GNUTLSDIR=/foo/bar if your gnutls header and library files are in
# /foo/bar/include and /foo/bar/lib directories.
#
# Comment out the following line to disable TLS
GNUTLSDIR=/usr
# CFLAGS and LDFLAGS are for the users to override from the command line.
CFLAGS = -g -I. -Wall -Werror -Wextra #-DNDEBUG=1
LDFLAGS =
CC = gcc
AR = ar
RANLIB = ranlib
ifdef EVDIR
CFLAGS += -I$(EVDIR)/include
LDFLAGS += -L$(EVDIR)/lib
endif
LDFLAGS += -lev
ifdef GNUTLSDIR
CFLAGS += -I$(GNUTLSDIR)/include -DEVCOM_HAVE_GNUTLS=1
LDFLAGS += -L$(GNUTLSDIR)/lib
LDFLAGS += -lgnutls
endif
DEP = evcom.h
SRC = evcom.c
OBJ = ${SRC:.c=.o}
NAME=libevcom
OUTPUT_A=$(NAME).a
all: $(OUTPUT_A) test/test test/echo
$(OUTPUT_A): $(OBJ)
$(AR) cru $(OUTPUT_A) $(OBJ)
$(RANLIB) $(OUTPUT_A)
.c.o:
$(CC) -c ${CFLAGS} $<
${OBJ}: ${DEP}
FAIL=ruby -e 'puts "\033[1;31m FAIL\033[m"'
PASS=ruby -e 'puts "\033[1;32m PASS\033[m"'
test: test/test test/echo test/timeout.rb
@echo test.c
@test/test > /dev/null && $(PASS) || $(FAIL)
@echo timeout.rb
@test/timeout.rb
test/test: test/test.c $(OUTPUT_A)
$(CC) $(LDFLAGS) $(CFLAGS) -o $@ test/test.c $(OUTPUT_A)
test/echo: test/echo.c $(OUTPUT_A)
$(CC) $(LDFLAGS) $(CFLAGS) -o $@ test/echo.c $(OUTPUT_A)
send_states.png: send_states.dot
dot -Tpng -o send_states.png send_states.dot
recv_states.png: recv_states.dot
dot -Tpng -o recv_states.png recv_states.dot
clean:
rm -rf test/test test/echo
rm -f $(OUTPUT_A) *.o
.PHONY: all clean test