# Setting Up ## Development - `./configure --with-pydebug && make -j` - `./python.exe -m test -j3` ### Compile - `Misc/SpecialBuilds.txt` compilation flags - `Py_DEBUG` use for "pydebug" build to catch common issues #### Clang Handy `CFLAGS` - `-Wno-unused-value` - `-Wno-empty-body` - `-Qunused-arguments` - `-Wno-parentheses-equality` if using clang with ccache - `-no-integrated-as` if using LLVM 2.8 which is needed to build `ctype` module ### Dependencies `xcode-select --install` The above generally works. For macOS Mojave 10.14, the following needs to be executed as well: ```bash open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg ``` Building with openssl from brew: ``` brew install openssl xz ./configure --with-pydebug --with-openssl=$(brew --prefix openssl) make -s -j2 ``` ### make The CPython Makefile is generated when you run `./configure`. `Makefile.pre` is used to generate a Makefile specific to your compile system ### [Generic C] Handy compile options - `-g` debug - `-Wall` warnings all - `-O3` or `-O1` optimization levels