所谓的万能makefile

    xiaoxiao2021-03-25  79

    ###########################################################  # Generic makefile   #   # by George Foot   # email: george.foot@merton.ox.ac.uk   #   # Copyright (c) 1997 George Foot   # All rights reserved.   # 保留所有版權   #   # No warranty, no liability;   # you use this at your own risk.   # 沒保險,不負責   # 你要用這個,你自己擔風險   #   # You are free to modify and   # distribute this without giving   # credit to the original author.   # 你可以隨便更改和散發這個文件   # 而不需要給原作者什榮譽。   # (你好意思?)   #   ######################################  ### Customising  #  # Adjust the following if necessary; EXECUTABLE is the target  # executable's filename, and LIBS is a list of libraries to link in  # (e.g. alleg, stdcx, iostr, etc). You can override these on make's  # command line of course, if you prefer to do it that way.  #   # 如果需要,調整下面的東西。 EXECUTABLE 是目標的可執行文件名, LIBS  # 是一個需要連接的程序包列表(例如 alleg, stdcx, iostr 等等)。當然你  # 可以在 make 的命令行覆蓋它們,你願意就沒問題。  #   EXECUTABLE := mushroom.exe  LIBS := alleg  # Now alter any implicit rules' variables if you like, e.g.:  #  # 現在來改變任何你想改動的隱含規則中的變量,例如  CFLAGS := -g -Wall -O3 -m486  CXXFLAGS := $(CFLAGS)  # The next bit checks to see whether rm is in your djgpp bin  # directory; if not it uses del instead, but this can cause (harmless)  # `File not found' error messages. If you are not using DOS at all,  # set the variable to something which will unquestioningly remove  # files.  #  # 下面先檢查你的 djgpp 命令目錄下有沒有 rm 命令,如果沒有,我們使用  # del 命令來代替,但有可能給我們 'File not found' 這個錯誤信息,這沒  # 什大礙。如果你不是用 DOS ,把它設定成一個刪文件而不廢話的命令。  # (其實這一步在 UNIX 類的系統上是多余的,只是方便 DOS 用戶。 UNIX  # 用戶可以刪除這5行命令。)  ifneq ($(wildcard $(DJDIR)/bin/rm.exe),)  RM-F := rm -f  else  RM-F := del  endif  # You shouldn't need to change anything below this point.  #  # 從這裡開始,你應該不需要改動任何東西。(我是不太相信,太NB了!)  SOURCE := $(wildcard *.c) $(wildcard *.cc)  OBJS := $(patsubst %.c,%.o,$(patsubst %.cc,%.o,$(SOURCE)))  DEPS := $(patsubst %.o,%.d,$(OBJS))  MISSING_DEPS := $(filter-out $(wildcard $(DEPS)),$(DEPS))  MISSING_DEPS_SOURCES := $(wildcard $(patsubst %.d,%.c,$(MISSING_DEPS)) \  $(patsubst %.d,%.cc,$(MISSING_DEPS)))  CPPFLAGS += -MD  .PHONY : everything deps objs clean veryclean rebuild  everything : $(EXECUTABLE)  deps : $(DEPS)  objs : $(OBJS)  clean :    @$(RM-F) *.o    @$(RM-F) *.d  veryclean: clean    @$(RM-F) $(EXECUTABLE)  rebuild: veryclean everything  ifneq ($(MISSING_DEPS),)  $(MISSING_DEPS) :    @$(RM-F) $(patsubst %.d,%.o,$@)  endif  -include $(DEPS)  $(EXECUTABLE) : $(OBJS)    gcc -o $(EXECUTABLE) $(OBJS) $(addprefix -l,$(LIBS))  ###
    转载请注明原文地址: https://ju.6miu.com/read-21545.html

    最新回复(0)