mirror of https://github.com/sipwise/kamailio.git
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.
127 lines
2.4 KiB
127 lines
2.4 KiB
# lib-type may be given from commandline to control
|
|
# if resulting library will be static or shared
|
|
# possible values: static, shared
|
|
lib-type ?= shared
|
|
|
|
# install directories
|
|
prefix ?= /usr/local
|
|
bin-dir ?= ${prefix}/bin
|
|
include-dir ?= ${prefix}/include
|
|
lib-dir ?= ${prefix}/lib
|
|
|
|
# install programs
|
|
install ?= install
|
|
install-bin ?= $(install) -m 755
|
|
install-lib ?= $(install) -m 755
|
|
install-includes ?= $(install) -m 644
|
|
|
|
# working variables
|
|
SRCS := $(wildcard *.c)
|
|
HDRS := $(wildcard *.h)
|
|
DEP_IN = ${SRCS} ${HDRS}
|
|
OBJS := $(patsubst %.c,%.o,$(SRCS))
|
|
|
|
####################################
|
|
# make rules
|
|
|
|
static_lib_name = lib${NAME}.a
|
|
dynamic_lib_name = lib${NAME}.so
|
|
prg_name = ${NAME}
|
|
|
|
out_name = ${prg_name}
|
|
|
|
ifeq ($(TYPE),lib)
|
|
INCLUDES += -I$(CURDIR)/..
|
|
ifeq ($(lib-type),static)
|
|
out_name = ${static_lib_name}
|
|
else
|
|
out_name = ${dynamic_lib_name}
|
|
endif
|
|
endif
|
|
|
|
default: ${out_name}
|
|
|
|
#static library
|
|
|
|
${static_lib_name}: ${OBJS}
|
|
ar -r $@ ${OBJS}
|
|
|
|
# dynamic library
|
|
|
|
${dynamic_lib_name}: ${OBJS}
|
|
${CC} -shared ${DEFS} ${CFLAGS} ${INCLUDES} -o $@ ${OBJS} ${LIBS}
|
|
|
|
# executable
|
|
|
|
${NAME}: ${OBJS}
|
|
${CC} ${DEFS} ${CFLAGS} ${INCLUDES} -o $@ ${OBJS} ${LIBS}
|
|
|
|
# common rules
|
|
|
|
%.o: %.c
|
|
${CC} ${DEFS} ${CFLAGS} ${INCLUDES} -c $<
|
|
|
|
.PHONY: install clean proper
|
|
|
|
proper: clean
|
|
|
|
clean:
|
|
-@rm -f ${prg_name} ${static_lib_name} ${dynamic_lib_name} *.o *.so *.d core core.* *~ tags Makefile.deps
|
|
|
|
|
|
ifneq ($(MAKECMDGOALS),proper)
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
-include $(SRCS:.c=.d)
|
|
endif
|
|
endif
|
|
|
|
%.d: %.c
|
|
@$(CC) -M ${DEFS} $(CFLAGS) $(INCLUDES) $< > $@.$$$$; \
|
|
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
|
|
rm -f $@.$$$$
|
|
|
|
|
|
# -include Makefile.deps
|
|
#
|
|
# Makefile.deps: ${DEP_IN}
|
|
# @echo "" > Makefile.deps
|
|
# @makedepend -fMakefile.deps -- ${DEFS} ${CFLAGS} ${INCLUDES} -- ${DEP_IN} 2>/dev/null
|
|
# -@rm -f Makefile.deps.bak
|
|
|
|
# instalation rules
|
|
|
|
ifeq ($(TYPE),lib)
|
|
|
|
# library instalation
|
|
|
|
install: ${out_name} install_dirs
|
|
$(install-lib) ${out_name} $(lib-dir)
|
|
@for hdr in ${HDRS} ; do \
|
|
$(install-includes) $$hdr $(include-dir)/$(NAME); \
|
|
done
|
|
|
|
install_dirs: $(lib-dir) $(include-dir)/$(NAME)
|
|
|
|
else
|
|
|
|
# executable instalation
|
|
|
|
install: ${out_name} install_dirs
|
|
$(install-bin) ${out_name} $(bin-dir)
|
|
|
|
install_dirs: $(bin-dir)
|
|
|
|
endif
|
|
|
|
# creating install directories
|
|
|
|
$(bin-dir):
|
|
mkdir -p $(bin-dir)
|
|
|
|
$(lib-dir):
|
|
mkdir -p $(lib-dir)
|
|
|
|
$(include-dir)/$(NAME):
|
|
mkdir -p $(include-dir)/$(NAME)
|
|
|