📄 makefile
字号:
###ROOT_DIR = `pwd`#### ToolsCC = gcc -g -m64CCC = g++ -g -m64SHLD = gcc -g -m64LD = g++ -g -m64# GSL (GNU Scientific Library)GSL_ROOTDIR=/projects/ngi/local/Linux/gsl-1.7GSL_LIB_PATH = $(GSL_ROOTDIR)/libGSL_LIB_PATH_FLAGS = $(GSL_LIB_PATH:%=-L%)GSL_LIB_PATH_FLAGS += $(GSL_LIB_PATH:%=-Wl,--rpath=%)#### Compilation optionsOBJ_PATH = $(ROOT_DIR)/objINCLUDES = -I$(GSL_ROOTDIR)/include -I.RELOC = -fpicCC_FLAGS = $(INCLUDES) $(RELOC)#### Dynamic Library optionsLIB_SUFFIX = .soSHD_LIB_FLAGS = -sharedSHD_LIBS = $(GSL_LIB_PATH_FLAGS) -lgsl -lgslcblas -lm#### Executable optionsBIN_PATH = $(ROOT_DIR)/binLD_FLAGS =# Library pathLIB_PATH = $(ROOT_DIR)/libLIB_PATH_FLAGS = $(LIB_PATH:%=-L%)LIB_PATH_FLAGS += $(LIB_PATH:%=-Wl,--rpath=%)LIB_FULL_NAME = $(LIB_PATH)/$(HEL_LIB)#### Dynamic library buildingMAIN = statsHEL_SRC = gsl_statext.cHEL_OBJ = $(HEL_SRC:%.c=$(OBJ_PATH)/%.o)# Library nameHEL_LIB_SHORT = $(MAIN)HEL_LIB = lib$(HEL_LIB_SHORT)$(LIB_SUFFIX)SHD_LIB_FLAGS += -Wl,-soname,$(HEL_LIB)#### Main programMAIN_SRC = $(MAIN).cppMAIN_OBJ = $(MAIN_SRC:%.cpp=$(OBJ_PATH)/%.o)LD_FLAGS += $(LIB_PATH_FLAGS) -l$(HEL_LIB_SHORT)FULL_BIN_NAME = $(BIN_PATH)/$(MAIN)#### Tar-ballTAR_BALL = $(MAIN).tgz#### Targetsfirst: $(FULL_BIN_NAME)#### Compilation Rule$(OBJ_PATH)/%.o: %.c @if [ ! -d $(OBJ_PATH) ]; then mkdir -p $(OBJ_PATH); fi @echo "Compiling $<..." && $(CC) $(CC_FLAGS) -o $@ -c $<$(OBJ_PATH)/%.o: %.cpp @if [ ! -d $(OBJ_PATH) ]; then mkdir -p $(OBJ_PATH); fi @echo "Compiling $<..." && $(CCC) $(CC_FLAGS) -o $@ -c $<# Makefile debug targetprint_%_value: @echo $($*)#### Dynamic Library Link$(LIB_FULL_NAME): $(HEL_OBJ) @if [ ! -d $(LIB_PATH) ]; then mkdir -p $(LIB_PATH); fi @echo "Linking $@..." && $(SHLD) $(SHD_LIB_FLAGS) -o $@ $< $(SHD_LIBS)#### Executable Link$(FULL_BIN_NAME): $(LIB_FULL_NAME) $(MAIN_OBJ) @if [ ! -d $(BIN_PATH) ]; then mkdir -p $(BIN_PATH); fi @echo "Linking $@" && $(LD) $(LD_FLAGS) -o $@ $(MAIN_OBJ) && echo "Type bin/$(MAIN) to start playing"#### Cleaning the object, library and executable files and directoriesclean: @rm -f *~ $(TAR_BALL) @rm -rf $(OBJ_PATH) $(LIB_PATH) $(BIN_PATH)tar: clean @tar zcf $(TAR_BALL) Makefile *.h *.c $(MAIN_SRC)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -