Annotation of nono/Makefile.inc, revision 1.1.1.3

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 で値を追加してよい。
        !            24: 
        !            25: # ここからコード
        !            26: 
        !            27: # システム定義(/usr/share/mk/*.mk) の CFLAGS、CXXFLAGS は使わない。
        !            28: # 定義が OS によってまちまちなのと、特に NetBSD の CXXFLAGS は特定のオプション
        !            29: # を勝手に削るとか実にきしょい動きをするのでハマる。CPPFLAGS も念のため。
        !            30: CFLAGS=                # reset system definition
        !            31: CXXFLAGS=      # reset system definition
        !            32: CPPFLAGS=      # reset system definition
        !            33: 
1.1       root       34: .include "Makefile.cfg"
                     35: 
                     36: PROFOPT=       -g
                     37: #PROFOPT=      -g -pg
                     38: 
                     39: ## ASan for GCC
                     40: #PROFOPT+=     -fsanitize=address -fno-omit-frame-pointer -static-libstdc++
                     41: ## ASan for clang
                     42: #PROFOPT+=     -fsanitize=address -fno-omit-frame-pointer -O1
                     43: ## MSan for clang
                     44: #PROFOPT+=     -fsanitize=memory -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize-memory-track-origins=2 -O1
                     45: ## TSan
                     46: #PROFOPT+=     -fsanitize=thread
                     47: ## UBSan
                     48: #PROFOPT+=     -fsanitize=undefined
                     49: 
1.1.1.3 ! root       50: CCFLAGS+=              -O2
        !            51: CCFLAGS+=              -mtune=native
        !            52: CCFLAGS+=              ${PROFOPT}
        !            53: WARNFLAGS+=            -Wall -Werror -Wshadow
        !            54: WARNFLAGS+=            -Wignored-qualifiers
        !            55: WARNFLAGS+=            -Wno-sign-compare
        !            56: WARNFLAGS+=            -Wno-unused-result
        !            57: WARNFLAGS+=            -Wpointer-arith
1.1       root       58: 
1.1.1.3 ! root       59: WARNFLAGS_CXX+=        -Wnon-virtual-dtor
1.1       root       60: 
1.1.1.3 ! root       61: WARNFLAGS_C+=  ${WARNFLAGS_C_cfg}
        !            62: WARNFLAGS_CXX+=        ${WARNFLAGS_CXX_cfg}
1.1       root       63: 
1.1.1.2   root       64: CPPFLAGS+=     -I.
                     65: CPPFLAGS+=     -I..
                     66: CPPFLAGS+=     -I../debugger
                     67: CPPFLAGS+=     -I../fpe
                     68: CPPFLAGS+=     -I../host
                     69: CPPFLAGS+=     -I../lib
                     70: CPPFLAGS+=     -I../m680x0
                     71: CPPFLAGS+=     -I../m88xx0
                     72: CPPFLAGS+=     -I../vm
                     73: 
1.1.1.3 ! root       74: .if ${NETDRIVER} == "tap"
        !            75: CPPFLAGS+=     -DNETDRIVER_TAP
        !            76: .endif
        !            77: .if ${NETDRIVER} == "bpf"
        !            78: CPPFLAGS+=     -DNETDRIVER_BPF
        !            79: .endif
        !            80: 
        !            81: # CFLAGS   は C   コンパイラに指定するコンパイルオプション。
        !            82: # CXXFLAGS は C++ コンパイラに指定するコンパイルオプション。
        !            83: # CPPFLAGS は C/C++ 共通でコンパイラに指定するプリプロセッサオプション。
        !            84: 
        !            85: CFLAGS+=       ${CCFLAGS} ${WARNFLAGS} ${WARNFLAGS_C}
        !            86: CXXFLAGS+=     ${CCFLAGS} ${WARNFLAGS} ${WARNFLAGS_CXX}
        !            87: 
1.1       root       88: LDFLAGS+=      ${PROFOPT}
                     89: 
                     90: # リンカに指定する引数
                     91: MYLIBS=        \
                     92:        ../vm/libnnvm.a \
                     93:        ../debugger/libnndebugger.a \
                     94:        ../m680x0/libnnm680x0.a \
1.1.1.2   root       95:        ../m88xx0/libnnm88xx0.a \
1.1       root       96:        ../fpe/libnnfpe.a       \
                     97:        ../host/libnnhost.a \
                     98:        ../lib/libnnlib.a       \
                     99: 
1.1.1.2   root      100: .if "${.MAKE.OS}" == "Darwin"
                    101: # Apple Clang は --start-group, --end-group に対応してない。うーん。
                    102: MYLIBS_GROUP=  ${MYLIBS} ${MYLIBS}
                    103: .else
                    104: MYLIBS_GROUP=  -Wl,--start-group ${MYLIBS} -Wl,--end-group
                    105: .endif
                    106: 
                    107: LIBS+= -lz

unix.superglobalmegacorp.com

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