Annotation of nono/Makefile.inc, revision 1.1.1.6

1.1       root        1: #
                      2: # nono
1.1.1.3   root        3: # Copyright (C) 2020 nono project
                      4: # Licensed under nono-license.txt
1.1       root        5: #
                      6: 
1.1.1.3   root        7: # 共通の定義。
                      8: # サブディレクトリの Makefile は先頭で .include すること。
                      9: #
                     10: # ここでは以下の変数を定義する。これらはコマンドライン上に完全順不同で登場
                     11: # すると読みにくいのでなんとなくグループ分けしたいというくらいの意味合い。
                     12: #
                     13: # CCFLAGS
                     14: #      C/C++ 共通のコンパイラオプション。
                     15: # WARNFLAGS
                     16: #      C/C++ 共通のワーニングオプション。
                     17: # WARNFLAGS_C
                     18: # WARNFLAGS_CXX
                     19: #      C/C++ 専用のワーニングオプション。
                     20: # CPPFLAGS
                     21: #      C/C++ 共通のプリプロセッサオプション。
                     22: #
                     23: # これらの変数には必要なら各 Makefile で値を追加してよい。
1.1.1.4   root       24: #
                     25: # COPT は C/C++ 共通の追加の一時的なオプションで、make のコマンドラインで
                     26: # 指定されることを想定している (./Makefile.rule 参照)。
1.1.1.3   root       27: 
                     28: # ここからコード
                     29: 
                     30: # システム定義(/usr/share/mk/*.mk) の CFLAGS、CXXFLAGS は使わない。
                     31: # 定義が OS によってまちまちなのと、特に NetBSD の CXXFLAGS は特定のオプション
                     32: # を勝手に削るとか実にきしょい動きをするのでハマる。CPPFLAGS も念のため。
                     33: CFLAGS=                # reset system definition
                     34: CXXFLAGS=      # reset system definition
                     35: CPPFLAGS=      # reset system definition
                     36: 
1.1       root       37: .include "Makefile.cfg"
                     38: 
                     39: PROFOPT=       -g
                     40: #PROFOPT=      -g -pg
                     41: 
                     42: ## ASan for GCC
                     43: #PROFOPT+=     -fsanitize=address -fno-omit-frame-pointer -static-libstdc++
                     44: ## ASan for clang
                     45: #PROFOPT+=     -fsanitize=address -fno-omit-frame-pointer -O1
                     46: ## MSan for clang
                     47: #PROFOPT+=     -fsanitize=memory -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -O1
                     48: ## TSan
                     49: #PROFOPT+=     -fsanitize=thread
                     50: ## UBSan
                     51: #PROFOPT+=     -fsanitize=undefined
                     52: 
1.1.1.3   root       53: CCFLAGS+=              -O2
                     54: CCFLAGS+=              ${PROFOPT}
1.1.1.4   root       55: 
                     56: # C++17 では不要になるはず?
                     57: CXXFLAGS+=             -faligned-new
                     58: 
1.1.1.3   root       59: WARNFLAGS+=            -Wall -Werror -Wshadow
                     60: WARNFLAGS+=            -Wignored-qualifiers
                     61: WARNFLAGS+=            -Wno-sign-compare
                     62: WARNFLAGS+=            -Wno-unused-result
                     63: WARNFLAGS+=            -Wpointer-arith
1.1       root       64: 
1.1.1.3   root       65: WARNFLAGS_CXX+=        -Wnon-virtual-dtor
1.1       root       66: 
1.1.1.3   root       67: WARNFLAGS_C+=  ${WARNFLAGS_C_cfg}
                     68: WARNFLAGS_CXX+=        ${WARNFLAGS_CXX_cfg}
1.1       root       69: 
1.1.1.2   root       70: CPPFLAGS+=     -I.
                     71: CPPFLAGS+=     -I..
                     72: CPPFLAGS+=     -I../debugger
                     73: CPPFLAGS+=     -I../fpe
                     74: CPPFLAGS+=     -I../host
                     75: CPPFLAGS+=     -I../lib
                     76: CPPFLAGS+=     -I../m680x0
                     77: CPPFLAGS+=     -I../m88xx0
                     78: CPPFLAGS+=     -I../vm
                     79: 
1.1.1.3   root       80: .if ${NETDRIVER} == "tap"
                     81: CPPFLAGS+=     -DNETDRIVER_TAP
                     82: .endif
                     83: .if ${NETDRIVER} == "bpf"
                     84: CPPFLAGS+=     -DNETDRIVER_BPF
                     85: .endif
                     86: 
                     87: # CFLAGS   は C   コンパイラに指定するコンパイルオプション。
                     88: # CXXFLAGS は C++ コンパイラに指定するコンパイルオプション。
                     89: # CPPFLAGS は C/C++ 共通でコンパイラに指定するプリプロセッサオプション。
                     90: 
                     91: CFLAGS+=       ${CCFLAGS} ${WARNFLAGS} ${WARNFLAGS_C}
                     92: CXXFLAGS+=     ${CCFLAGS} ${WARNFLAGS} ${WARNFLAGS_CXX}
                     93: 
1.1       root       94: LDFLAGS+=      ${PROFOPT}
                     95: 
                     96: # リンカに指定する引数
                     97: MYLIBS=        \
                     98:        ../vm/libnnvm.a \
                     99:        ../debugger/libnndebugger.a \
                    100:        ../m680x0/libnnm680x0.a \
1.1.1.2   root      101:        ../m88xx0/libnnm88xx0.a \
1.1       root      102:        ../fpe/libnnfpe.a       \
                    103:        ../host/libnnhost.a \
                    104:        ../lib/libnnlib.a       \
                    105: 
1.1.1.2   root      106: .if "${.MAKE.OS}" == "Darwin"
                    107: # Apple Clang は --start-group, --end-group に対応してない。うーん。
                    108: MYLIBS_GROUP=  ${MYLIBS} ${MYLIBS}
                    109: .else
                    110: MYLIBS_GROUP=  -Wl,--start-group ${MYLIBS} -Wl,--end-group
                    111: .endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.