mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-15 09:20:52 +08:00
89 lines
2.0 KiB
Makefile
89 lines
2.0 KiB
Makefile
|
SHELL = /bin/sh
|
||
|
CC = g++
|
||
|
AR = ar
|
||
|
ARFL = rv
|
||
|
#ARFL = cru
|
||
|
RANLIB = ranlib
|
||
|
|
||
|
#-Wcast-qual
|
||
|
CFLAGS = -c -g -W -Wall -Wcast-align \
|
||
|
-Wpointer-arith -Werror -Wshadow -O3 \
|
||
|
-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS \
|
||
|
-Wno-long-long \
|
||
|
-fPIC \
|
||
|
-Wformat
|
||
|
|
||
|
###########################################################
|
||
|
#Check system:
|
||
|
# Linux, SunOS, Solaris, BSD variants, AIX, HP-UX
|
||
|
SYSLIB =
|
||
|
CHECKSYSRES = @echo "Unknow system type!";exit 1
|
||
|
UNIXNAME = $(shell uname -sm)
|
||
|
|
||
|
ifeq ($(CC),)
|
||
|
CC = g++
|
||
|
endif
|
||
|
|
||
|
# For Linux
|
||
|
ifeq ($(findstring Linux, $(UNIXNAME)), Linux)
|
||
|
ifeq ($CC, "gcc")
|
||
|
CFLAGS += -Wstrict-prototypes
|
||
|
endif
|
||
|
CFLAGS += -DLINUX2 -D_REENTRANT
|
||
|
endif
|
||
|
|
||
|
#Find system type.
|
||
|
ifneq ($(SYSPATH),)
|
||
|
CHECKSYSRES = @echo "System is $(shell uname -sm)"
|
||
|
endif
|
||
|
###########################################################
|
||
|
|
||
|
OBJ_PATH_DST = ./obj
|
||
|
LIB_PATH_DST = ./lib
|
||
|
DEF_PATH_DST = ./obj
|
||
|
|
||
|
CFLAGS += -I./include
|
||
|
|
||
|
#Project's objs
|
||
|
OBJS_DST = $(patsubst %.cpp, $(OBJ_PATH_DST)/%.o, $(notdir $(wildcard src/*.cpp)))
|
||
|
|
||
|
OBJS_DEF = $(patsubst %.cpp, $(DEF_PATH_DST)/%.inc, $(notdir $(wildcard src/*.cpp)))
|
||
|
|
||
|
###########################################################
|
||
|
.PHONY = static clean
|
||
|
DATE_NOW = 20`date +%y`.`date +%m`.`date +%d`
|
||
|
|
||
|
all: static
|
||
|
|
||
|
$(shell mkdir -p $(DEF_PATH_DST))
|
||
|
ifneq ($(MAKECMDGOALS),clean)
|
||
|
-include $(OBJS_DEF)
|
||
|
endif
|
||
|
|
||
|
COMPILE = $(CC) $(CFLAGS)
|
||
|
COMPILE_OBJ = @(echo 'building $<'; $(COMPILE) $< -o $@)
|
||
|
CREATE_DEF = @(echo 'creating $@'; rm -f $@; \
|
||
|
$(COMPILE) -MM $< > $@.$$$$; \
|
||
|
sed 's,.*.o\( \)*:,$(patsubst %.inc,%.o,$@) $@ :,g' < $@.$$$$ > $@; \
|
||
|
rm -f $@.$$$$)
|
||
|
|
||
|
###########################################################
|
||
|
|
||
|
static: depends $(OBJS_DST)
|
||
|
@echo 'creating $(LIB_PATH_DST)/lib_connpool.a'
|
||
|
@$(AR) $(ARFL) $(LIB_PATH_DST)/lib_connpool.a $(OBJS_DST)
|
||
|
@$(RANLIB) $(LIB_PATH_DST)/lib_connpool.a
|
||
|
@echo 'create $(LIB_PATH_DST)/lib_connpool.a ok!'
|
||
|
|
||
|
depends: $(OBJS_DEF)
|
||
|
|
||
|
# src
|
||
|
$(OBJ_PATH_DST)/%.o: src/%.cpp
|
||
|
$(COMPILE_OBJ)
|
||
|
$(DEF_PATH_DST)/%.inc: src/%.cpp
|
||
|
$(CREATE_DEF)
|
||
|
clean:
|
||
|
rm -f $(LIB_PATH_DST)/lib_connpool.a
|
||
|
rm -f $(OBJS_DST)
|
||
|
rm -f $(OBJS_DEF)
|