# 1.6 Compilation and Linkage

There are two more things to do before you can use your new extension: compiling and linking it with the Python system. If you use dynamic loading, the details depend on the style of dynamic loading your system uses; see the chapter on Dynamic Loading for more info about this.

If you can't use dynamic loading, or if you want to make your module a permanent part of the Python interpreter, you will have to change the configuration setup and rebuild the interpreter. Luckily, this is very simple: just place your file (``spammodule.c`' for example) in the ``Modules`' directory, add a line to the file ``Modules/Setup`' describing your file:

        spam spammodule.o

and rebuild the interpreter by running `make` in the toplevel directory. You can also run `make` in the ``Modules`' subdirectory, but then you must first rebuilt the ``Makefile`' there by running `make Makefile`. (This is necessary each time you change the ``Setup`' file.)

If your module requires additional libraries to link with, these can be listed on the line in the ``Setup`' file as well, for instance:

        spam spammodule.o -lX11