Files
src-1.2/external/3rd/library/platform/utils/Base/linux/Makefile
T
2014-01-16 07:25:50 -07:00

200 lines
5.8 KiB
Makefile

# environment variables:
# $INCLUDE_PATH is a colon-delimited list of include directories
EMPTY_CHAR=
SPACE_CHAR=$(empty) $(empty)
COLON_CHAR=:
# # # # # # # # # # # # # # # # # # # # #
OUTPUT_FILE_ST=libBase.a
OUTPUT_FILE_MT=libBase_MT.a
OUTPUT_DIR=../../../lib
OBJECT_DIR_ST=./obj_st
OBJECT_DIR_MT=./obj_mt
STL_HOME=../../../../stlport453
INCLUDE_DIRS=.. ../ $(STL_HOME)/stlport
SOURCE_DIRS=. ..
SOURCE_FILES=
LIBRARY_DIRS=
LIBRARY_FILES=
CFLAGS_USER=
LFLAGS_USER=
# # # # # # # # # # # # # # # # # # # # #
INCLUDE_DIR_LIST=$(subst $(COLON_CHAR),$(SPACE_CHAR),$(INCLUDE_PATH)) $(INCLUDE_DIRS)
INCLUDE_FLAGS=$(addprefix -I,$(INCLUDE_DIR_LIST))
CFLAGS_ST=$(INCLUDE_FLAGS) $(CFLAGS_USER) -D_GNU_SOURCE -Wall -Wno-unknown-pragmas
CFLAGS_MT=$(INCLUDE_FLAGS) $(CFLAGS_USER) -D_GNU_SOURCE -D_REENTRANT -Wall -Wno-unknown-pragmas
CFLAGS_DEBUG_ST=$(CFLAGS_ST) -D_DEBUG -g
CFLAGS_RELEASE_ST=$(CFLAGS_ST) -DNDEBUG -O2
CFLAGS_DEBUG_MT=$(CFLAGS_MT) -D_DEBUG -g
CFLAGS_RELEASE_MT=$(CFLAGS_MT) -DNDEBUG -O2
LIBRARY_FLAGS=$(addprefix -l,$(LIBRARIES))
LFLAGS=$(LIBRARY_FLAGS) $(LFLAGS_USER) -r
LFLAGS_DEBUG=$(LFLAGS)
LFLAGS_RELEASE=$(LFLAGS)
CPP=g++
LINK=ld
# # # # # # # # # # # # # # # # # # # # #
DEBUG_OBJ_DIR_ST=$(OBJECT_DIR_ST)/debug
RELEASE_OBJ_DIR_ST=$(OBJECT_DIR_ST)/release
DEBUG_OBJ_DIR_MT=$(OBJECT_DIR_MT)/debug
RELEASE_OBJ_DIR_MT=$(OBJECT_DIR_MT)/release
DEBUG_DIR=$(OUTPUT_DIR)/debug
RELEASE_DIR=$(OUTPUT_DIR)/release
FIND=$(shell ls $(x)/*.cpp)
SOURCE_LIST = $(SOURCE_FILES) $(foreach x, $(SOURCE_DIRS), $(FIND))
DEBUG_OBJ_LIST_ST=$(addprefix $(DEBUG_OBJ_DIR_ST)/, $(notdir $(SOURCE_LIST:.cpp=.o)))
RELEASE_OBJ_LIST_ST=$(addprefix $(RELEASE_OBJ_DIR_ST)/, $(notdir $(SOURCE_LIST:.cpp=.o)))
DEBUG_OBJ_LIST_MT=$(addprefix $(DEBUG_OBJ_DIR_MT)/, $(notdir $(SOURCE_LIST:.cpp=.o)))
RELEASE_OBJ_LIST_MT=$(addprefix $(RELEASE_OBJ_DIR_MT)/, $(notdir $(SOURCE_LIST:.cpp=.o)))
DEPENDENCY_LIST = $(SOURCE_LIST:.cpp=.d)
# # # # # # # # # # # # # # # # # # # # #
release_st: echoRelease_st releaseDirs_st $(RELEASE_DIR)/$(OUTPUT_FILE_ST)
@echo Successfully built $(RELEASE_DIR)/$(OUTPUT_FILE_ST)
@echo
debug_st: debugDirs_st $(DEBUG_DIR)/$(OUTPUT_FILE_ST)
@echo Successfully built $(DEBUG_DIR)/$(OUTPUT_FILE_ST)
@echo
release_mt: echoRelease_mt releaseDirs_mt $(RELEASE_DIR)/$(OUTPUT_FILE_MT)
@echo Successfully built $(RELEASE_DIR)/$(OUTPUT_FILE_MT)
@echo
debug_mt: debugDirs_mt $(DEBUG_DIR)/$(OUTPUT_FILE_MT)
@echo Successfully built $(DEBUG_DIR)/$(OUTPUT_FILE_MT)
@echo
all: clean debug_st release_st debug_mt release_mt
all_st: clean debug_st release_st
all_mt: clean debug_mt release_mt
# # # # # # # # # # # # # # # # # # # # #
debugDirs_st :
@mkdir -p $(DEBUG_OBJ_DIR_ST)
@mkdir -p $(DEBUG_DIR)
$(DEBUG_OBJ_DIR_ST)/%.o : $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
$(CPP) $(CFLAGS_DEBUG_ST) -o $@ -c $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
$(DEBUG_DIR)/$(OUTPUT_FILE_ST): $(DEBUG_OBJ_LIST_ST)
$(LINK) $(LFLAGS_DEBUG) -o $@ $(DEBUG_OBJ_LIST_ST)
debugDirs_mt :
@mkdir -p $(DEBUG_OBJ_DIR_MT)
@mkdir -p $(DEBUG_DIR)
$(DEBUG_OBJ_DIR_MT)/%.o : $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
$(CPP) $(CFLAGS_DEBUG_MT) -o $@ -c $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
$(DEBUG_DIR)/$(OUTPUT_FILE_MT): $(DEBUG_OBJ_LIST_MT)
$(LINK) $(LFLAGS_DEBUG) -o $@ $(DEBUG_OBJ_LIST_MT)
# # # # # # # # # # # # # # # # # # # # #
echoRelease_st :
@echo Building $(OUTPUT_FILE_ST)
@echo compiler: $(CPP) $(CFLAGS_RELEASE_ST)
@echo linker: $(LINK) $(LFLAGS_RELEASE)
@echo
echoRelease_mt :
@echo Building $(OUTPUT_FILE_MT)
@echo compiler: $(CPP) $(CFLAGS_RELEASE_MT)
@echo linker: $(LINK) $(LFLAGS_RELEASE)
@echo
# # # # # # # # # # # # # # # # # # # # #
releaseDirs_st :
@mkdir -p $(RELEASE_OBJ_DIR_ST)
@mkdir -p $(RELEASE_DIR)
$(RELEASE_OBJ_DIR_ST)/%.o : $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
@echo compiling $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
@$(CPP) $(CFLAGS_RELEASE_ST) -o $@ -c $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
$(RELEASE_DIR)/$(OUTPUT_FILE_ST): $(RELEASE_OBJ_LIST_ST)
@echo linking $(RELEASE_DIR)/$(OUTPUT_FILE_ST)
@$(LINK) $(LFLAGS_RELEASE) -o $@ $(RELEASE_OBJ_LIST_ST)
releaseDirs_mt :
@mkdir -p $(RELEASE_OBJ_DIR_MT)
@mkdir -p $(RELEASE_DIR)
$(RELEASE_OBJ_DIR_MT)/%.o : $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
@echo compiling $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
@$(CPP) $(CFLAGS_RELEASE_MT) -o $@ -c $(filter %/$(notdir $(basename $@)).cpp,$(SOURCE_LIST))
$(RELEASE_DIR)/$(OUTPUT_FILE_MT): $(RELEASE_OBJ_LIST_MT)
@echo linking $(RELEASE_DIR)/$(OUTPUT_FILE_MT)
@$(LINK) $(LFLAGS_RELEASE) -o $@ $(RELEASE_OBJ_LIST_MT)
# # # # # # # # # # # # # # # # # # # # #
include .depend
.PHONY : $(DEPENDENCY_LIST)
depend: .depend $(DEPENDENCY_LIST)
.depend:
touch .depend
make depend
$(DEPENDENCY_LIST):
@echo Generating dependencies for $(notdir $(@:.d=.cpp))
@echo -n $(DEBUG_OBJ_DIR_ST)/ >> .depend
@$(CPP) -MM $(addprefix -I,$(INCLUDE_DIRS)) $(@:.d=.cpp)>> .depend
@echo -n $(DEBUG_OBJ_DIR_MT)/ >> .depend
@$(CPP) -MM $(addprefix -I,$(INCLUDE_DIRS)) $(@:.d=.cpp) >> .depend
@echo -n $(RELEASE_OBJ_DIR_ST)/ >> .depend
@$(CPP) -MM $(addprefix -I,$(INCLUDE_DIRS)) $(@:.d=.cpp)>> .depend
@echo -n $(RELEASE_OBJ_DIR_MT)/ >> .depend
@$(CPP) -MM $(addprefix -I,$(INCLUDE_DIRS)) $(@:.d=.cpp) >> .depend
# # # # # # # # # # # # # # # # # # # # #
clean:
@echo removing "$(OBJECT_DIR_ST)/*.o"
@rm -rf $(OBJECT_DIR_ST)
@echo removing "$(OBJECT_DIR_MT)/*.o"
@rm -rf $(OBJECT_DIR_MT)
@echo removing $(DEBUG_DIR)/$(OUTPUT_FILE_ST)
@rm -f $(DEBUG_DIR)/$(OUTPUT_FILE_ST)
@echo removing $(RELEASE_DIR)/$(OUTPUT_FILE_ST)
@rm -f $(RELEASE_DIR)/$(OUTPUT_FILE_ST)
@echo removing $(DEBUG_DIR)/$(OUTPUT_FILE_MT)
@rm -f $(DEBUG_DIR)/$(OUTPUT_FILE_MT)
@echo removing $(RELEASE_DIR)/$(OUTPUT_FILE_MT)
@rm -f $(RELEASE_DIR)/$(OUTPUT_FILE_MT)
@rm -f .depend
@echo