TARGET_NAME=libstatic.a
#TARGET_NAME=libdynamic.so
CROSS=
CC=$(CROSS)gcc
CXX=$(CROSS)g++
#DEBUG=-g
DEBUG=
MV=mv -f
CP=cp -f
RM=rm -rf
LN=ln -sf
AR=ar -cr
TOP_PATH = $(shell pwd)
#INC_PATH = $(TOP_PATH)/include
INC_PATH=
SRC_PATH = $(TOP_PATH)/src
MOD_PATH = $(SRC_PATH)
#MOD_LIB_PATH = $(MOD_PATH)/lib
#MOD_INC_PATH = $(MOD_PATH)/include
MOD_LIB_PATH =
MOD_INC_PATH =
DIRS = $(shell find $(SRC_PATH) -maxdepth 10 -type d)
#FILES = $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cpp))
ARCH=X64
ifeq ($(shell getconf LONG_BIT), 32)
ARCH=X86
endif
TARGET=$(TOP_PATH)/$(ARCH)/$(TARGET_NAME)
MODULES_PATH := $(foreach m, $(DIRS), $(m))
#SRCS_CPP += $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cpp))
#SRCS_CC += $(foreach dir, $(DIRS), $(wildcard $(dir)/*.cc))
SRCS_C += $(foreach dir, $(DIRS), $(wildcard $(dir)/*.c))
#OBJS_CPP = $(patsubst %.cpp, %.o, $(SRCS_CPP))
#OBJS_CC = $(patsubst %.cc, %.o, $(SRCS_CC))
OBJS = $(patsubst %.c, %.o, $(SRCS_C))
INC_PATH += -I$(MOD_INC_PATH)
INC_PATH += -I$(MOD_PATH)
#LIB_PATH += -L$(TOP_PATH)/lib
#LIB_PATH += -L$(MOD_LIB_PATH)
LIB_PATH +=
LIB_PATH +=
CMD=
TARGET_NAME_A=libtue_api.a
TARGET_NAME_SO=libtue_api.so
ifeq ($(TARGET_NAME), $(TARGET_NAME_A))
CFLAGS=$(DEBUG) -Wall -c
CMD=$(AR) $@ $^
else ifeq ($(TARGET_NAME), $(TARGET_NAME_SO))
CFLAGS=$(DEBUG) -Wall -c -fPIC
CMD=$(CC) -shared -o $(TARGET) $(OBJS)
endif
all:$(TARGET)
$(TARGET) : $(OBJS)
$(CMD)
$(OBJS):%.o : %.c
$(CC) $(CFLAGS) $< -o $@
.PHONY : clean
clean:
@ $(RM) $(TARGET) $(OBJS)
@ $(RM) $(SRC_PATH)/*.o
@ $(RM) $(TARGET)