blob: dfd0b741e79e39617039afe80fb1b8e30c4ccdd1 [file] [log] [blame]
DESTDIR =
PREFIX = /usr/local
BINDIR = $(PREFIX)/bin
CC ?= gcc
LD = $(CC)
CXX ?= g++
ifeq ($(MOD_DEFENDER_SRC),)
MOD_DEFENDER_SRC := ./mod_defender_src
endif
ifeq ($(APACHE2_INC),)
APACHE2_INC := /usr/include/apache2
endif
ifeq ($(APR_INC),)
APR_INC := /usr/include/apr-1.0
endif
ifeq ($(EVENT_LIB),)
EVENT_LIB := -levent
endif
ifeq ($(EVENT_INC),)
EVENT_INC := /usr/include
endif
CFLAGS += -g -Wall -pthread
INCS += -Iinclude -I$(MOD_DEFENDER_SRC) -I$(APACHE2_INC) -I$(APR_INC) -I$(EVENT_INC)
LIBS += -lpthread $(EVENT_LIB) -levent_pthreads -lapr-1 -laprutil-1 -lstdc++ -lm
CXXFLAGS = -g -std=gnu++11
CXXINCS += -I$(MOD_DEFENDER_SRC) -I$(MOD_DEFENDER_SRC)/deps -I$(APACHE2_INC) -I$(APR_INC)
SRCS = standalone.o spoa.o defender.o \
$(wildcard $(MOD_DEFENDER_SRC)/deps/libinjection/*.c)
OBJS = $(patsubst %.c, %.o, $(SRCS))
CXXSRCS = $(wildcard $(MOD_DEFENDER_SRC)/*.cpp)
CXXOBJS = $(patsubst %.cpp, %.o, $(CXXSRCS))
defender: $(OBJS) $(CXXOBJS)
$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
install: defender
install defender $(DESTDIR)$(BINDIR)
clean:
rm -f defender $(OBJS) $(CXXOBJS)
%.o: %.c
$(CC) $(CFLAGS) $(INCS) -c -o $@ $<
%.o: %.cpp
$(CXX) $(CXXFLAGS) $(CXXINCS) -c -o $@ $<