Scheme 48 Manual | Contents | In Chapter: Mixing Scheme 48 and C
Previous: Adding external modules to the `Makefile` | Next: Adding external modules to the `Makefile`

## Adding external modules to the `Makefile`

Getting access to C bindings from Scheme requires that the C code be compiled and linked in with the Scheme 48 virtual machine and that the relevant shared bindings be created. The Scheme 48 makefile has rules for compiling and linking external code and for specifying initialization functions that should be called on startup. There are three `Makefile` variables that control which external modules are included in the executable for the virtual machine (`scheme48vm`). `EXTERNAL_OBJECTS` lists the object files to be included in `scheme48vm`, `EXTERNAL_FLAGS` is a list of `ld` flags to be used when creating `scheme48vm`, and `EXTERNAL_INITIALIZERS` is a list of C procedures to be called on startup. The procedures listed in `EXTERNAL_INITIALIZERS` should take no arguments and have a return type of `void`. After changing the definitions of any of these variables you should do `make scheme48vm` to rebuild the virtual machine.

Previous: Adding external modules to the `Makefile` | Next: Adding external modules to the `Makefile`